NAME
Lemonldap::NG::Portal::AuthLA - Provide Liberty Alliance Authentication for FederID project.
SYNOPSIS
my
$portal
= Lemonldap::NG::Portal::AuthLA->new({
configStorage
=> {
type
=>
'DBI'
,
dbiChain
=>
"dbi:mysql:..."
,
dbiUser
=>
"lemonldap"
,
dbiPassword
=>
"password"
,
dbiTable
=>
"lmConfig"
,
} ,
# Liberty Parameters
laSp
=> {
certificate
=>
'/path/to/public/key.pem'
,
metadata
=>
'/path/to/metadata.xml'
,
privkey
=>
'/path/to/private/key.pem'
,
secretkey
=>
'/path/to/private/key.pem'
,
} ,
laIdpsFile
=>
'/path/to/idps/file.xml'
,
laStorage
=>
'Apache::Session::File'
,
laStorageOptions
=> {
Directory
=>
'/path/to/session/directory'
,
LockDirectory
=>
'/path/to/lockedsession/directory'
,
} ,
laDebug
=> 1 ,
laLdapLoginAttribute
=>
'uid'
,
# Parameters that permit to access lemonldap::NG::Handler local cache
localStorage
=>
'Cache::FileCache'
,
localStorageOptions
=> {} ,
});
if
(
$portal
->process() ) {
# Print protected URLs
$portal
->header ;
foreach
(
$portal
->getProtectedSites) ;
}
else
{
$portal
->header ;
'...'
;
# Print simple template
'Simple Authentication<br/>'
;
'<input type="hidden" name="url" value="'
.
$portal
->param(
'url'
) .
'"/>'
;
'Login :'
;
if
(
$portal
->param(
'user'
)) {
'<input type="hidden" name="user" value="'
.
$portal
->param(
'user'
) .
'"/>'
;
}
else
{
'<input type="hidden" name="user"/>'
;
}
'Password : <input name="password" type="password" autocomplete="off">'
;
# Retrieve IDP list.
my
@idps
= () ;
foreach
(
$portal
->getIdpIDs) {
my
%row_data
;
$row_data
{IDPNAME} =
$_
;
push
(
@idps
, \
%row_data
) ;
}
@idps
=
sort
{
$a
cmp
$b
}
@idps
;
# Print SSO template
'SSO Authentication<br/>'
;
'<select name="idpChoice"><option value="null">Select IDP</option>'
;
foreach
(
@idps
) {
'<option value="'
.
$_
.
'">'
.
$_
.
'</option>'
;
}
'<input type="submit" value="ok" />'
;
'</form>'
;
}
DESCRIPTION
Lemonldap::NG::Portal::AuthLA is the base module for building Lemonldap::NG compatible portals using a authentication mechanism based on Liberty Alliance. You have to use by inheritance.
SEE ALSO
Lemonldap::NG::Portal::SharedConf, Lemonldap::NG::Portal, Lemonldap::NG::Handler, Lemonldap::NG::Manager, http://wiki.lemonldap.objectweb.org/xwiki/bin/view/NG/Presentation
AUTHOR
Clement Oudot, <coudot@linagora.com> Mikael Ates, <mikael.ates@univ-st-etienne.fr> Thomas Chemineau, <thomas.chemineau@gmail.com>
BUG REPORT
Use OW2 system to report bug or ask for features: http://forge.objectweb.org/tracker/?group_id=274
DOWNLOAD
Lemonldap::NG is available at http://forge.objectweb.org/project/showfiles.php?group_id=274
COPYRIGHT AND LICENSE
Copyright (C) 2007 by FederID Consortium, <mail@FederID>
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.4 or, at your option, any later version of Perl 5 you may have available.