tidy with new conf

This commit is contained in:
Xavier Guimard 2019-02-07 09:27:56 +01:00
parent 2532970b33
commit c7b4eb5051
185 changed files with 416 additions and 746 deletions

View File

@ -8,7 +8,7 @@
--nobreak-before-all-operators
--blanks-before-comments
--nocuddled-else
--maximum-line-length=79
--maximum-line-length=80
--paren-tightness=1
--square-bracket-tightness=1
--space-for-semicolon

View File

@ -9,9 +9,7 @@ our $VERSION = '2.0.0';
has confAccess => (
is => 'rw',
builder => sub {
my $res = Lemonldap::NG::Common::Conf->new(
{
(
my $res = Lemonldap::NG::Common::Conf->new( { (
ref $_[0] && $_[0]->{iniFile}
? ( confFile => $_[0]->{iniFile} )
: ()

View File

@ -13,8 +13,7 @@ has app => ( is => 'ro', isa => 'CodeRef' );
sub _get {
my ( $self, $path, $query ) = @_;
$query //= '';
return $self->app->(
{
return $self->app->( {
'HTTP_ACCEPT' => 'application/json, text/plain, */*',
'SCRIPT_NAME' => '',
'HTTP_ACCEPT_ENCODING' => 'gzip, deflate',
@ -39,8 +38,7 @@ sub _post {
my ( $self, $path, $query, $body, $type, $len ) = @_;
die "$body must be a IO::Handle"
unless ( ref($body) and $body->can('read') );
return $self->app->(
{
return $self->app->( {
'HTTP_ACCEPT' => 'application/json, text/plain, */*',
'SCRIPT_NAME' => '',
'HTTP_ACCEPT_ENCODING' => 'gzip, deflate',
@ -69,8 +67,7 @@ sub _put {
my ( $self, $path, $query, $body, $type, $len ) = @_;
die "$body must be a IO::Handle"
unless ( ref($body) and $body->can('read') );
return $self->app->(
{
return $self->app->( {
'HTTP_ACCEPT' => 'application/json, text/plain, */*',
'SCRIPT_NAME' => '',
'HTTP_ACCEPT_ENCODING' => 'gzip, deflate',
@ -97,8 +94,7 @@ sub _put {
sub _del {
my ( $self, $path, $query ) = @_;
return $self->app->(
{
return $self->app->( {
'HTTP_ACCEPT' => 'application/json, text/plain, */*',
'SCRIPT_NAME' => '',
'HTTP_ACCEPT_ENCODING' => 'gzip, deflate',

View File

@ -239,8 +239,7 @@ sub session {
sub getApacheSession {
my ( $self, $mod, $id, $info, $force ) = @_;
my $apacheSession = Lemonldap::NG::Common::Session->new(
{
my $apacheSession = Lemonldap::NG::Common::Session->new( {
storageModule => $mod->{module},
storageModuleOptions => $mod->{options},
cacheModule =>

View File

@ -17,8 +17,7 @@ my $h;
my $inifile = "lemonldap-ng.ini";
my $confsection = "configuration";
ok(
(
ok( (
Lemonldap::NG::Common::Conf->new( type => 'bad' ) == 0
and $Lemonldap::NG::Common::Conf::msg =~
/Error: Unknown package Lemonldap::NG::Common::Conf::Backends::bad\.$/
@ -28,8 +27,7 @@ ok(
$h = bless {}, 'Lemonldap::NG::Common::Conf';
ok(
(
ok( (
%$h = ( %$h, %{ $h->getLocalConf( $confsection, $inifile, 0 ) } )
and exists $h->{localStorage}
),

View File

@ -17,8 +17,7 @@ BEGIN { use_ok('Lemonldap::NG::Common::Conf') }
my $h;
ok(
$h = new Lemonldap::NG::Common::Conf(
{
$h = new Lemonldap::NG::Common::Conf( {
type => 'File',
dirName => "t/",
}

View File

@ -27,8 +27,7 @@ SKIP: {
my $skipSQLite = 0;
ok(
$h = new Lemonldap::NG::Common::Conf(
{
$h = new Lemonldap::NG::Common::Conf( {
type => 'CDBI',
dbiChain => "DBI:SQLite:dbname=t/lmConf.sql",
dbiUser => '',

View File

@ -27,8 +27,7 @@ SKIP: {
my $skipSQLite = 0;
ok(
$h = new Lemonldap::NG::Common::Conf(
{
$h = new Lemonldap::NG::Common::Conf( {
type => 'RDBI',
dbiChain => "DBI:SQLite:dbname=t/lmConf.sql",
dbiUser => '',

View File

@ -18,8 +18,7 @@ SKIP: {
use_ok('Lemonldap::NG::Common::Conf');
my $h;
ok(
$h = new Lemonldap::NG::Common::Conf(
{
$h = new Lemonldap::NG::Common::Conf( {
type => 'LDAP',
ldapServer => 'ldap://localhost',
ldapConfBase => 'ou=conf,ou=websso,dc=example,dc=com',

View File

@ -23,8 +23,7 @@ my $sessionOptions = {
LockDirectory => $dir,
};
my $session = Lemonldap::NG::Common::Session->new(
{
my $session = Lemonldap::NG::Common::Session->new( {
storageModule => $sessionModule,
storageModuleOptions => $sessionOptions,
kind => "TEST",
@ -43,8 +42,7 @@ use_ok('Lemonldap::NG::Common::Apache::Session::Generate::SHA256');
$sessionOptions->{generateModule} =
"Lemonldap::NG::Common::Apache::Session::Generate::SHA256";
my $session2 = Lemonldap::NG::Common::Session->new(
{
my $session2 = Lemonldap::NG::Common::Session->new( {
storageModule => $sessionModule,
storageModuleOptions => $sessionOptions,
kind => "TEST",

View File

@ -161,8 +161,7 @@ our $_ua;
sub ua {
my ($class) = @_;
return $_ua if ($_ua);
$_ua = Lemonldap::NG::Common::UserAgent->new(
{
$_ua = Lemonldap::NG::Common::UserAgent->new( {
lwpOpts => $class->localConfig->{lwpOpts},
lwpSslOpts => $class->localConfig->{lwpSslOpts}
}

View File

@ -59,8 +59,7 @@ sub getCDAInfos {
my $infos = {};
# Get the session
my $cdaSession = Lemonldap::NG::Common::Session->new(
{
my $cdaSession = Lemonldap::NG::Common::Session->new( {
storageModule => $class->tsv->{sessionStorageModule},
storageModuleOptions => $class->tsv->{sessionStorageOptions},
cacheModule => $class->tsv->{sessionCacheModule},

View File

@ -37,8 +37,7 @@ sub loadVhostConfig {
my $json;
if ( $class->tsv->{useSafeJail} ) {
my $rUrl = $req->{env}->{RULES_URL}
|| (
(
|| ( (
$class->localConfig->{loopBackUrl}
|| "http://127.0.0.1:" . $req->{env}->{SERVER_PORT}
)

View File

@ -178,8 +178,7 @@ sub configReload {
sub jailInit {
my ( $class, $conf ) = @_;
$class->tsv->{jail} = Lemonldap::NG::Handler::Main::Jail->new(
{
$class->tsv->{jail} = Lemonldap::NG::Handler::Main::Jail->new( {
useSafeJail => $conf->{useSafeJail},
customFunctions => $conf->{customFunctions},
}
@ -193,8 +192,7 @@ sub jailInit {
sub defaultValuesInit {
my ( $class, $conf ) = @_;
$class->tsv->{$_} = $conf->{$_} foreach (
qw(
$class->tsv->{$_} = $conf->{$_} foreach ( qw(
cookieExpiration cookieName customFunctions httpOnly
securedCookie timeout timeoutActivity
timeoutActivityInterval useRedirectOnError useRedirectOnForbidden

View File

@ -446,8 +446,7 @@ sub retrieveSession {
# 2. Get the session from cache or backend
my $session = $req->data->{session} = (
Lemonldap::NG::Common::Session->new(
{
Lemonldap::NG::Common::Session->new( {
storageModule => $class->tsv->{sessionStorageModule},
storageModuleOptions => $class->tsv->{sessionStorageOptions},
cacheModule => $class->tsv->{sessionCacheModule},

View File

@ -30,8 +30,7 @@ eval { Lemonldap::NG::Handler::Main->logLevelInit('error') };
ok( !$@, 'logLevelInit' );
ok(
Lemonldap::NG::Handler::Main->jailInit(
{
Lemonldap::NG::Handler::Main->jailInit( {
https => 0,
port => 0,
maintenance => 0,
@ -51,8 +50,7 @@ ok(
);
ok(
Lemonldap::NG::Handler::Main->defaultValuesInit(
{
Lemonldap::NG::Handler::Main->defaultValuesInit( {
https => 0,
port => 0,
maintenance => 0,
@ -72,8 +70,7 @@ ok(
);
ok(
Lemonldap::NG::Handler::Main->locationRulesInit(
{
Lemonldap::NG::Handler::Main->locationRulesInit( {
'locationRules' => {
'www1' => {
'default' => 'accept',

View File

@ -13,8 +13,7 @@ ok( $app = module( Lemonldap::NG::Handler::PSGI::Try->new() ), 'New object' );
init();
ok(
$app->init(
{
$app->init( {
configStorage => { type => 'File', dirName => 't' },
localSessionStorage => '',
logLevel => 'warn',

View File

@ -105,8 +105,7 @@ sub _get {
my ( $self, $path, $query, $host, $cookie, %custom ) = @_;
$query //= '';
$host ||= 'test1.example.com';
return $self->app->(
{
return $self->app->( {
'HTTP_ACCEPT' => 'text/html',
'SCRIPT_NAME' => 'lmAuth',
'SERVER_NAME' => '127.0.0.1',

View File

@ -274,9 +274,7 @@ sub attributes {
'authChoiceModules' => {
'keyMsgFail' => '__badChoiceKey__',
'keyTest' => qr/^(\d*)?[a-zA-Z0-9_]+$/,
'select' => [
[
{
'select' => [ [ {
'k' => 'Apache',
'v' => 'Apache'
},
@ -373,8 +371,7 @@ sub attributes {
'v' => 'customModule'
}
],
[
{
[ {
'k' => 'AD',
'v' => 'Active Directory'
},
@ -439,8 +436,7 @@ sub attributes {
'v' => 'customModule'
}
],
[
{
[ {
'k' => 'AD',
'v' => 'Active Directory'
},
@ -481,8 +477,7 @@ sub attributes {
},
'authentication' => {
'default' => 'Demo',
'select' => [
{
'select' => [ {
'k' => 'Apache',
'v' => 'Apache'
},
@ -637,8 +632,7 @@ sub attributes {
},
'casAccessControlPolicy' => {
'default' => 'none',
'select' => [
{
'select' => [ {
'k' => 'none',
'v' => 'None'
},
@ -782,8 +776,7 @@ qr/(?:(?:https?):\/\/(?:(?:(?:(?:(?:(?:[a-zA-Z0-9][-a-zA-Z0-9]*)?[a-zA-Z0-9])[.]
},
'combModules' => {
'keyTest' => qr/^\w+$/,
'select' => [
{
'select' => [ {
'k' => 'Apache',
'v' => 'Apache'
},
@ -886,8 +879,7 @@ qr/(?:(?:https?):\/\/(?:(?:(?:(?:(?:(?:[a-zA-Z0-9][-a-zA-Z0-9]*)?[a-zA-Z0-9])[.]
},
'confirmFormMethod' => {
'default' => 'post',
'select' => [
{
'select' => [ {
'k' => 'get',
'v' => 'GET'
},
@ -1185,8 +1177,7 @@ qr/^(?:\*\.)?(?:(?:(?:(?:[a-zA-Z0-9][-a-zA-Z0-9]*)?[a-zA-Z0-9])[.])*(?:[a-zA-Z][
},
'infoFormMethod' => {
'default' => 'get',
'select' => [
{
'select' => [ {
'k' => 'get',
'v' => 'GET'
},
@ -1392,8 +1383,7 @@ qr/^(?:(?:(?:(?:[a-zA-Z0-9][-a-zA-Z0-9]*)?[a-zA-Z0-9])[.])*(?:[a-zA-Z][-a-zA-Z0-
},
'ldapSearchDeref' => {
'default' => 'find',
'select' => [
{
'select' => [ {
'k' => 'never',
'v' => 'never'
},
@ -1750,8 +1740,7 @@ qr/^(?:\*\.)?(?:(?:(?:(?:[a-zA-Z0-9][-a-zA-Z0-9]*)?[a-zA-Z0-9])[.])*(?:[a-zA-Z][
},
'oidcOPMetaDataOptionsDisplay' => {
'default' => '',
'select' => [
{
'select' => [ {
'k' => '',
'v' => ''
},
@ -1805,8 +1794,7 @@ qr/^(?:\*\.)?(?:(?:(?:(?:[a-zA-Z0-9][-a-zA-Z0-9]*)?[a-zA-Z0-9])[.])*(?:[a-zA-Z][
},
'oidcOPMetaDataOptionsTokenEndpointAuthMethod' => {
'default' => 'client_secret_post',
'select' => [
{
'select' => [ {
'k' => 'client_secret_post',
'v' => 'client_secret_post'
},
@ -1872,8 +1860,7 @@ qr/^(?:\*\.)?(?:(?:(?:(?:[a-zA-Z0-9][-a-zA-Z0-9]*)?[a-zA-Z0-9])[.])*(?:[a-zA-Z][
},
'oidcRPMetaDataOptionsIDTokenSignAlg' => {
'default' => 'HS512',
'select' => [
{
'select' => [ {
'k' => 'none',
'v' => 'None'
},
@ -1910,8 +1897,7 @@ qr/^(?:\*\.)?(?:(?:(?:(?:[a-zA-Z0-9][-a-zA-Z0-9]*)?[a-zA-Z0-9])[.])*(?:[a-zA-Z][
},
'oidcRPMetaDataOptionsLogoutType' => {
'default' => 'front',
'select' => [
{
'select' => [ {
'k' => 'front',
'v' => 'Front Channel'
},
@ -2108,8 +2094,7 @@ qr/^(?:\*\.)?(?:(?:(?:(?:[a-zA-Z0-9][-a-zA-Z0-9]*)?[a-zA-Z0-9])[.])*(?:[a-zA-Z][
},
'passwordDB' => {
'default' => 'Demo',
'select' => [
{
'select' => [ {
'k' => 'AD',
'v' => 'Active Directory'
},
@ -2235,8 +2220,7 @@ qr/(?:(?:https?):\/\/(?:(?:(?:(?:(?:(?:[a-zA-Z0-9][-a-zA-Z0-9]*)?[a-zA-Z0-9])[.]
},
'portalSkin' => {
'default' => 'bootstrap',
'select' => [
{
'select' => [ {
'k' => 'bootstrap',
'v' => 'Bootstrap'
}
@ -2244,8 +2228,7 @@ qr/(?:(?:https?):\/\/(?:(?:(?:(?:(?:(?:[a-zA-Z0-9][-a-zA-Z0-9]*)?[a-zA-Z0-9])[.]
'type' => 'portalskin'
},
'portalSkinBackground' => {
'select' => [
{
'select' => [ {
'k' => '',
'v' => 'None'
},
@ -2347,8 +2330,7 @@ qr/^(?:\*\.)?(?:(?:(?:(?:[a-zA-Z0-9][-a-zA-Z0-9]*)?[a-zA-Z0-9])[.])*(?:[a-zA-Z][
},
'redirectFormMethod' => {
'default' => 'get',
'select' => [
{
'select' => [ {
'k' => 'get',
'v' => 'GET'
},
@ -2364,8 +2346,7 @@ qr/^(?:\*\.)?(?:(?:(?:(?:[a-zA-Z0-9][-a-zA-Z0-9]*)?[a-zA-Z0-9])[.])*(?:[a-zA-Z][
},
'registerDB' => {
'default' => 'Null',
'select' => [
{
'select' => [ {
'k' => 'AD',
'v' => 'Active Directory'
},
@ -2596,8 +2577,7 @@ qr/(?:(?:https?):\/\/(?:(?:(?:(?:(?:(?:[a-zA-Z0-9][-a-zA-Z0-9]*)?[a-zA-Z0-9])[.]
},
'samlIDPMetaDataOptionsEncryptionMode' => {
'default' => 'none',
'select' => [
{
'select' => [ {
'k' => 'none',
'v' => 'None'
},
@ -2629,8 +2609,7 @@ qr/(?:(?:https?):\/\/(?:(?:(?:(?:(?:(?:[a-zA-Z0-9][-a-zA-Z0-9]*)?[a-zA-Z0-9])[.]
},
'samlIDPMetaDataOptionsNameIDFormat' => {
'default' => '',
'select' => [
{
'select' => [ {
'k' => '',
'v' => ''
},
@ -2679,8 +2658,7 @@ qr/(?:(?:https?):\/\/(?:(?:(?:(?:(?:(?:[a-zA-Z0-9][-a-zA-Z0-9]*)?[a-zA-Z0-9])[.]
},
'samlIDPMetaDataOptionsRequestedAuthnContext' => {
'default' => '',
'select' => [
{
'select' => [ {
'k' => '',
'v' => ''
},
@ -2717,8 +2695,7 @@ qr/(?:(?:https?):\/\/(?:(?:(?:(?:(?:(?:[a-zA-Z0-9][-a-zA-Z0-9]*)?[a-zA-Z0-9])[.]
},
'samlIDPMetaDataOptionsSLOBinding' => {
'default' => '',
'select' => [
{
'select' => [ {
'k' => '',
'v' => ''
},
@ -2739,8 +2716,7 @@ qr/(?:(?:https?):\/\/(?:(?:(?:(?:(?:(?:[a-zA-Z0-9][-a-zA-Z0-9]*)?[a-zA-Z0-9])[.]
},
'samlIDPMetaDataOptionsSSOBinding' => {
'default' => '',
'select' => [
{
'select' => [ {
'k' => '',
'v' => ''
},
@ -2898,8 +2874,7 @@ qr/(?:(?:https?):\/\/(?:(?:(?:(?:(?:(?:[a-zA-Z0-9][-a-zA-Z0-9]*)?[a-zA-Z0-9])[.]
},
'samlServiceSignatureMethod' => {
'default' => 'RSA_SHA1',
'select' => [
{
'select' => [ {
'k' => 'RSA_SHA1',
'v' => 'RSA SHA1'
},
@ -2944,8 +2919,7 @@ qr/(?:(?:https?):\/\/(?:(?:(?:(?:(?:(?:[a-zA-Z0-9][-a-zA-Z0-9]*)?[a-zA-Z0-9])[.]
},
'samlSPMetaDataOptionsEncryptionMode' => {
'default' => 'none',
'select' => [
{
'select' => [ {
'k' => 'none',
'v' => 'None'
},
@ -2966,8 +2940,7 @@ qr/(?:(?:https?):\/\/(?:(?:(?:(?:(?:(?:[a-zA-Z0-9][-a-zA-Z0-9]*)?[a-zA-Z0-9])[.]
},
'samlSPMetaDataOptionsNameIDFormat' => {
'default' => '',
'select' => [
{
'select' => [ {
'k' => '',
'v' => ''
},
@ -3100,8 +3073,7 @@ qr/(?:(?:https?):\/\/(?:(?:(?:(?:(?:(?:[a-zA-Z0-9][-a-zA-Z0-9]*)?[a-zA-Z0-9])[.]
},
'securedCookie' => {
'default' => 0,
'select' => [
{
'select' => [ {
'k' => '0',
'v' => 'unsecuredCookie'
},
@ -3221,8 +3193,7 @@ qr/^(?:(?:(?:(?:(?:(?:[a-zA-Z0-9][-a-zA-Z0-9]*)?[a-zA-Z0-9])[.])*(?:[a-zA-Z][-a-
},
'SMTPTLS' => {
'default' => '',
'select' => [
{
'select' => [ {
'k' => '',
'v' => 'none'
},
@ -3400,8 +3371,7 @@ qr/^(?:(?:(?:(?:(?:(?:[a-zA-Z0-9][-a-zA-Z0-9]*)?[a-zA-Z0-9])[.])*(?:[a-zA-Z][-a-
},
'userDB' => {
'default' => 'Same',
'select' => [
{
'select' => [ {
'k' => 'Same',
'v' => 'Same'
},
@ -3483,8 +3453,7 @@ qr/^(?:(?:(?:(?:(?:(?:[a-zA-Z0-9][-a-zA-Z0-9]*)?[a-zA-Z0-9])[.])*(?:[a-zA-Z][-a-
},
'vhostType' => {
'default' => 'Main',
'select' => [
{
'select' => [ {
'k' => 'Main',
'v' => 'Main'
},

View File

@ -269,8 +269,7 @@ $defaultAttr}
foreach ( @simpleHashKeys, @doubleHashKeys, sort keys %cnodesRe ) {
$ra->add($_);
}
foreach (
qw(
foreach ( qw(
exportedHeaders locationRules post vhostOptions
samlIDPMetaDataXML samlIDPMetaDataExportedAttributes
samlIDPMetaDataOptions samlSPMetaDataXML
@ -462,8 +461,7 @@ sub scanTree {
$jleaf->{"_$n"} = [];
$self->scanTree( $leaf->{$n}, $jleaf->{"_$n"}, $prefix,
"$path.$nodeName\[$ord\]" );
if (
(
if ( (
$leaf->{title} eq 'authParams'
and $n eq 'nodes_cond'
)

View File

@ -2944,8 +2944,7 @@ m{^(?:ldapi://[^/]*/?|\w[\w\-\.]*(?::\d{1,5})?|ldap(?:s|\+tls)?://\w[\w\-\.]*(?:
keyTest => qr/^(\d*)?[a-zA-Z0-9_]+$/,
keyMsgFail => '__badChoiceKey__',
test => sub { 1 },
select => [
[
select => [ [
{ k => 'Apache', v => 'Apache' },
{ k => 'AD', v => 'Active Directory' },
{

View File

@ -103,8 +103,7 @@ sub cTrees {
{
title => "samlSPMetaDataOptions",
help => 'idpsaml.html#options',
nodes => [
{
nodes => [ {
title => "samlSPMetaDataOptionsAuthnResponse",
form => 'simpleInputContainer',
nodes => [
@ -144,8 +143,7 @@ sub cTrees {
'oidcOPMetaDataExportedVars',
{
title => 'oidcOPMetaDataOptions',
nodes => [
{
nodes => [ {
title => 'oidcOPMetaDataOptionsConfiguration',
form => 'simpleInputContainer',
nodes => [
@ -187,8 +185,7 @@ sub cTrees {
'oidcRPMetaDataExportedVars',
{
title => 'oidcRPMetaDataOptions',
nodes => [
{
nodes => [ {
title => 'oidcRPMetaDataOptionsAuthentication',
form => 'simpleInputContainer',
nodes => [
@ -225,8 +222,7 @@ sub cTrees {
},
'oidcRPMetaDataOptionsExtraClaims',
],
casSrvMetaDataNode => [
{
casSrvMetaDataNode => [ {
title => 'casSrvMetaDataOptions',
form => 'simpleInputContainer',
nodes => [
@ -240,8 +236,7 @@ sub cTrees {
'casSrvMetaDataExportedVars',
'casSrvMetaDataOptionsProxiedServices',
],
casAppMetaDataNode => [
{
casAppMetaDataNode => [ {
title => 'casAppMetaDataOptions',
form => 'simpleInputContainer',
nodes => [

View File

@ -24,11 +24,9 @@ our $VERSION = '2.0.2';
# * confirmFormMethod
# * redirectFormMethod
sub tree {
return [
{
return [ {
title => 'generalParameters',
nodes => [
{
nodes => [ {
title => 'portalParams',
help => 'portal.html',
nodes => [
@ -36,8 +34,7 @@ sub tree {
{
title => 'portalMenu',
help => 'portalmenu.html',
nodes => [
{
nodes => [ {
title => 'portalModules',
form => 'simpleInputContainer',
nodes => [
@ -119,8 +116,7 @@ sub tree {
nodes => [
'authentication', 'userDB', 'passwordDB', 'registerDB'
],
nodes_cond => [
{
nodes_cond => [ {
title => 'adParams',
help => 'authad.html',
form => 'simpleInputContainer',
@ -152,8 +148,7 @@ sub tree {
{
title => 'dbiConnection',
help => 'authdbi.html#connection',
nodes => [
{
nodes => [ {
title => 'dbiConnectionAuth',
form => 'simpleInputContainer',
nodes => [
@ -427,8 +422,7 @@ sub tree {
{
title => 'issuerParams',
help => 'start.html#identity_provider',
nodes => [
{
nodes => [ {
title => 'issuerDBSAML',
help => 'idpsaml.html',
form => 'simpleInputContainer',
@ -601,8 +595,7 @@ sub tree {
{
title => 'passwordManagement',
help => 'resetpassword.html',
nodes => [
{
nodes => [ {
title => 'mailContent',
form => 'simpleInputContainer',
nodes => [
@ -649,8 +642,7 @@ sub tree {
{
title => 'secondFactors',
help => 'secondfactor.html',
nodes => [
{
nodes => [ {
title => 'utotp2f',
help => 'utotp2f.html',
form => 'simpleInputContainer',
@ -839,8 +831,7 @@ sub tree {
{
title => 'samlServiceSecurity',
help => 'samlservice.html#security_parameters',
nodes => [
{
nodes => [ {
title => 'samlServiceSecuritySig',
form => 'RSAKey',
group => [
@ -957,8 +948,7 @@ sub tree {
{
title => 'samlAttributeAuthorityDescriptor',
help => 'samlservice.html#attribute_authority',
nodes => [
{
nodes => [ {
title =>
'samlAttributeAuthorityDescriptorAttributeService',
nodes => [
@ -1026,8 +1016,7 @@ sub tree {
'oidcServiceMetaDataAuthnContext',
{
title => 'oidcServiceMetaDataSecurity',
nodes => [
{
nodes => [ {
title => 'oidcServiceMetaDataKeys',
form => 'RSAKeyNoPassword',
group => [

View File

@ -234,8 +234,7 @@ sub _setKey {
sub _save {
my ( $self, $new ) = @_;
require Lemonldap::NG::Manager::Conf::Parser;
my $parser = Lemonldap::NG::Manager::Conf::Parser->new(
{
my $parser = Lemonldap::NG::Manager::Conf::Parser->new( {
newConf => $new,
refConf => $self->mgr->currentConf,
req => $self->req

View File

@ -90,10 +90,8 @@ sub diff {
while ( my $key = shift @{ $keys[1] } ) {
next unless ( defined( $conf[1]->{$key} ) );
next if ( $key =~ $hashParameters and not( %{ $conf[1]->{$key} } ) );
if (
(
not ref( $conf[1]->{$key} ) and not(
(
if ( (
not ref( $conf[1]->{$key} ) and not( (
defined defaultValue( $self, $key )
and $conf[1]->{$key} eq defaultValue( $self, $key )
)

View File

@ -1070,8 +1070,7 @@ sub _unitTest {
my $msg = $attr->{msgFail} // $type->{msgFail};
$res = 0
unless (
$self->_execTest(
{
$self->_execTest( {
keyTest => $attr->{keyTest} // $type->{keyTest},
keyMsgFail => $attr->{keyMsgFail}
// $type->{keyMsgFail},

View File

@ -499,8 +499,7 @@ sub tests {
return 1 unless ( defined $conf->{totp2fDigits} );
return (
1,
(
(
( (
$conf->{totp2fDigits} == 6
or $conf->{totp2fDigits} == 8
)

View File

@ -109,8 +109,7 @@ sub setNotifAccess {
unless (
eval {
$self->notifAccess(
$type->new(
{
$type->new( {
%{ $self->{notificationStorageOptions} },
p => $self,
conf => $self

View File

@ -236,8 +236,7 @@ sub sessions {
value => $uid,
count => scalar( @{ $r->{$uid} } ),
sessions => [
map {
{
map { {
session => $_->{_sessionId},
date => $_->{_utime}
}

View File

@ -30,8 +30,7 @@ my $currentConf;
# 1
ok(
$currentConf = Lemonldap::NG::Common::Conf->new(
{
$currentConf = Lemonldap::NG::Common::Conf->new( {
confFile => 'test/lemonldap-ng.ini',
noCache => 1,
}
@ -43,8 +42,7 @@ $Lemonldap::NG::Common::Conf::msg = '';
# 2
my $new;
ok(
$new = Lemonldap::NG::Common::Conf->new(
{
$new = Lemonldap::NG::Common::Conf->new( {
type => $module,
%$args,
force => 1,

View File

@ -64,8 +64,7 @@ count(2);
foreach my $query (@hkeys) {
my $href = &client->jsonResponse( "/confs/1/$query", '' );
ok(
(
ok( (
( ref $href eq 'ARRAY' )
or ( ( ref $href eq 'HASH' )
and ( $href->{error} =~ /setDefault$/ ) )

View File

@ -129,8 +129,7 @@ done_testing( count() );
`rm -rf t/sessions`;
sub changes {
return [
{
return [ {
'key' => 'portal',
'new' => 'http://auth2.example.com/',
'old' => 'http://auth.example.com/'

View File

@ -107,8 +107,7 @@ done_testing( count() );
`rm -rf t/sessions`;
sub changes {
return [
{
return [ {
'key' => 'portal',
'new' => 'http://auth2.example.com/',
'old' => 'http://auth.example.com/'

View File

@ -20,8 +20,7 @@ ok( $res->[0] == 200, "Result code is 200" );
ok( $resBody = from_json( $res->[2]->[0] ), "Result body contains JSON text" );
ok( $resBody->{result} == 0, "JSON response contains \"result:0\"" )
or print STDERR Dumper($res);
ok(
(
ok( (
$resBody->{details}->{__errors__}
and @{ $resBody->{details}->{__errors__} } == 1
),

View File

@ -15,8 +15,7 @@ $count += 2;
foreach my $attr ( keys %$attrs ) {
next if ( $attr =~ /^virtualHosts|.*MetaDataNodes|applicationList$/ );
ok(
(
ok( (
ref( $attrs->{$attr}->{test} )
or ref( $types->{ $attrs->{$attr}->{type} }->{test} )
),
@ -24,8 +23,7 @@ foreach my $attr ( keys %$attrs ) {
);
$count++;
if ( $attr =~ qr/^$simpleHashKeys$/o ) {
ok(
(
ok( (
ref $attrs->{$attr}->{keyTest}
or ref $types->{ $attrs->{$attr}->{type} }->{keyTest}
),

View File

@ -13,8 +13,7 @@ sub newSession {
my ( $uid, $ip ) = splice @_;
my $tmp;
ok(
$tmp = Lemonldap::NG::Common::Session->new(
{
$tmp = Lemonldap::NG::Common::Session->new( {
storageModule => 'Apache::Session::File',
storageModuleOptions => {
Directory => 't/sessions',
@ -27,8 +26,7 @@ sub newSession {
'Sessions module'
);
count(1);
$tmp->update(
{
$tmp->update( {
ipAddr => $ip,
_whatToTrace => $uid,
uid => $uid,
@ -98,22 +96,19 @@ count(4);
# New GroupBy query test with 4 sessions
$res = &client->jsonResponse( '/sessions/global', 'groupBy=uid' );
ok(
(
ok( (
$res->{values}->[0]->{value} eq 'dwho'
and $res->{values}->[0]->{count} == 1
),
'1st user is dwho'
) or print STDERR Dumper($res);
ok(
(
ok( (
$res->{values}->[1]->{value} eq 'dwho2'
and $res->{values}->[1]->{count} == 1
),
'2nd user is dwho2'
) or print STDERR Dumper($res);
ok(
(
ok( (
$res->{values}->[2]->{value} eq 'foo'
and $res->{values}->[2]->{count} == 2
),

View File

@ -13,8 +13,7 @@ sub newSession {
my ( $uid, $ip, $kind, $sfaDevices ) = splice @_;
my $tmp;
ok(
$tmp = Lemonldap::NG::Common::Session->new(
{
$tmp = Lemonldap::NG::Common::Session->new( {
storageModule => 'Apache::Session::File',
storageModuleOptions => {
Directory => 't/sessions',
@ -27,8 +26,7 @@ sub newSession {
'Sessions module'
);
count(1);
$tmp->update(
{
$tmp->update( {
ipAddr => $ip,
_whatToTrace => $uid,
uid => $uid,
@ -51,8 +49,7 @@ $ids[0] = newSession( 'dwho', '127.10.0.1', 'SSO', $sfaDevices );
# Peristent sesssions
$ids[1] = newSession( 'msmith', '127.10.0.1', 'Persistent', $sfaDevices );
$sfaDevices = [
{
$sfaDevices = [ {
"name" => "MyU2FKey",
"type" => "U2F",
"_userKey" => "123456",
@ -67,8 +64,7 @@ $sfaDevices = [
}
];
$ids[2] = newSession( 'rtyler', '127.10.0.1', 'Persistent', $sfaDevices );
$sfaDevices = [
{
$sfaDevices = [ {
"name" => "MyU2FKey",
"type" => "U2F",
"_userKey" => "123456",
@ -89,8 +85,7 @@ $sfaDevices = [
}
];
$ids[3] = newSession( 'dwho', '127.10.0.1', 'Persistent', $sfaDevices );
$sfaDevices = [
{
$sfaDevices = [ {
"name" => "MyU2FKey",
"type" => "U2F",
"_userKey" => "123456",
@ -105,8 +100,7 @@ $sfaDevices = [
}
];
$ids[4] = newSession( 'davros', '127.10.0.1', 'Persistent', $sfaDevices );
$sfaDevices = [
{
$sfaDevices = [ {
"name" => "MyU2FKey",
"type" => "U2F",
"_userKey" => "123456",
@ -126,8 +120,7 @@ count(2);
# Single Persistent sessions access
for ( my $i = 1 ; $i < 6 ; $i++ ) {
$res = &client->jsonResponse("/sessions/persistent/$ids[$i]");
ok(
(
ok( (
$res->{uid}
and $res->{uid} =~ /^(?:dwho|rtyler|msmith|davros|tof)$/
),

View File

@ -150,8 +150,7 @@ sub scanTree {
ok( $name =~ /^\w+$/, "Name is a string" );
# Nodes must have leafs or subnodes
ok(
(
ok( (
exists( $leaf->{nodes} )
or exists( $leaf->{nodes_cond} )
or exists( $leaf->{group} )

View File

@ -167,8 +167,7 @@ sub run {
$self->ott->createToken( $req->sessionInfo );
$self->logger->debug("Just one 2F is enabled");
$self->logger->debug(" -> Redirect to 2fregisters/");
$req->response(
[
$req->response( [
302,
[ Location => $self->conf->{portal} . '2fregisters/' ], []
]

View File

@ -243,8 +243,7 @@ sub run {
# Secret is stored in a token: we choose to not accept secret returned
# by Ajax request to avoid some attacks
my $token = $self->ott->createToken(
{
my $token = $self->ott->createToken( {
_totp2fSecret => $secret,
}
);

View File

@ -186,8 +186,7 @@ sub run {
}
# Serialize data
$data = to_json(
{
$data = to_json( {
challenge => $data->{challenge},
appId => $data->{appId},
registeredKeys => \@rk

View File

@ -84,8 +84,7 @@ sub run {
$self->logger->debug( " -> Send challenge: " . $data->{challenge} );
# Serialize data
$data = to_json(
{
$data = to_json( {
challenge => $data->{challenge},
appId => $data->{appId},
registeredKeys => \@rk

View File

@ -29,8 +29,7 @@ use Lemonldap::NG::Portal::Main::Constants qw(
sub init {
my ($self) = @_;
if (
(
if ( (
$self->conf->{totp2fSelfRegistration}
or $self->conf->{u2fSelfRegistration}
)
@ -97,8 +96,7 @@ sub run {
$self->ott->updateToken( $token, __ch => $data->{challenge} );
# Serialize data
$data = to_json(
{
$data = to_json( {
challenge => $data->{challenge},
appId => $data->{appId},
registeredKeys => \@rk,

View File

@ -51,8 +51,7 @@ sub init {
}
$self->yubi(
Auth::Yubikey_WebClient->new(
{
Auth::Yubikey_WebClient->new( {
id => $self->conf->{yubikey2fClientID},
api => $self->conf->{yubikey2fSecretKey},
nonce => $self->conf->{yubikey2fNonce},

View File

@ -89,8 +89,7 @@ sub extractFormInfo {
chomp $key;
$self->logger->debug("GPG full sign key: $key");
my $in;
IPC::Run::run(
[
IPC::Run::run( [
'gpg', '--homedir', $self->tmp, '--keyring',
$self->db, '--list-key', $key
],

View File

@ -60,8 +60,7 @@ sub extractFormInfo {
# Case 1.1: Ajax request
if ( $req->wantJSON ) {
$req->response(
[
$req->response( [
401,
[
'WWW-Authenticate' => 'Negotiate',

View File

@ -775,8 +775,7 @@ sub extractFormInfo {
$self->logger->debug("SOAP response $slo_body");
$req->response(
[
$req->response( [
200,
[
'Content-Type' => 'application/xml',
@ -785,8 +784,7 @@ sub extractFormInfo {
[$slo_body]
]
);
$req->steps(
[
$req->steps( [
@{ $self->p->beforeLogout },
sub {
my ($req) = @_;
@ -845,8 +843,7 @@ sub extractFormInfo {
return PE_SAML_ART_ERROR;
}
$req->response(
[
$req->response( [
200,
[
'Content-Type' => 'application/xml',

View File

@ -152,8 +152,7 @@ sub handler {
# olStyleUrl can be set to 1 to use & instead of ;
$urldc .= (
$cdc_idp
? (
(
? ( (
$urldc =~ /\?/
? ( $self->{oldStyleUrl} ? '&' : ';' )
: '?'

View File

@ -5,18 +5,18 @@ use Mouse;
use URI;
use Lemonldap::NG::Common::FormEncode;
use Lemonldap::NG::Portal::Main::Constants qw(
PE_CAS_SERVICE_NOT_ALLOWED
PE_CONFIRM
PE_ERROR
PE_LOGOUT_OK
PE_OK
PE_SENDRESPONSE
PE_CAS_SERVICE_NOT_ALLOWED
PE_CONFIRM
PE_ERROR
PE_LOGOUT_OK
PE_OK
PE_SENDRESPONSE
);
our $VERSION = '2.0.0';
extends 'Lemonldap::NG::Portal::Main::Issuer',
'Lemonldap::NG::Portal::Lib::CAS';
'Lemonldap::NG::Portal::Lib::CAS';
# INITIALIZATION
@ -31,8 +31,8 @@ sub init {
# Parse activation rule
my $hd = $self->p->HANDLER;
$self->logger->debug( "CAS rule -> " . $self->conf->{issuerDBCASRule} );
my $rule
= $hd->buildSub( $hd->substitute( $self->conf->{issuerDBCASRule} ) );
my $rule =
$hd->buildSub( $hd->substitute( $self->conf->{issuerDBCASRule} ) );
unless ($rule) {
$self->error( "Bad CAS rule -> " . $hd->tsv->{jail}->error );
return 0;
@ -63,9 +63,9 @@ sub init {
sub storeEnvAndCheckGateway {
my ( $self, $req ) = @_;
my $service = $self->p->getHiddenFormValue( $req, 'service' )
|| $req->param('service');
|| $req->param('service');
my $gateway = $self->p->getHiddenFormValue( $req, 'gateway' )
|| $req->param('gateway');
|| $req->param('gateway');
if ( $gateway and $gateway eq "true" ) {
$self->logger->debug(
@ -123,18 +123,18 @@ sub run {
# GET parameters
my $service = $self->p->getHiddenFormValue( $req, 'service' )
|| $req->param('service');
|| $req->param('service');
my $renew = $self->p->getHiddenFormValue( $req, 'renew' )
|| $req->param('renew');
|| $req->param('renew');
my $gateway = $self->p->getHiddenFormValue( $req, 'gateway' )
|| $req->param('gateway');
|| $req->param('gateway');
my $casServiceTicket;
# Renew
if ( $renew
and $renew eq 'true'
and time - $req->sessionInfo->{_utime}
> $self->conf->{portalForceAuthnInterval} )
and time - $req->sessionInfo->{_utime} >
$self->conf->{portalForceAuthnInterval} )
{
# Authentication must be replayed
@ -170,8 +170,7 @@ sub run {
}
if ( my $rule = $self->spRules->{$app} ) {
if ( $rule->( $req, $req->sessionInfo ) ) {
$self->logger->debug(
"CAS service $service access allowed");
$self->logger->debug("CAS service $service access allowed");
}
else {
@ -180,15 +179,14 @@ sub run {
if ( $casAccessControlPolicy =~ /^(error)$/i ) {
$self->logger->debug(
"Return error instead of redirecting user on CAS service"
"Return error instead of redirecting user on CAS service"
);
return PE_CAS_SERVICE_NOT_ALLOWED;
}
else {
$self->logger->debug(
"Redirect user on CAS service with a fake ticket"
);
"Redirect user on CAS service with a fake ticket");
$casServiceTicket = "ST-F4K3T1CK3T";
}
}
@ -200,10 +198,10 @@ sub run {
# Check last authentication time to decide if
# the authentication is recent or not
my $casRenewFlag = 0;
my $last_authn_utime
= $req->{sessionInfo}->{_lastAuthnUTime} || 0;
if (time() - $last_authn_utime
< $self->conf->{portalForceAuthnInterval} )
my $last_authn_utime = $req->{sessionInfo}->{_lastAuthnUTime} || 0;
if (
time() - $last_authn_utime <
$self->conf->{portalForceAuthnInterval} )
{
$self->logger->debug(
"Authentication is recent, will set CAS renew flag to true"
@ -240,7 +238,7 @@ sub run {
# Redirect to service
my $service_url = $service;
$service_url .= ( $service =~ /\?/ ? '&' : '?' )
. build_urlencoded( ticket => $casServiceTicket );
. build_urlencoded( ticket => $casServiceTicket );
$self->logger->debug("Redirect user to $service_url");
@ -326,8 +324,7 @@ sub run {
# This URL must not be called by authenticated users
$self->userLogger->info(
"CAS SERVICE VALIDATE URL called by authenticated user, ignore it"
);
"CAS SERVICE VALIDATE URL called by authenticated user, ignore it");
return PE_OK;
}
@ -335,8 +332,7 @@ sub run {
# 5. PROXY VALIDATE [CAS 2.0]
if ( $target eq $cas_proxyValidate || $target eq $cas_p3_proxyValidate ) {
$self->logger->debug(
"URL $url detected as an CAS PROXY VALIDATE URL");
$self->logger->debug("URL $url detected as an CAS PROXY VALIDATE URL");
# This URL must not be called by authenticated users
$self->userLogger->info(
@ -418,21 +414,20 @@ sub validate {
or $service2_uri->rel($service1_uri) eq "./" )
{
$self->logger->notice(
"Submitted service $service1_uri does not exactly match initial service "
. $service2_uri
. ' but difference is tolerated.' );
"Submitted service $service1_uri does not exactly match initial service "
. $service2_uri
. ' but difference is tolerated.' );
}
else {
$self->logger->error(
"Submitted service $service does not match initial service "
. $casServiceSession->data->{service} );
. $casServiceSession->data->{service} );
$self->deleteCasSession($casServiceSession);
return $self->returnCasValidateError();
}
}
else {
$self->logger->debug(
"Submitted service $service math initial servce");
$self->logger->debug("Submitted service $service math initial servce");
}
# Check renew
@ -443,7 +438,7 @@ sub validate {
unless ( $casServiceSession->data->{renew} ) {
$self->logger->error(
"Authentication renew requested, but not done in former authentication process"
"Authentication renew requested, but not done in former authentication process"
);
$self->deleteCasSession($casServiceSession);
return $self->returnCasValidateError();
@ -451,20 +446,20 @@ sub validate {
}
# Open local session
my $localSession
= $self->p->getApacheSession( $casServiceSession->data->{_cas_id} );
my $localSession =
$self->p->getApacheSession( $casServiceSession->data->{_cas_id} );
unless ($localSession) {
$self->logger->warn( "Local session "
. $casServiceSession->data->{_cas_id}
. " notfound" );
. $casServiceSession->data->{_cas_id}
. " notfound" );
$self->deleteCasSession($casServiceSession);
return $self->returnCasValidateError();
}
# Get username
my $username = $localSession->data->{ $self->conf->{casAttr}
|| $self->conf->{whatToTrace} };
|| $self->conf->{whatToTrace} };
$self->logger->debug("Get username $username");
@ -573,8 +568,8 @@ sub _validate2 {
}
$self->logger->debug( "Get "
. lc($urlType)
. " validate request with ticket $ticket for service $service" );
. lc($urlType)
. " validate request with ticket $ticket for service $service" );
# Get CAS session corresponding to ticket
if ( $urlType eq 'SERVICE' and !( $ticket =~ s/^ST-// ) ) {
@ -611,14 +606,14 @@ sub _validate2 {
or $service2_uri->rel($service1_uri) eq "./" )
{
$self->logger->notice(
"Submitted service $service1_uri does not exactly match initial service "
. $service2_uri
. ' but difference is tolerated.' );
"Submitted service $service1_uri does not exactly match initial service "
. $service2_uri
. ' but difference is tolerated.' );
}
else {
$self->userLogger->error(
"Submitted service $service does not match initial service "
. $casServiceSession->data->{service} );
. $casServiceSession->data->{service} );
$self->deleteCasSession($casServiceSession);
return $self->returnCasServiceValidateError( $req,
'INVALID_SERVICE',
@ -638,7 +633,7 @@ sub _validate2 {
unless ( $casServiceSession->data->{renew} ) {
$self->logger->error(
"Authentication renew requested, but not done in former authentication process"
"Authentication renew requested, but not done in former authentication process"
);
$self->deleteCasSession($casServiceSession);
return $self->returnCasValidateError();
@ -677,7 +672,7 @@ sub _validate2 {
if ($casProxyGrantingSession) {
my $casProxyGrantingSessionID = $casProxyGrantingSession->id;
my $casProxyGrantingTicket = "PGT-" . $casProxyGrantingSessionID;
my $casProxyGrantingTicket = "PGT-" . $casProxyGrantingSessionID;
$self->logger->debug(
"CAS proxy granting session $casProxyGrantingSessionID created"
@ -691,15 +686,16 @@ sub _validate2 {
$casProxyGrantingTicketIOU = "PGTIOU-" . $tmpCasSession->id;
$self->deleteCasSession($tmpCasSession);
$self->logger->debug(
"Generate proxy granting ticket IOU $casProxyGrantingTicketIOU"
"Generate proxy granting ticket IOU $casProxyGrantingTicketIOU"
);
# Request pgtUrl
if ($self->callPgtUrl(
if (
$self->callPgtUrl(
$pgtUrl, $casProxyGrantingTicketIOU,
$casProxyGrantingTicket
)
)
)
{
$self->logger->debug(
"Proxy granting URL $pgtUrl called with success");
@ -719,13 +715,13 @@ sub _validate2 {
}
# Open local session
my $localSession
= $self->p->getApacheSession( $casServiceSession->data->{_cas_id} );
my $localSession =
$self->p->getApacheSession( $casServiceSession->data->{_cas_id} );
unless ($localSession) {
$self->userLogger->error( "Local session "
. $casServiceSession->data->{_cas_id}
. " notfound" );
. $casServiceSession->data->{_cas_id}
. " notfound" );
$self->deleteCasSession($casServiceSession);
return $self->returnCasServiceValidateError( $req, 'INTERNAL_ERROR',
'No session associated to ticket' );
@ -733,16 +729,16 @@ sub _validate2 {
# Get username
my $username = $localSession->data->{ $self->conf->{casAttr}
|| $self->conf->{whatToTrace} };
|| $self->conf->{whatToTrace} };
$self->logger->debug("Get username $username");
# Get attributes [CAS 3.0]
my $attributes = {};
my $ev
= ( $app and $self->conf->{casAppMetaDataExportedVars}->{$app} )
? $self->conf->{casAppMetaDataExportedVars}->{$app}
: {};
my $ev =
( $app and $self->conf->{casAppMetaDataExportedVars}->{$app} )
? $self->conf->{casAppMetaDataExportedVars}->{$app}
: {};
unless (%$ev) {
$ev = $self->conf->{casAttributes} || {};
}
@ -750,7 +746,7 @@ sub _validate2 {
foreach my $casAttribute ( keys %$ev ) {
my $localSessionValue = $localSession->data->{ $ev->{$casAttribute} };
$attributes->{$casAttribute} = $localSessionValue
if defined $localSessionValue;
if defined $localSessionValue;
}
# Return success message

View File

@ -59,9 +59,11 @@ sub init {
# Parse activation rule
my $hd = $self->p->HANDLER;
$self->logger->debug( "OIDC rule -> " . $self->conf->{issuerDBOpenIDConnectRule} );
my $rule
= $hd->buildSub( $hd->substitute( $self->conf->{issuerDBOpenIDConnectRule} ) );
$self->logger->debug(
"OIDC rule -> " . $self->conf->{issuerDBOpenIDConnectRule} );
my $rule =
$hd->buildSub(
$hd->substitute( $self->conf->{issuerDBOpenIDConnectRule} ) );
unless ($rule) {
$self->error( "Bad OIDC rule -> " . $hd->tsv->{jail}->error );
return 0;
@ -865,8 +867,7 @@ sub run {
if ( $req->param('confirm') ) {
my $err;
if ( $req->param('confirm') == 1 ) {
$req->steps(
[
$req->steps( [
@{ $self->p->beforeLogout }, 'authLogout',
'deleteSession'
]

View File

@ -21,10 +21,10 @@ our $VERSION = '2.0.0';
extends 'Lemonldap::NG::Portal::Main::Issuer',
'Lemonldap::NG::Portal::Lib::SAML';
has rule => ( is => 'rw', default => sub { {} } );
has ssoUrlRe => ( is => 'rw' );
has rule => ( is => 'rw', default => sub { {} } );
has ssoUrlRe => ( is => 'rw' );
has ssoUrlArtifact => ( is => 'rw' );
has ssoGetUrl => ( is => 'rw' );
has ssoGetUrl => ( is => 'rw' );
use constant sessionKind => 'ISAML';
use constant lsDump => '_lassoSessionDumpI';
@ -43,8 +43,8 @@ sub init {
# Parse activation rule
my $hd = $self->p->HANDLER;
$self->logger->debug( "SAML rule -> " . $self->conf->{issuerDBSAMLRule} );
my $rule
= $hd->buildSub( $hd->substitute( $self->conf->{issuerDBSAMLRule} ) );
my $rule =
$hd->buildSub( $hd->substitute( $self->conf->{issuerDBSAMLRule} ) );
unless ($rule) {
$self->error( "Bad SAML rule -> " . $hd->tsv->{jail}->error );
return 0;
@ -198,7 +198,7 @@ sub run {
$self->userLogger->error('SAML service not authorized');
return PE_SAML_SERVICE_NOT_ALLOWED;
}
# Session ID
my $session_id = $req->{sessionInfo}->{_session_id} || $req->{id};
@ -913,8 +913,7 @@ sub run {
}
# HTTP-POST
if (
(
if ( (
!$artifact
and $protocolProfile eq
Lasso::Constants::LOGIN_PROTOCOL_PROFILE_BRWS_POST

View File

@ -100,8 +100,7 @@ sub getCasSession {
);
}
my $casSession = Lemonldap::NG::Common::Session->new(
{
my $casSession = Lemonldap::NG::Common::Session->new( {
%storage,
cacheModule => $self->conf->{localSessionStorage},
cacheModuleOptions => $self->conf->{localSessionStorageOptions},

View File

@ -190,7 +190,7 @@ sub userBind {
my $pp_error = $resp->pp_error;
if ( defined $pp_error ) {
$self->{portal}->userLogger->error(
"Password policy error $pp_error for ".$req->user);
"Password policy error $pp_error for " . $req->user );
return [
PE_PP_PASSWORD_EXPIRED,
PE_PP_ACCOUNT_LOCKED,

View File

@ -644,8 +644,7 @@ sub getOpenIDConnectSession {
);
}
my $oidcSession = Lemonldap::NG::Common::Session->new(
{
my $oidcSession = Lemonldap::NG::Common::Session->new( {
%storage,
cacheModule => $self->conf->{localSessionStorage},
cacheModuleOptions => $self->conf->{localSessionStorageOptions},

View File

@ -43,8 +43,7 @@ sub checkRemoteId {
# Trying to recover session from global session storage
my $remoteSession = Lemonldap::NG::Common::Session->new(
{
my $remoteSession = Lemonldap::NG::Common::Session->new( {
storageModule => $self->conf->{remoteGlobalStorage},
storageModuleOptions =>
$self->conf->{remoteGlobalStorageOptions},

View File

@ -2815,8 +2815,7 @@ sub checkDestination {
sub getSamlSession {
my ( $self, $id, $info ) = @_;
my $samlSession = Lemonldap::NG::Common::Session->new(
{
my $samlSession = Lemonldap::NG::Common::Session->new( {
storageModule => $self->aModule,
storageModuleOptions => $self->amOpts,
cacheModule => $self->conf->{localSessionStorage},

View File

@ -98,7 +98,6 @@ use constant {
PE_OIDC_SERVICE_NOT_ALLOWED => 90,
PE_OID_SERVICE_NOT_ALLOWED => 91,
};
# EXPORTER PARAMETERS
@ -125,7 +124,7 @@ our @EXPORT_OK = qw( PE_SENDRESPONSE PE_INFO PE_REDIRECT PE_DONE PE_OK
PE_CAPTCHAERROR PE_CAPTCHAEMPTY PE_REGISTERFIRSTACCESS PE_REGISTERFORMEMPTY
PE_REGISTERALREADYEXISTS PE_NOTOKEN PE_TOKENEXPIRED HANDLER PE_U2FFAILED
PE_UNAUTHORIZEDPARTNER PE_RENEWSESSION PE_IDPCHOICE PE_WAIT PE_MUSTAUTHN
PE_MUSTHAVEMAIL PE_SAML_SERVICE_NOT_ALLOWED PE_OIDC_SERVICE_NOT_ALLOWED
PE_MUSTHAVEMAIL PE_SAML_SERVICE_NOT_ALLOWED PE_OIDC_SERVICE_NOT_ALLOWED
PE_OID_SERVICE_NOT_ALLOWED
);
our %EXPORT_TAGS = ( 'all' => [ @EXPORT_OK, 'import' ], );

View File

@ -601,8 +601,7 @@ sub mkOidcConsent {
'oidcConsents',
params => {
partners => [
map {
{
map { {
name => $_,
epoch => $consents->{$_}->{epoch},
scope => $consents->{$_}->{scope},

View File

@ -88,8 +88,7 @@ has csp => ( is => 'rw' );
sub init {
my ( $self, $args ) = @_;
$args ||= {};
$self->localConfig(
{
$self->localConfig( {
%{ Lemonldap::NG::Common::Conf->new( $args->{configStorage} )
->getLocalConf('portal')
},

View File

@ -302,8 +302,7 @@ sub authenticate {
}
# Store failed login into history
$req->steps(
[
$req->steps( [
'setSessionInfo', 'setMacros',
'setPersistentSessionInfo', 'storeHistory',
@{ $self->afterData }, sub { PE_BADCREDENTIALS }

View File

@ -150,8 +150,7 @@ sub refresh {
foreach ( keys %data ) {
delete $data{$_} unless ( /^_/ or /^(?:startTime)$/ );
}
$req->steps(
[
$req->steps( [
'getUser',
@{ $self->betweenAuthAndData },
'setAuthSessionInfo',
@ -327,8 +326,7 @@ sub getApacheSession {
$self->logger->debug("Try to get a new $args{kind} session");
}
my $as = Lemonldap::NG::Common::Session->new(
{
my $as = Lemonldap::NG::Common::Session->new( {
storageModule => $self->conf->{globalStorage},
storageModuleOptions => $self->conf->{globalStorageOptions},
cacheModule => $self->conf->{localSessionStorage},
@ -395,8 +393,7 @@ sub getPersistentSession {
$info->{_session_uid} = $uid;
my $ps = Lemonldap::NG::Common::Session->new(
{
my $ps = Lemonldap::NG::Common::Session->new( {
storageModule => $self->conf->{persistentStorage},
storageModuleOptions => $self->conf->{persistentStorageOptions},
id => $pid,

View File

@ -47,8 +47,7 @@ sub check {
# Not launched methods:
# - "extractFormInfo" due to "token"
# - "buildCookie" useless here
$req->steps(
[
$req->steps( [
'getUser',
'authenticate',
@{ $self->p->betweenAuthAndData },

View File

@ -21,8 +21,7 @@ sub run {
my ( $self, $req ) = @_;
if ( $req->param('checkLogins') ) {
$self->logger->debug('History asked');
$req->info(
(
$req->info( (
$req->sessionInfo->{_loginHistory}->{successLogin}
? $self->p->mkSessionArray(
$req->sessionInfo->{_loginHistory}->{successLogin},

View File

@ -182,8 +182,7 @@ sub _reset {
}
# Search user in database
$req->steps(
[
$req->steps( [
'getUser', 'setSessionInfo',
'setMacros', 'setGroups',
'setPersistentSessionInfo', 'setLocalGroups'
@ -548,8 +547,7 @@ sub display {
}
# Display form the first time
if (
(
if ( (
$req->error == PE_MAILFORMEMPTY
or $req->error == PE_MAILFIRSTACCESS
or $req->error == PE_MAILNOTFOUND

View File

@ -231,8 +231,7 @@ sub newAuthSession {
$req->{force} = 1;
$req->user( $req->param('user') );
$req->data->{password} = $req->param('password');
$req->steps(
[
$req->steps( [
@{ $self->p->beforeAuth },
qw(getUser authenticate setAuthSessionInfo),
@{ $self->p->betweenAuthAndData },

View File

@ -233,8 +233,7 @@ sub _register {
unless ( $req->data->{register_token} or $register_session ) {
# Create mail token
$register_session = $self->mailott->createToken(
{
$register_session = $self->mailott->createToken( {
mail => $req->data->{registerInfo}->{mail},
firstname => $req->data->{registerInfo}->{firstname},
lastname => $req->data->{registerInfo}->{lastname},
@ -430,8 +429,7 @@ sub display {
);
# Display form the first time
if (
(
if ( (
$req->error == PE_REGISTERFORMEMPTY
or $req->error == PE_REGISTERFIRSTACCESS
or $req->error == PE_CAPTCHAERROR

View File

@ -222,8 +222,7 @@ sub getCookies {
# Launch process
else {
$req->steps(
[
$req->steps( [
qw(getUser authenticate setAuthSessionInfo),
@{ $self->p->betweenAuthAndData },
$self->p->sessionData,
@ -290,8 +289,7 @@ sub getAttributes {
SOAP::Data->name(
attributes => _buildSoapHash(
$session->data,
(
(
( (
$session->{_session_kind}
and $session->{_session_kind} eq 'SSO'
)

View File

@ -58,8 +58,7 @@ sub newDevice {
my ( $self, $req ) = @_;
if ( $req->param('stayconnected') ) {
my $token = $self->ott->createToken(
{
my $token = $self->ott->createToken( {
name => $req->sessionInfo->{ $self->conf->{whatToTrace} }
}
);

View File

@ -31,8 +31,7 @@ sub getUser {
my ( $self, $req, %args ) = @_;
my $res;
$res = eval {
$self->restCall(
(
$self->restCall( (
$args{useMail}
? $self->conf->{restMailDBUrl} || $self->conf->{restUserDBUrl}
: $self->conf->{restUserDBUrl}

View File

@ -8,8 +8,7 @@ require 't/test-lib.pm';
my $res;
my $tmp;
my $client = LLNG::Manager::Test->new(
{
my $client = LLNG::Manager::Test->new( {
ini => {
logLevel => 'error',
customPlugins => 't::pdata',

View File

@ -9,8 +9,7 @@ require 't/test-lib.pm';
my $res;
my $client = LLNG::Manager::Test->new(
{
my $client = LLNG::Manager::Test->new( {
ini => {
logLevel => 'error',
passwordDB => 'Demo',

View File

@ -4,8 +4,7 @@ use IO::String;
require 't/test-lib.pm';
my $client = LLNG::Manager::Test->new(
{
my $client = LLNG::Manager::Test->new( {
ini => {
logLevel => 'error',
useSafeJail => 1,

View File

@ -6,8 +6,7 @@ require 't/test-lib.pm';
my $res;
my $client = LLNG::Manager::Test->new(
{
my $client = LLNG::Manager::Test->new( {
ini => {
logLevel => 'error',
useSafeJail => 1,

View File

@ -19,8 +19,7 @@ SKIP: {
$dbh->do(
"INSERT INTO users VALUES ('french','french','Frédéric Accents')");
$dbh->do("INSERT INTO users VALUES ('russian','russian','Русский')");
my $client = LLNG::Manager::Test->new(
{
my $client = LLNG::Manager::Test->new( {
ini => {
logLevel => 'error',
useSafeJail => 1,

View File

@ -106,8 +106,7 @@ SKIP: {
$dbh->do(
"INSERT INTO users VALUES ('jsmith','{ssha512}wr0zU/I6f7U4bVoeOlJnNFbhF0a9np59LUeNnhokohVI/wiNzt8Y4JujfOfNQiGuiVgY+xrYggfmgpke6KdjxKS7W0GR1ZCe','John Smith')"
);
my $client = LLNG::Manager::Test->new(
{
my $client = LLNG::Manager::Test->new( {
ini => {
logLevel => 'error',
useSafeJail => 1,

View File

@ -17,8 +17,7 @@ SKIP: {
my $dbh = DBI->connect("dbi:SQLite:dbname=t/userdb.db");
$dbh->do('CREATE TABLE users (user text,password text,name text)');
$dbh->do("INSERT INTO users VALUES ('dwho','dwho','Doctor who')");
my $client = LLNG::Manager::Test->new(
{
my $client = LLNG::Manager::Test->new( {
ini => {
logLevel => 'error',
useSafeJail => 1,

View File

@ -11,8 +11,7 @@ SKIP: {
skip 'LLNGTESTLDAP is not set', $maintests unless ( $ENV{LLNGTESTLDAP} );
require 't/test-ldap.pm';
my $client = LLNG::Manager::Test->new(
{
my $client = LLNG::Manager::Test->new( {
ini => {
logLevel => 'error',
useSafeJail => 1,

View File

@ -11,8 +11,7 @@ SKIP: {
skip 'LLNGTESTLDAP is not set', $maintests unless ( $ENV{LLNGTESTLDAP} );
require 't/test-ldap.pm';
my $client = LLNG::Manager::Test->new(
{
my $client = LLNG::Manager::Test->new( {
ini => {
logLevel => 'error',
useSafeJail => 1,

View File

@ -10,8 +10,7 @@ my $maintests = 1;
SKIP: {
skip 'No AD server given', $maintests unless ( $ENV{ADSERVER} );
my $client = LLNG::Manager::Test->new(
{
my $client = LLNG::Manager::Test->new( {
ini => {
logLevel => 'error',
useSafeJail => 1,

View File

@ -65,8 +65,7 @@ LWP::Protocol::PSGI->register(
my $res;
my $client = LLNG::Manager::Test->new(
{
my $client = LLNG::Manager::Test->new( {
ini => {
logLevel => 'error',
useSafeJail => 1,

View File

@ -5,8 +5,7 @@ require 't/test-lib.pm';
my $res;
my $client = LLNG::Manager::Test->new(
{
my $client = LLNG::Manager::Test->new( {
ini => {
logLevel => 'error',
useSafeJail => 1,

View File

@ -14,8 +14,7 @@ SKIP: {
if ($@) {
skip 'GSSAPI not found', $maintests;
}
my $client = LLNG::Manager::Test->new(
{
my $client = LLNG::Manager::Test->new( {
ini => {
logLevel => $debug,
useSafeJail => 1,
@ -32,8 +31,7 @@ SKIP: {
'Get negotiate header' )
or explain( $res->[1], 'WWW-Authenticate => Negotiate' );
&Lemonldap::NG::Handler::Main::cfgNum( 0, 0 );
$client = LLNG::Manager::Test->new(
{
$client = LLNG::Manager::Test->new( {
ini => {
logLevel => $debug,
useSafeJail => 1,

View File

@ -5,8 +5,7 @@ require 't/test-lib.pm';
my $res;
my $client = LLNG::Manager::Test->new(
{
my $client = LLNG::Manager::Test->new( {
ini => {
logLevel => 'error',
useSafeJail => 1,

View File

@ -5,8 +5,7 @@ require 't/test-lib.pm';
my $res;
my $client = LLNG::Manager::Test->new(
{
my $client = LLNG::Manager::Test->new( {
ini => {
logLevel => 'error',
useSafeJail => 1,

View File

@ -8,8 +8,7 @@ require 't/test-lib.pm';
SKIP: {
skip 'REMOTELLNG is not set', $maintests unless ( $ENV{REMOTELLNG} );
my $client = LLNG::Manager::Test->new(
{
my $client = LLNG::Manager::Test->new( {
ini => {
logLevel => 'error',
useSafeJail => 1,

View File

@ -20,8 +20,7 @@ SKIP: {
$dbh->do('CREATE TABLE users (user text,password text,name text)');
$dbh->do("INSERT INTO users VALUES ('dwho','dwho','Doctor who')");
my $client = LLNG::Manager::Test->new(
{
my $client = LLNG::Manager::Test->new( {
ini => {
logLevel => 'error',
useSafeJail => 1,

View File

@ -21,8 +21,7 @@ SKIP: {
$dbh->do('CREATE TABLE users (user text,password text,name text)');
$dbh->do("INSERT INTO users VALUES ('dwho','dwho','Doctor who')");
my $client = LLNG::Manager::Test->new(
{
my $client = LLNG::Manager::Test->new( {
ini => {
logLevel => 'error',
useSafeJail => 1,

View File

@ -15,8 +15,7 @@ SKIP: {
my $res;
use_ok('Lemonldap::NG::Common::FormEncode');
my $client = LLNG::Manager::Test->new(
{
my $client = LLNG::Manager::Test->new( {
ini => {
logLevel => 'error',
authentication => 'GPG',

View File

@ -5,8 +5,7 @@ require 't/test-lib.pm';
my $res;
my $client = LLNG::Manager::Test->new(
{
my $client = LLNG::Manager::Test->new( {
ini => {
logLevel => 'error',
useSafeJail => 1,
@ -41,8 +40,7 @@ expectCookie($res);
count(1);
&Lemonldap::NG::Handler::Main::cfgNum( 0, 0 );
$client = LLNG::Manager::Test->new(
{
$client = LLNG::Manager::Test->new( {
ini => {
logLevel => 'error',
useSafeJail => 1,

View File

@ -40,10 +40,14 @@ SKIP: {
'Unauth SP request'
);
expectOK($res);
ok( $res->[2]->[0] =~ m%<form id="lformDemo" action="#" method="post" class="login Demo">%s,
'Found Demo choice' ) or print STDERR Dumper( $res->[2]->[0] );
ok(
$res->[2]->[0] =~
m%<form id="lformDemo" action="#" method="post" class="login Demo">%s,
'Found Demo choice'
) or print STDERR Dumper( $res->[2]->[0] );
ok( $res->[2]->[0] =~ m#<form[^>]+class="login SAML".*?</form>#s,
'Found SAML choice' ) or print STDERR Dumper( $res->[2]->[0] );
'Found SAML choice' )
or print STDERR Dumper( $res->[2]->[0] );
$res->[2]->[0] = $&;
my ( $host, $url, $query ) = expectForm( $res, undef, undef, 'test' );
@ -60,14 +64,13 @@ SKIP: {
or explain( $res->[1],
'Set-Cookie => lemonldapidp=0; domain=.sp.com; path=/; expires=-1d' );
( $host, $url, $query ) = expectForm( $res, undef, undef, 'confirm', );
ok( $res->[2]->[0]
=~ m%<img src="http://auth.sp.com/static/common/icons/sfa_manager.png" class="mr-2" alt="IDP2" title="IDP2" />%,
ok(
$res->[2]->[0] =~
m%<img src="http://auth.sp.com/static/common/icons/sfa_manager.png" class="mr-2" alt="IDP2" title="IDP2" />%,
'Found IDP icon and title tag'
) or print STDERR Dumper( $res->[2]->[0] );
ok( $res->[2]->[0]
=~ /idp_Test_DisplayName/,
'Found IDP display name'
) or print STDERR Dumper( $res->[2]->[0] );
ok( $res->[2]->[0] =~ /idp_Test_DisplayName/, 'Found IDP display name' )
or print STDERR Dumper( $res->[2]->[0] );
my $spPdata = 'lemonldappdata=' . expectCookie( $res, 'lemonldappdata' );
@ -221,8 +224,7 @@ sub switch {
}
sub sp {
return LLNG::Manager::Test->new(
{
return LLNG::Manager::Test->new( {
ini => {
domain => 'sp.com',
portal => 'http://auth.sp.com',
@ -257,8 +259,8 @@ sub sp {
samlIDPMetaDataOptionsCheckSSOMessageSignature => 1,
samlIDPMetaDataOptionsCheckSLOMessageSignature => 1,
samlIDPMetaDataOptionsForceUTF8 => 1,
samlIDPMetaDataOptionsDisplayName => 'idp_Test_DisplayName',
samlIDPMetaDataOptionsDisplayName =>
'idp_Test_DisplayName',
},
idp2 => {
@ -270,7 +272,7 @@ sub sp {
samlIDPMetaDataOptionsCheckSSOMessageSignature => 1,
samlIDPMetaDataOptionsCheckSLOMessageSignature => 1,
samlIDPMetaDataOptionsForceUTF8 => 1,
samlIDPMetaDataOptionsIcon => 'icons/sfa_manager.png',
samlIDPMetaDataOptionsIcon => 'icons/sfa_manager.png',
},
},
samlIDPMetaDataExportedAttributes => {
@ -379,8 +381,7 @@ XVhuG8OrWQDoS5gYHSjdw1CTJyixeJwyoqA9RGYguG5nh9zndi3LWAh7Z0lx+tIz
}
sub issuer {
return LLNG::Manager::Test->new(
{
return LLNG::Manager::Test->new( {
ini => {
logLevel => $debug,
domain => 'idp.com',

View File

@ -171,8 +171,7 @@ sub switch {
}
sub issuer {
return LLNG::Manager::Test->new(
{
return LLNG::Manager::Test->new( {
ini => {
logLevel => $debug,
templatesDir => 'site/htdocs/static',
@ -458,8 +457,7 @@ EOF
}
sub sp {
return LLNG::Manager::Test->new(
{
return LLNG::Manager::Test->new( {
ini => {
logLevel => $debug,
domain => 'sp.com',

View File

@ -195,8 +195,7 @@ sub switch {
}
sub issuer {
return LLNG::Manager::Test->new(
{
return LLNG::Manager::Test->new( {
ini => {
logLevel => $debug,
domain => 'idp.com',
@ -480,8 +479,7 @@ EOF
}
sub sp {
return LLNG::Manager::Test->new(
{
return LLNG::Manager::Test->new( {
ini => {
logLevel => $debug,
domain => 'sp.com',

View File

@ -33,8 +33,7 @@ clean_sessions();
done_testing( count() );
sub issuer {
return LLNG::Manager::Test->new(
{
return LLNG::Manager::Test->new( {
ini => {
logLevel => $debug,
domain => 'idp.com',

View File

@ -201,8 +201,7 @@ sub switch {
}
sub issuer {
return LLNG::Manager::Test->new(
{
return LLNG::Manager::Test->new( {
ini => {
logLevel => $debug,
templatesDir => 'site/htdocs/static',
@ -320,8 +319,7 @@ ywIDAQAB
}
sub sp {
return LLNG::Manager::Test->new(
{
return LLNG::Manager::Test->new( {
ini => {
logLevel => $debug,
domain => 'sp.com',

View File

@ -197,8 +197,7 @@ sub switch {
}
sub issuer {
return LLNG::Manager::Test->new(
{
return LLNG::Manager::Test->new( {
ini => {
logLevel => $debug,
domain => 'idp.com',
@ -314,8 +313,7 @@ ywIDAQAB
}
sub sp {
return LLNG::Manager::Test->new(
{
return LLNG::Manager::Test->new( {
ini => {
logLevel => $debug,
domain => 'sp.com',

View File

@ -183,8 +183,7 @@ sub switch {
}
sub issuer {
return LLNG::Manager::Test->new(
{
return LLNG::Manager::Test->new( {
ini => {
logLevel => $debug,
templatesDir => 'site/htdocs/static',
@ -302,8 +301,7 @@ ywIDAQAB
}
sub sp {
return LLNG::Manager::Test->new(
{
return LLNG::Manager::Test->new( {
ini => {
logLevel => $debug,
domain => 'sp.com',

View File

@ -205,8 +205,7 @@ sub switch {
}
sub issuer {
return LLNG::Manager::Test->new(
{
return LLNG::Manager::Test->new( {
ini => {
logLevel => $debug,
domain => 'idp.com',
@ -322,8 +321,7 @@ ywIDAQAB
}
sub sp {
return LLNG::Manager::Test->new(
{
return LLNG::Manager::Test->new( {
ini => {
logLevel => $debug,
domain => 'sp.com',

View File

@ -43,8 +43,7 @@ SKIP: {
use_ok('Lemonldap::NG::Portal::CDC');
ok(
$cdc = LLNG::Manager::Test->new(
{
$cdc = LLNG::Manager::Test->new( {
ini => {
logLevel => 'error',
samlCommonDomainCookieDomain => 'cdc.com',
@ -227,8 +226,7 @@ sub switch {
}
sub issuer {
return LLNG::Manager::Test->new(
{
return LLNG::Manager::Test->new( {
ini => {
logLevel => $debug,
domain => 'idp.com',
@ -349,8 +347,7 @@ ywIDAQAB
}
sub sp {
return LLNG::Manager::Test->new(
{
return LLNG::Manager::Test->new( {
ini => {
logLevel => $debug,
domain => 'sp.com',

View File

@ -200,8 +200,7 @@ sub switch {
}
sub issuer {
return LLNG::Manager::Test->new(
{
return LLNG::Manager::Test->new( {
ini => {
logLevel => $debug,
domain => 'idp.com',
@ -319,8 +318,7 @@ ywIDAQAB
sub sp {
my $xml = samlIDPMetaDataXML( 'idp', 'HTTP-POST' );
return LLNG::Manager::Test->new(
{
return LLNG::Manager::Test->new( {
ini => {
logLevel => $debug,
domain => 'sp.com',

View File

@ -183,8 +183,7 @@ sub switch {
}
sub issuer {
return LLNG::Manager::Test->new(
{
return LLNG::Manager::Test->new( {
ini => {
logLevel => $debug,
domain => 'idp.com',
@ -313,8 +312,7 @@ ywIDAQAB
}
sub sp {
return LLNG::Manager::Test->new(
{
return LLNG::Manager::Test->new( {
ini => {
logLevel => $debug,
domain => 'sp.com',

Some files were not shown because too many files have changed in this diff Show More