diff options
-rwxr-xr-x | app.cgi | 10 | ||||
-rw-r--r-- | intercept_form_submit.conf | 9 | ||||
-rw-r--r-- | lookup_identity.conf | 10 |
3 files changed, 28 insertions, 1 deletions
@@ -62,6 +62,14 @@ sub login { my $error = ''; if (defined $ENV{REMOTE_USER}) { $login = $ENV{REMOTE_USER}; + if (defined $ENV{REMOTE_USER_EMAIL}) { + $login .= ": $ENV{REMOTE_USER_EMAIL}"; + } + my $n = join ' ', grep defined $_, map $ENV{$_}, + 'REMOTE_USER_FIRSTNAME', 'REMOTE_USER_LASTNAME'; + if ($n ne '') { + $login = "$n ($login)"; + } } elsif (defined $login) { my $re = qr/^[-a-zA-Z0-9_.]+$/; if ($login eq '' or not $login =~ $re) { @@ -96,7 +104,7 @@ EOS } if (defined $ENV{PATH_INFO}) { - if ($ENV{PATH_INFO} eq $LOGIN) { + if (substr($ENV{PATH_INFO}, 0, length($LOGIN)) eq $LOGIN) { login(); push @nav, qq!<a href="$ENV{SCRIPT_NAME}">Back to application</a>!; } elsif ($ENV{PATH_INFO} eq $LOGOUT) { diff --git a/intercept_form_submit.conf b/intercept_form_submit.conf new file mode 100644 index 0000000..ba80603 --- /dev/null +++ b/intercept_form_submit.conf @@ -0,0 +1,9 @@ + +LoadModule intercept_form_submit_module modules/mod_intercept_form_submit.so + +<Location /application/login2> +InterceptFormPAMService wikiapp +InterceptFormLogin login +InterceptFormPassword password +</Location> + diff --git a/lookup_identity.conf b/lookup_identity.conf new file mode 100644 index 0000000..8022d07 --- /dev/null +++ b/lookup_identity.conf @@ -0,0 +1,10 @@ + +LoadModule lookup_identity_module modules/mod_lookup_identity.so + +<LocationMatch ^/application/login> +LookupUserAttr mail REMOTE_USER_EMAIL " " +LookupUserAttr givenname REMOTE_USER_FIRSTNAME +LookupUserAttr sn REMOTE_USER_LASTNAME +LookupUserGroups REMOTE_USER_GROUPS ":" +</LocationMatch> + |