Check if user can register one more device - WIP (#1386)

This commit is contained in:
Christophe Maudoux 2018-04-05 17:58:42 +02:00
parent a3ba56aa12
commit 2134bfd366
5 changed files with 37 additions and 55 deletions

View File

@ -27,7 +27,7 @@ sub types {
BEGIN {
${^WARNING_BITS} =
"\x54\x55\x55\x55\x15\x55\x55\x55\x55\x55\x51\x55\x55\x55\x55\x55\x55\x05";
"\x54\x55\x55\x55\x15\x55\x55\x55\x55\x55\x51\x55\x55\x55\x55\x55\x55\x01";
}
eval "$s $val";
my $err = join(
@ -662,7 +662,7 @@ sub attributes {
BEGIN {
${^WARNING_BITS} =
"\x54\x55\x55\x55\x15\x55\x55\x55\x55\x55\x51\x55\x55\x55\x55\x55\x55\x05";
"\x54\x55\x55\x55\x15\x55\x55\x55\x55\x55\x51\x55\x55\x55\x55\x55\x55\x01";
}
eval "$s $val";
my $err = join(
@ -1026,7 +1026,7 @@ qr/^(?:\*\.)?(?:(?:(?:(?:[a-zA-Z0-9][-a-zA-Z0-9]*)?[a-zA-Z0-9])[.])*(?:[a-zA-Z][
BEGIN {
${^WARNING_BITS} =
"\x54\x55\x55\x55\x15\x55\x55\x55\x55\x55\x51\x55\x55\x55\x55\x55\x55\x05";
"\x54\x55\x55\x55\x15\x55\x55\x55\x55\x55\x51\x55\x55\x55\x55\x55\x55\x01";
}
eval $s;
my $err = join(
@ -1111,7 +1111,7 @@ qr/^(?:\*\.)?(?:(?:(?:(?:[a-zA-Z0-9][-a-zA-Z0-9]*)?[a-zA-Z0-9])[.])*(?:[a-zA-Z][
BEGIN {
${^WARNING_BITS} =
"\x54\x55\x55\x55\x15\x55\x55\x55\x55\x55\x51\x55\x55\x55\x55\x55\x55\x05";
"\x54\x55\x55\x55\x15\x55\x55\x55\x55\x55\x51\x55\x55\x55\x55\x55\x55\x01";
}
eval "$s $val";
my $err = join(
@ -1134,7 +1134,7 @@ qr/^(?:\*\.)?(?:(?:(?:(?:[a-zA-Z0-9][-a-zA-Z0-9]*)?[a-zA-Z0-9])[.])*(?:[a-zA-Z][
BEGIN {
${^WARNING_BITS} =
"\x54\x55\x55\x55\x15\x55\x55\x55\x55\x55\x51\x55\x55\x55\x55\x55\x55\x05";
"\x54\x55\x55\x55\x15\x55\x55\x55\x55\x55\x51\x55\x55\x55\x55\x55\x55\x01";
}
eval "$s $val";
my $err = join(
@ -1489,7 +1489,7 @@ qr/^(?:\*\.)?(?:(?:(?:(?:[a-zA-Z0-9][-a-zA-Z0-9]*)?[a-zA-Z0-9])[.])*(?:[a-zA-Z][
BEGIN {
${^WARNING_BITS} =
"\x54\x55\x55\x55\x15\x55\x55\x55\x55\x55\x51\x55\x55\x55\x55\x55\x55\x05";
"\x54\x55\x55\x55\x15\x55\x55\x55\x55\x55\x51\x55\x55\x55\x55\x55\x55\x01";
}
eval $s;
my $err = join(
@ -1526,7 +1526,7 @@ qr/^(?:\*\.)?(?:(?:(?:(?:[a-zA-Z0-9][-a-zA-Z0-9]*)?[a-zA-Z0-9])[.])*(?:[a-zA-Z][
BEGIN {
${^WARNING_BITS} =
"\x54\x55\x55\x55\x15\x55\x55\x55\x55\x55\x51\x55\x55\x55\x55\x55\x55\x05";
"\x54\x55\x55\x55\x15\x55\x55\x55\x55\x55\x51\x55\x55\x55\x55\x55\x55\x01";
}
eval "$s $val";
my $err = join(
@ -1885,7 +1885,7 @@ qr/^(?:\*\.)?(?:(?:(?:(?:[a-zA-Z0-9][-a-zA-Z0-9]*)?[a-zA-Z0-9])[.])*(?:[a-zA-Z][
BEGIN {
${^WARNING_BITS} =
"\x54\x55\x55\x55\x15\x55\x55\x55\x55\x55\x51\x55\x55\x55\x55\x55\x55\x05";
"\x54\x55\x55\x55\x15\x55\x55\x55\x55\x55\x51\x55\x55\x55\x55\x55\x55\x01";
}
eval "$s $val";
my $err = join(
@ -2222,7 +2222,7 @@ qr/^(?:\*\.)?(?:(?:(?:(?:[a-zA-Z0-9][-a-zA-Z0-9]*)?[a-zA-Z0-9])[.])*(?:[a-zA-Z][
BEGIN {
${^WARNING_BITS} =
"\x54\x55\x55\x55\x15\x55\x55\x55\x55\x55\x51\x55\x55\x55\x55\x55\x55\x05";
"\x54\x55\x55\x55\x15\x55\x55\x55\x55\x55\x51\x55\x55\x55\x55\x55\x55\x01";
}
eval "$s $val";
my $err = join(
@ -2925,7 +2925,7 @@ qr/(?:(?:https?):\/\/(?:(?:(?:(?:(?:(?:[a-zA-Z0-9][-a-zA-Z0-9]*)?[a-zA-Z0-9])[.]
BEGIN {
${^WARNING_BITS} =
"\x54\x55\x55\x55\x15\x55\x55\x55\x55\x55\x51\x55\x55\x55\x55\x55\x55\x05";
"\x54\x55\x55\x55\x15\x55\x55\x55\x55\x55\x51\x55\x55\x55\x55\x55\x55\x01";
}
eval "$s $val";
my $err = join(
@ -3004,19 +3004,19 @@ qr/(?:(?:https?):\/\/(?:(?:(?:(?:(?:(?:[a-zA-Z0-9][-a-zA-Z0-9]*)?[a-zA-Z0-9])[.]
'default' => 0,
'select' => [
{
'k' => 0,
'k' => '0',
'v' => 'unsecuredCookie'
},
{
'k' => 1,
'k' => '1',
'v' => 'securedCookie'
},
{
'k' => 2,
'k' => '2',
'v' => 'doubleCookie'
},
{
'k' => 3,
'k' => '3',
'v' => 'doubleCookieForSingleSession'
}
],

View File

@ -1059,12 +1059,12 @@ sub attributes {
max2FDevices => {
default => 10,
type => 'int',
documentation => 'Register session timeout',
documentation => 'Maximum registered 2F devices',
},
max2FDevicesNameLength => {
default => 20,
type => 'int',
documentation => 'Register session timeout',
documentation => 'Maximum 2F devices name length',
},
# U2F

View File

@ -29,8 +29,6 @@ has ott => (
);
sub init {
my ($self) = @_;
$self->conf->{max2FDevices} ||= 10;
return 1;
}
@ -110,19 +108,15 @@ sub run {
}
# Check if user can register one more device
my $size = @$_2FDevices;
$self->logger->debug(
"Nbr 2FDevices = $size / $self->conf->{max2FDevices}");
if ( $size > $self->conf->{max2FDevices} ) {
$self->userLogger->error("Max number of 2F devices is reached !!!");
return $self->p->sendHtml(
$req, 'error',
params => {
RAW_ERROR => 'MaxNumberof2FDevicesReached',
AUTH_ERROR_TYPE => 'warning',
my $size = @$_2FDevices;
my $maxSize = $self->conf->{max2FDevices};
$self->logger->debug(
"Nbr 2FDevices = $size / $maxSize");
if ( $size > $maxSize ) {
$self->userLogger->error(
"Max number of 2F devices is reached !!!");
return $self->p->sendError( $req, 'MaxNumberof2FDevicesReached', 200 );
}
);
}
push @{$_2FDevices},
{

View File

@ -19,7 +19,6 @@ has logo => ( is => 'rw', default => 'u2f.png' );
sub init {
my ($self) = @_;
$self->conf->{max2FDevices} ||= 10;
return 0 unless $self->SUPER::init;
return 1;
}
@ -80,18 +79,13 @@ sub run {
# Check if user can register one more device
my $size = @$_2FDevices;
my $maxSize = $self->conf->{max2FDevices};
$self->logger->debug(
"Nbr 2FDevices = $size / $self->conf->{max2FDevices}");
if ( $size > $self->conf->{max2FDevices} ) {
"Nbr 2FDevices = $size / $maxSize");
if ( $size > $maxSize ) {
$self->userLogger->error(
"Max number of 2F devices is reached !!!");
return $self->p->sendHtml(
$req, 'error',
params => {
RAW_ERROR => 'MaxNumberof2FDevicesReached',
AUTH_ERROR_TYPE => 'warning',
}
);
return $self->p->sendError( $req, 'MaxNumberof2FDevicesReached', 200 );
}
my $keyName = $req->param('keyName');

View File

@ -24,7 +24,6 @@ has logo => ( is => 'rw', default => 'yubikey.png' );
sub init {
my ($self) = @_;
$self->conf->{yubikey2fPublicIDSize} ||= 12;
$self->conf->{max2FDevices} ||= 10;
return 1;
}
@ -81,20 +80,15 @@ sub run {
}
# Check if user can register one more device
my $size = @$_2FDevices;
$self->logger->debug(
"Nbr 2FDevices = $size / $self->conf->{max2FDevices}");
if ( $size > $self->conf->{max2FDevices} ) {
$self->userLogger->error(
"Max number of 2F devices is reached !!!");
return $self->p->sendHtml(
$req, 'error',
params => {
RAW_ERROR => 'MaxNumberof2FDevicesReached',
AUTH_ERROR_TYPE => 'warning',
}
);
}
my $size = @$_2FDevices;
my $maxSize = $self->conf->{max2FDevices};
$self->logger->debug(
"Nbr 2FDevices = $size / $maxSize");
if ( $size > $maxSize ) {
$self->userLogger->error(
"Max number of 2F devices is reached !!!");
return $self->p->sendError( $req, 'MaxNumberof2FDevicesReached', 200 );
}
push @{$_2FDevices},
{