Store hidden informations in forms
* SAML: store SAMLRequest in IssuerDBSAML, just before to redirect to IDP * Simple: add functions to manage hidden values for forms
This commit is contained in:
parent
62330e2d44
commit
fa039d2114
@ -108,6 +108,7 @@ elsif ( my $notif = $portal->notification ) {
|
||||
AUTH_ERROR_TYPE => $portal->error_type,
|
||||
NOTIFICATION => $notif,
|
||||
SKIN => $skin,
|
||||
HIDDEN_INPUTS => $portal->buildHiddenForm(),
|
||||
);
|
||||
}
|
||||
|
||||
@ -121,6 +122,7 @@ elsif ( $portal->{error} == PE_CONFIRM ) {
|
||||
AUTH_URL => $portal->get_url,
|
||||
MSG => $portal->info(),
|
||||
SKIN => $skin,
|
||||
HIDDEN_INPUTS => $portal->buildHiddenForm(),
|
||||
);
|
||||
}
|
||||
|
||||
@ -137,6 +139,7 @@ else {
|
||||
DISPLAY_RESETPASSWORD => $portal->{portalDisplayResetPassword},
|
||||
DISPLAY_FORM => 1,
|
||||
MAIL_URL => $portal->{mailUrl},
|
||||
HIDDEN_INPUTS => $portal->buildHiddenForm(),
|
||||
);
|
||||
|
||||
# Adapt template if password policy error
|
||||
|
@ -9,6 +9,7 @@
|
||||
<hr class="solid" />
|
||||
<p id="timer" class="text-error"><lang en="Automaticaly accept in 5 seconds" fr="Acceptation automatique dans 5 secondes"/></p>
|
||||
<form id="form" action="<TMPL_VAR NAME="URL">" method="get" class="login">
|
||||
<TMPL_VAR NAME="HIDDEN_INPUTS">
|
||||
<input type="hidden" name="url" value="<TMPL_VAR NAME="AUTH_URL">" />
|
||||
<input type="hidden" id="confirm" name="confirm" value="1" />
|
||||
<div id="content-all-info">
|
||||
|
@ -17,6 +17,7 @@
|
||||
<hr class="solid" />
|
||||
<p><span class="text-error"><TMPL_VAR NAME="AUTH_ERROR"></span></p>
|
||||
<form action="#" method="post" class="login">
|
||||
<TMPL_VAR NAME="HIDDEN_INPUTS">
|
||||
<input type="hidden" name="url" value="" />
|
||||
<input type="hidden" name="timezone" />
|
||||
<p>
|
||||
|
@ -9,6 +9,7 @@
|
||||
<hr class="solid" />
|
||||
<p class="text-error"><lang en="New message(s)" fr="Nouveaux messages"/></p>
|
||||
<form action="#" method="post" class="login">
|
||||
<TMPL_VAR NAME="HIDDEN_INPUTS">
|
||||
<div id="content-all-info">
|
||||
<TMPL_VAR NAME="NOTIFICATION">
|
||||
</div>
|
||||
|
@ -7,6 +7,7 @@
|
||||
<div class="loginlogo"></div>
|
||||
|
||||
<form id="form" action="<TMPL_VAR NAME="URL">" method="post" class="login">
|
||||
<TMPL_VAR NAME="HIDDEN_INPUTS">
|
||||
<p><input type="hidden" name="url" value="<TMPL_VAR NAME="AUTH_URL">" /></p>
|
||||
<input type="hidden" id="confirm" name="confirm" value="1" />
|
||||
<TMPL_VAR NAME="MSG">
|
||||
|
@ -9,6 +9,8 @@
|
||||
|
||||
<h3><lang en="Please enter your credentials" fr="Merci de vous authentifier"/></h3>
|
||||
|
||||
<TMPL_VAR NAME="HIDDEN_INPUTS">
|
||||
|
||||
<p><input type="hidden" name="url" value="<TMPL_VAR NAME="AUTH_URL">" /></p>
|
||||
<p><input type="hidden" name="timezone" /></p>
|
||||
|
||||
|
@ -7,6 +7,7 @@
|
||||
<div class="loginlogo"></div>
|
||||
|
||||
<form action="#" method="post" class="login">
|
||||
<TMPL_VAR NAME="HIDDEN_INPUTS">
|
||||
<h3><lang en="New message(s)" fr="Nouveaux messages"/> :</h3>
|
||||
<table>
|
||||
<tr><td>
|
||||
|
@ -95,11 +95,13 @@ sub issuerForUnAuthUser {
|
||||
my $isPassive = $saml_request->IsPassive();
|
||||
|
||||
if ($isPassive) {
|
||||
$self->lmLog( "Found isPassive flag in assertion conditions",
|
||||
'debug' );
|
||||
$self->lmLog( "Found isPassive flag in SAML request", 'debug' );
|
||||
return PE_ERROR;
|
||||
}
|
||||
|
||||
# Save dump into SAMLRequest hidden field
|
||||
$self->setHiddenFormValue( 'SAMLRequest', $saml_request->dump() );
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -320,6 +320,7 @@ sub setDefaultValues {
|
||||
$self->{portalForceAuthnInterval} = 5
|
||||
unless ( defined( $self->{portalForceAuthnInterval} ) );
|
||||
$self->{portalUserAttr} ||= "_user";
|
||||
$self->{portalHiddenFormValues} = ();
|
||||
$self->{securedCookie} ||= 0;
|
||||
$self->{cookieName} ||= "lemonldap";
|
||||
$self->{authentication} ||= 'LDAP';
|
||||
@ -365,6 +366,52 @@ sub setDefaultValues {
|
||||
$self->{samlIdPResolveCookie} ||= "lemonldapidp";
|
||||
}
|
||||
|
||||
##@method protected void setHiddenFormValue(string fieldname, string value)
|
||||
# Add element into $self->{portalHiddenFormValues}, those values could be
|
||||
# used to hide values into HTML form.
|
||||
#@param $fieldname The field name which will contain the correponding value
|
||||
#@param $value The associated value
|
||||
sub setHiddenFormValue {
|
||||
my $self = shift;
|
||||
my $key = shift;
|
||||
my $val = shift;
|
||||
$self->{portalHiddenFormValues}->{$key} = $val;
|
||||
}
|
||||
|
||||
##@method public array getHiddenFormFields()
|
||||
# Return all hidden field names.
|
||||
#@return array All hidden field names
|
||||
sub getHiddenFormFields {
|
||||
my $self = shift;
|
||||
return keys %{$self->{portalHiddenFormValues}};
|
||||
}
|
||||
|
||||
##@method public void getHiddenFormValue(string fieldname)
|
||||
# Get value into $self->{portalHiddenFormValues}.
|
||||
#@param $fieldname The existing field name which contains a value
|
||||
#@return string The associated value
|
||||
sub getHiddenFormValue {
|
||||
my $self = shift;
|
||||
my $key = shift;
|
||||
return '' unless ( defined($self->{portalHiddenFormValues}->{$key}) );
|
||||
return $self->{portalHiddenFormValues}->{$key}
|
||||
}
|
||||
|
||||
##@method public string buildHiddenForm()
|
||||
# Return an HTML representation of hidden values.
|
||||
#@return string
|
||||
sub buildHiddenForm {
|
||||
my $self = shift;
|
||||
my @keys = $self->getHiddenFormFields();
|
||||
my $val = '';
|
||||
foreach ( @keys )
|
||||
{
|
||||
$val .= '<input type="hidden" name="' . $_ . '" id="' . $_ . '" value="'
|
||||
. encode_base64($self->getHiddenFormValue($_)) . '" />';
|
||||
}
|
||||
return $val;
|
||||
}
|
||||
|
||||
=begin WSDL
|
||||
|
||||
_IN lang $string Language
|
||||
|
Loading…
Reference in New Issue
Block a user