44 lines
817 B
Perl
44 lines
817 B
Perl
![]() |
package Lemonldap::NG::Portal::Lib::U2F;
|
||
|
|
||
|
use strict;
|
||
|
use Mouse;
|
||
|
|
||
|
our $VERSION = '2.0.0';
|
||
|
|
||
|
extends 'Lemonldap::NG::Portal::Main::Plugin';
|
||
|
|
||
|
has crypter => ( is => 'rw' );
|
||
|
|
||
|
has origin => (
|
||
|
is => 'rw',
|
||
|
default => sub {
|
||
|
my $p = $_[0]->{conf}->{portal};
|
||
|
$p =~ s#^(https?://[^/]+).*$#$1#;
|
||
|
return $p;
|
||
|
}
|
||
|
);
|
||
|
|
||
|
sub init {
|
||
|
my ($self) = @_;
|
||
|
eval 'use Crypt::U2F::Server::Simple';
|
||
|
if ($@) {
|
||
|
$self->error("Can't load U2F library: $@");
|
||
|
return 0;
|
||
|
}
|
||
|
unless (
|
||
|
$self->crypter(
|
||
|
Crypt::U2F::Server::Simple->new(
|
||
|
appId => $self->origin,
|
||
|
origin => $self->origin,
|
||
|
)
|
||
|
)
|
||
|
)
|
||
|
{
|
||
|
$self->error( Crypt::U2F::Server::Simple::lastError() );
|
||
|
return 0;
|
||
|
}
|
||
|
return 1;
|
||
|
}
|
||
|
|
||
|
1;
|