Dancer2-Plugin-WebService
view release on metacpan or search on metacpan
lib/Dancer2/Plugin/WebService.pm view on Meta::CPAN
# Use the first active authentication method
foreach my $method (@{$plg->config->{'Authentication methods'}}) {
next unless ((exists $method->{Active}) && ($method->{Active}=~/(?i)[y1t]/));
$plg->auth_method( $method->{Name} );
# If the Authorization method is an external script
if ($plg->auth_method ne 'INTERNAL') {
unless (exists $method->{Command}) {warn "The active Authentication method \"".$plg->auth_method."\" does not know what to do\n"; exit 1}
$method->{Command} =~s/^MODULE_INSTALL_DIR/$module_dir/;
unless (-f $method->{Command}) {warn "Sorry, could not found the external authorization utility $method->{Command}\n"; exit 1}
unless (-x $method->{Command}) {warn "Sorry, the external authorization utility $method->{Command} is not executable from user ". getpwuid($>) ."\n"; exit 1}
if ((exists $method->{'Use sudo'}) && ($method->{'Use sudo'}=~/(?i)[y1t]/)) {
my $sudo = undef;
foreach (qw[/usr/bin /bin /usr/sbin /sbin]) { if ((-f "$_/sudo") && -x ("$_/sudo")) { $sudo="$_/sudo"; last } }
unless (defined $sudo) {warn "Could not found sudo command\n"; exit 1}
$plg->auth_command( "$sudo \Q$method->{Command}\E" )
}
else {
$plg->auth_command( "\Q$method->{Command}\E" )
}
lib/Dancer2/Plugin/WebService.pm view on Meta::CPAN
}
else {
delete $plg->config->{Routes}->{$_}->{Protected};
$plg->config->{Routes}->{$_}->{Protected}=0
}
}
print STDOUT "\n";
print STDOUT "Application name : ", $plg->dsl->config->{appname} ,"\n";
print STDOUT 'Start time : ', scalar localtime $^T ,"\n";
print STDOUT 'Run as user : ', (getpwuid($>))[0] ,"\n";
print STDOUT "Command : $0\n";
print STDOUT "PID parent : ", getppid() ,"\n";
print STDOUT "PID Main : $$\n";
print STDOUT 'Authorization method : ', ( $plg->auth_method ? $plg->auth_method :'UNDEFINED' ) ,"\n";
print STDOUT "Authorization scripts : $module_dir/\n";
print STDOUT 'Environment : ', $plg->dsl->config->{environment} ,"\n";
print STDOUT 'Logging : ', $plg->dsl->config->{log} ,"\n";
print STDOUT 'Session enable : ', ( $plg->session_enable ? 'Yes' : 'No') ,"\n";
print STDOUT 'Session directory : ', $plg->dir_session ,"\n";
print STDOUT 'Session idle timeout : ', $plg->Session_timeout ," sec\n";
( run in 0.269 second using v1.01-cache-2.11-cpan-8d75d55dd25 )