| Finance-Bank-Cahoot documentation | Contained in the Finance-Bank-Cahoot distribution. |
Finance::Bank::Cahoot::CredentialsProvider::Callback - Credentials provider that uses callbacks
my $credentials = Finance::Bank::Cahoot::CredentialsProvider::Callback->new(
credentials => [qw(account password)],
options => { account => sub { return '12345678' },
username => sub { return 'username' },
password => sub { return substr('verysecret', $_[0]-1, 1) } });
This module provides an implementation of a credentials provider where each of the credentials is provided by a user-supplied callback. All callbacks return a text string. Any callback may be optionally supplied a character offset in the credentials value (first character is 0).
Create a new instance of the credentials provider. All parameters are mandatory.
Returns a credential value whose name is passed as the first parameter. An optional character offset (0 is the first character) may also be provided.
my $password_char = $provider->password(5);
Jon Connell <jon@figsandfudge.com>
This module borrows heavily from Finance::Bank::Natwest by Jody Belka.
Copyright 2007 by Jon Connell Copyright 2003 by Jody Belka
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
| Finance-Bank-Cahoot documentation | Contained in the Finance-Bank-Cahoot distribution. |
# Copyright (c) 2007 Jon Connell. # All Rights Reserved. # # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl itself. package Finance::Bank::Cahoot::CredentialsProvider::Callback; use base qw(Finance::Bank::Cahoot::CredentialsProvider); use strict; use warnings 'all'; use vars qw($VERSION); $VERSION = '1.07'; use Carp qw(croak); sub _init { my ($self, $options) = @_; while (my ($credential, $callback) = each %{$options}) { croak 'Invalid credential '.$credential.' supplied with callback' if not $self->can($credential); croak 'Callback for '.$credential.' is not a code ref' if ref $callback ne 'CODE'; $self->{$credential} = $callback; } return $self; } sub get { my ($self, $credential, $offset) = @_; return $self->{$credential}($offset); } 1; __END__