lemonldap-ng/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Conf/Zero.pm

203 lines
8.0 KiB
Perl

package Lemonldap::NG::Manager::Conf::Zero;
use strict;
our $VERSION = '2.0.13';
sub zeroConf {
my ( $domain, $sessionDir, $persistentSessionDir, $notificationDir,
$cacheDir )
= @_;
$domain ||= 'example.com';
$sessionDir ||= '/var/lib/lemonldap-ng/sessions';
$persistentSessionDir ||= '/var/lib/lemonldap-ng/psessions';
$notificationDir ||= '/var/lib/lemonldap-ng/notifications';
$cacheDir ||= '/var/cache/lemonldap-ng/';
return {
'timeout' => 72000,
'loginHistoryEnabled' => 1,
'userDB' => 'Same',
'applicationList' => {
'2administration' => {
'manager' => {
'options' => {
'logo' => 'configure.png',
'name' => 'WebSSO Manager',
'display' => 'auto',
'uri' => "http://manager.$domain/manager.html",
'description' => 'Configure LemonLDAP::NG WebSSO'
},
'type' => 'application'
},
'sessions' => {
'type' => 'application',
'options' => {
'display' => 'auto',
'uri' => "http://manager.$domain/sessions.html",
'description' => 'Explore WebSSO sessions',
'logo' => 'database.png',
'name' => 'Sessions explorer'
}
},
'catname' => 'Administration',
'notifications' => {
'type' => 'application',
'options' => {
'description' => 'Explore WebSSO notifications',
'uri' => "http://manager.$domain/notifications.html",
'display' => 'auto',
'logo' => 'database.png',
'name' => 'Notifications explorer'
}
},
'type' => 'category'
},
'3documentation' => {
'type' => 'category',
'localdoc' => {
'options' => {
'description' =>
'Documentation supplied with LemonLDAP::NG',
'display' => 'on',
'uri' => "http://manager.$domain/doc/",
'name' => 'Local documentation',
'logo' => 'help.png'
},
'type' => 'application'
},
'officialwebsite' => {
'options' => {
'description' => 'Official LemonLDAP::NG Website',
'uri' => 'http://lemonldap-ng.org/',
'display' => 'on',
'logo' => 'network.png',
'name' => 'Official Website'
},
'type' => 'application'
},
'catname' => 'Documentation'
},
'1sample' => {
'test1' => {
'options' => {
'description' =>
'A simple application displaying authenticated user',
'uri' => "http://test1.$domain/",
'display' => 'auto',
'logo' => 'demo.png',
'name' => 'Application Test 1'
},
'type' => 'application'
},
'catname' => 'Sample applications',
'type' => 'category',
'test2' => {
'type' => 'application',
'options' => {
'description' =>
'The same simple application displaying authenticated user',
'uri' => "http://test2.$domain/",
'display' => 'auto',
'name' => 'Application Test 2',
'logo' => 'thumbnail.png'
}
}
}
},
'cfgNum' => 0,
'globalStorageOptions' => {
'Directory' => $sessionDir,
'generateModule' =>
'Lemonldap::NG::Common::Apache::Session::Generate::SHA256',
'LockDirectory' => "$sessionDir/lock"
},
'macros' => {
'_whatToTrace' =>
'$_auth eq \'SAML\' ? lc($_user.\'@\'.$_idpConfKey) : $_auth eq \'OpenIDConnect\' ? lc($_user.\'@\'.$_oidc_OP) : lc($_user)',
'UA' => '$ENV{HTTP_USER_AGENT}'
},
'notificationStorageOptions' => {
'dirName' => $notificationDir
},
'authentication' => 'Demo',
'demoExportedVars' => {
'mail' => 'mail',
'cn' => 'cn',
'uid' => 'uid'
},
'domain' => $domain,
'globalStorage' => 'Apache::Session::File',
'passwordDB' => 'Demo',
'persistentStorage' => 'Apache::Session::File',
'persistentStorageOptions' => {
'Directory' => $persistentSessionDir,
'LockDirectory' => "$persistentSessionDir/lock"
},
'reloadUrls' => {
"localhost" => "http://reload.$domain/reload"
},
'sessionDataToRemember' => {},
'notification' => 1,
'groups' => {},
'exportedHeaders' => {
"test1.$domain" => {
'Auth-User' => '$uid',
'Auth-Groups' => '$groups'
},
"test2.$domain" => {
'Auth-User' => '$uid',
'Auth-Groups' => '$groups'
}
},
'registerDB' => 'Demo',
'registerUrl' => "http://auth.$domain/register",
'portal' => "http://auth.$domain/",
'notificationStorage' => 'File',
'locationRules' => {
"auth.$domain" => {
'(?#checkUser)^/checkuser' => 'inGroup("timelords")',
'(?#errors)^/lmerror/' => 'accept',
'default' => 'accept'
},
"test1.$domain" => {
'default' => 'accept',
'^/logout' => 'logout_sso'
},
"test2.$domain" => {
'default' => 'accept',
'^/logout' => 'logout_sso'
},
"manager.$domain" => {
'default' => 'inGroup("timelords") or $uid eq "rtyler"',
'(?#Configuration)^/(.*?\.(fcgi|psgi)/)?(manager\.html|confs|prx/|$)'
=> 'inGroup("timelords")',
'(?#Sessions)/(.*?\.(fcgi|psgi)/)?sessions' =>
'inGroup("timelords") or $uid eq "rtyler"',
'(?#Notifications)/(.*?\.(fcgi|psgi)/)?notifications' =>
'inGroup("timelords") or $uid eq "rtyler"',
}
},
'whatToTrace' => '_whatToTrace',
'securedCookie' => 0,
'cookieName' => 'lemonldap',
'cfgAuthor' => 'The LemonLDAP::NG team',
'cfgDate' => '1627287638',
'cfgVersion' => $VERSION,
'exportedVars' => {},
'portalSkin' => 'bootstrap',
'portalSkinBackground' =>
'1280px-Cedar_Breaks_National_Monument_partially.jpg',
'mailUrl' => "http://auth.$domain/resetpwd",
'localSessionStorage' => 'Cache::FileCache',
'localSessionStorageOptions' => {
'namespace' => 'lemonldap-ng-sessions',
'default_expires_in' => 600,
'directory_umask' => '007',
'cache_root' => "$cacheDir",
'cache_depth' => 3,
},
};
}
1;