Display login history when UTOTP is required (#1442)
This commit is contained in:
parent
7a4eb793fc
commit
49ce9cdb0f
|
@ -27,7 +27,7 @@ sub types {
|
||||||
|
|
||||||
BEGIN {
|
BEGIN {
|
||||||
${^WARNING_BITS} =
|
${^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";
|
eval "$s $val";
|
||||||
my $err = join(
|
my $err = join(
|
||||||
|
@ -662,7 +662,7 @@ sub attributes {
|
||||||
|
|
||||||
BEGIN {
|
BEGIN {
|
||||||
${^WARNING_BITS} =
|
${^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";
|
eval "$s $val";
|
||||||
my $err = join(
|
my $err = join(
|
||||||
|
@ -1032,7 +1032,7 @@ qr/^(?:\*\.)?(?:(?:(?:(?:[a-zA-Z0-9][-a-zA-Z0-9]*)?[a-zA-Z0-9])[.])*(?:[a-zA-Z][
|
||||||
|
|
||||||
BEGIN {
|
BEGIN {
|
||||||
${^WARNING_BITS} =
|
${^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;
|
eval $s;
|
||||||
my $err = join(
|
my $err = join(
|
||||||
|
@ -1117,7 +1117,7 @@ qr/^(?:\*\.)?(?:(?:(?:(?:[a-zA-Z0-9][-a-zA-Z0-9]*)?[a-zA-Z0-9])[.])*(?:[a-zA-Z][
|
||||||
|
|
||||||
BEGIN {
|
BEGIN {
|
||||||
${^WARNING_BITS} =
|
${^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";
|
eval "$s $val";
|
||||||
my $err = join(
|
my $err = join(
|
||||||
|
@ -1140,7 +1140,7 @@ qr/^(?:\*\.)?(?:(?:(?:(?:[a-zA-Z0-9][-a-zA-Z0-9]*)?[a-zA-Z0-9])[.])*(?:[a-zA-Z][
|
||||||
|
|
||||||
BEGIN {
|
BEGIN {
|
||||||
${^WARNING_BITS} =
|
${^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";
|
eval "$s $val";
|
||||||
my $err = join(
|
my $err = join(
|
||||||
|
@ -1495,7 +1495,7 @@ qr/^(?:\*\.)?(?:(?:(?:(?:[a-zA-Z0-9][-a-zA-Z0-9]*)?[a-zA-Z0-9])[.])*(?:[a-zA-Z][
|
||||||
|
|
||||||
BEGIN {
|
BEGIN {
|
||||||
${^WARNING_BITS} =
|
${^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;
|
eval $s;
|
||||||
my $err = join(
|
my $err = join(
|
||||||
|
@ -1541,7 +1541,7 @@ qr/^(?:\*\.)?(?:(?:(?:(?:[a-zA-Z0-9][-a-zA-Z0-9]*)?[a-zA-Z0-9])[.])*(?:[a-zA-Z][
|
||||||
|
|
||||||
BEGIN {
|
BEGIN {
|
||||||
${^WARNING_BITS} =
|
${^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";
|
eval "$s $val";
|
||||||
my $err = join(
|
my $err = join(
|
||||||
|
@ -1900,7 +1900,7 @@ qr/^(?:\*\.)?(?:(?:(?:(?:[a-zA-Z0-9][-a-zA-Z0-9]*)?[a-zA-Z0-9])[.])*(?:[a-zA-Z][
|
||||||
|
|
||||||
BEGIN {
|
BEGIN {
|
||||||
${^WARNING_BITS} =
|
${^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";
|
eval "$s $val";
|
||||||
my $err = join(
|
my $err = join(
|
||||||
|
@ -2237,7 +2237,7 @@ qr/^(?:\*\.)?(?:(?:(?:(?:[a-zA-Z0-9][-a-zA-Z0-9]*)?[a-zA-Z0-9])[.])*(?:[a-zA-Z][
|
||||||
|
|
||||||
BEGIN {
|
BEGIN {
|
||||||
${^WARNING_BITS} =
|
${^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";
|
eval "$s $val";
|
||||||
my $err = join(
|
my $err = join(
|
||||||
|
@ -2954,7 +2954,7 @@ qr/(?:(?:https?):\/\/(?:(?:(?:(?:(?:(?:[a-zA-Z0-9][-a-zA-Z0-9]*)?[a-zA-Z0-9])[.]
|
||||||
|
|
||||||
BEGIN {
|
BEGIN {
|
||||||
${^WARNING_BITS} =
|
${^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";
|
eval "$s $val";
|
||||||
my $err = join(
|
my $err = join(
|
||||||
|
@ -3033,19 +3033,19 @@ qr/(?:(?:https?):\/\/(?:(?:(?:(?:(?:(?:[a-zA-Z0-9][-a-zA-Z0-9]*)?[a-zA-Z0-9])[.]
|
||||||
'default' => 0,
|
'default' => 0,
|
||||||
'select' => [
|
'select' => [
|
||||||
{
|
{
|
||||||
'k' => 0,
|
'k' => '0',
|
||||||
'v' => 'unsecuredCookie'
|
'v' => 'unsecuredCookie'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
'k' => 1,
|
'k' => '1',
|
||||||
'v' => 'securedCookie'
|
'v' => 'securedCookie'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
'k' => 2,
|
'k' => '2',
|
||||||
'v' => 'doubleCookie'
|
'v' => 'doubleCookie'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
'k' => 3,
|
'k' => '3',
|
||||||
'v' => 'doubleCookieForSingleSession'
|
'v' => 'doubleCookieForSingleSession'
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -61,14 +61,23 @@ sub run {
|
||||||
my ( $self, $req, $token ) = @_;
|
my ( $self, $req, $token ) = @_;
|
||||||
$self->logger->debug('Generate TOTP form');
|
$self->logger->debug('Generate TOTP form');
|
||||||
|
|
||||||
my %tplPrms = ( SKIN => $self->conf->{portalSkin}, TOKEN => $token );
|
my $checkLogins = $req->param('checkLogins');
|
||||||
|
$self->logger->debug("UTOTP checkLogins set") if ($checkLogins);
|
||||||
|
|
||||||
|
my %tplPrms = (
|
||||||
|
SKIN => $self->conf->{portalSkin},
|
||||||
|
TOKEN => $token,
|
||||||
|
CHECKLOGINS => $checkLogins
|
||||||
|
);
|
||||||
|
|
||||||
if ( my $res = $self->u2f->loadUser( $req, $req->sessionInfo ) ) {
|
if ( my $res = $self->u2f->loadUser( $req, $req->sessionInfo ) ) {
|
||||||
if ( $res > 0 ) {
|
if ( $res > 0 ) {
|
||||||
$self->logger->debug('U2F key is registered');
|
$self->logger->debug('U2F key is registered');
|
||||||
|
|
||||||
# Get a challenge (from first key)
|
# Get a challenge (from first key)
|
||||||
my $data = eval {
|
my $data = eval {
|
||||||
from_json( $req->datas->{crypter}->[0]->authenticationChallenge );
|
from_json(
|
||||||
|
$req->datas->{crypter}->[0]->authenticationChallenge );
|
||||||
};
|
};
|
||||||
|
|
||||||
if ($@) {
|
if ($@) {
|
||||||
|
@ -91,7 +100,7 @@ sub run {
|
||||||
{
|
{
|
||||||
challenge => $data->{challenge},
|
challenge => $data->{challenge},
|
||||||
appId => $data->{appId},
|
appId => $data->{appId},
|
||||||
registeredKeys => \@rk
|
registeredKeys => \@rk,
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
$tplPrms{DATA} = $data;
|
$tplPrms{DATA} = $data;
|
||||||
|
|
|
@ -28,6 +28,7 @@
|
||||||
</div>
|
</div>
|
||||||
<input type="hidden" id="verify-data" name="signature" value="">
|
<input type="hidden" id="verify-data" name="signature" value="">
|
||||||
<input type="hidden" id="verify-challenge" name="challenge" value="">
|
<input type="hidden" id="verify-challenge" name="challenge" value="">
|
||||||
|
<input type="hidden" id="checkLogins" name="checkLogins" value="<TMPL_VAR NAME="CHECKLOGINS">">
|
||||||
<script type="application/init">
|
<script type="application/init">
|
||||||
<TMPL_VAR NAME="DATA">
|
<TMPL_VAR NAME="DATA">
|
||||||
</script>
|
</script>
|
||||||
|
|
Loading…
Reference in New Issue
Block a user