Bugs :
* Crypto was usable only with 16xn characters * Menu was not able to filter embedded <application> Google page speed : * optimize images * set size
This commit is contained in:
parent
bfebb497a1
commit
444e093004
|
@ -1,3 +1,10 @@
|
|||
lemonldap-ng (0.9.5) unstable; urgency=low
|
||||
|
||||
* Bugs :
|
||||
- bad XML filter when embedding <application> in <application> tags
|
||||
|
||||
-- Xavier Guimard <x.guimard@free.fr> Wed, 12 Aug 2009 11:07:18 +0200
|
||||
|
||||
lemonldap-ng (0.9.4) unstable; urgency=low
|
||||
|
||||
* Bugs :
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
lemonldap-ng (0.9.4-0) unstable; urgency=low
|
||||
lemonldap-ng (0.9.5-0) unstable; urgency=low
|
||||
|
||||
* Local build
|
||||
|
||||
-- Xavier Guimard <x.guimard@free.fr> Sat, 17 Jan 2009 13:39:50 +0100
|
||||
-- Xavier Guimard <x.guimard@free.fr> Wed, 12 Aug 2009 11:08:42 +0200
|
||||
|
|
|
@ -30,9 +30,13 @@ sub new {
|
|||
# @param data datas to encrypt
|
||||
# @return encrypted datas in Base64 format
|
||||
sub encrypt {
|
||||
my $self = shift;
|
||||
my ( $self, $str ) = @_;
|
||||
my $tmp;
|
||||
eval { $tmp = encode_base64( $self->SUPER::encrypt(@_), '' ); };
|
||||
eval {
|
||||
$tmp = encode_base64(
|
||||
$self->SUPER::encrypt( $str . "\0" x ( 16 - length($str) % 16 ) ),
|
||||
'' );
|
||||
};
|
||||
if ($@) {
|
||||
$msg = "Crypt::Rijndael error : $@";
|
||||
return undef;
|
||||
|
@ -60,6 +64,10 @@ sub decrypt {
|
|||
}
|
||||
else {
|
||||
$msg = '';
|
||||
|
||||
# Obscure Perl re bug...
|
||||
$tmp .="\0";
|
||||
$tmp =~ s/\0*$//;
|
||||
return $tmp;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
--- #YAML:1.0
|
||||
name: Lemonldap-NG-Portal
|
||||
version: 0.88
|
||||
version: 0.89
|
||||
abstract: The authentication portal part of Lemonldap::NG Web-SSO
|
||||
license: ~
|
||||
author:
|
||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 8.2 KiB After Width: | Height: | Size: 6.9 KiB |
Binary file not shown.
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 18 KiB |
Binary file not shown.
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.3 KiB |
|
@ -1,6 +1,6 @@
|
|||
<div id="footer">
|
||||
<a href="http://validator.w3.org/check?uri=referer"><img src="skins/common/valid-xhtml10-blue.png" alt="Valid XHTML 1.0" /></a>
|
||||
<a href="http://jigsaw.w3.org/css-validator/"><img src="skins/common/vcss-blue.gif" alt="Valid CSS" /></a>
|
||||
<a href="http://validator.w3.org/check?uri=referer"><img src="skins/common/valid-xhtml10-blue.png" width="88" height="31" alt="Valid XHTML 1.0" /></a>
|
||||
<a href="http://jigsaw.w3.org/css-validator/"><img src="skins/common/vcss-blue.gif" width="88" height="31" alt="Valid CSS" /></a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
|
|
@ -8,13 +8,13 @@
|
|||
|
||||
<ul>
|
||||
<TMPL_IF NAME="DISPLAY_APPSLIST">
|
||||
<li><a href="#appslist"><span><img src="skins/common/application_cascade.png" alt="appslist" /> <lang en="Your applications" fr="Vos applications" /></span></a></li>
|
||||
<li><a href="#appslist"><span><img src="skins/common/application_cascade.png" width="16" height="16" alt="appslist" /> <lang en="Your applications" fr="Vos applications" /></span></a></li>
|
||||
</TMPL_IF>
|
||||
<TMPL_IF NAME="DISPLAY_PASSWORD">
|
||||
<li><a href="#password"><span><img src="skins/common/vcard_edit.png" alt="password" /> <lang en="Password" fr="Mot de passe" /></span></a></li>
|
||||
<li><a href="#password"><span><img src="skins/common/vcard_edit.png" width="16" height="16" alt="password" /> <lang en="Password" fr="Mot de passe" /></span></a></li>
|
||||
</TMPL_IF>
|
||||
<TMPL_IF NAME="DISPLAY_LOGOUT">
|
||||
<li><a href="#logout"><span><img src="skins/common/door_out.png" alt="logout" /> <lang en="Logout" fr="Déconnexion" /></span></a></li>
|
||||
<li><a href="#logout"><span><img src="skins/common/door_out.png" width="16" height="16" alt="logout" /> <lang en="Logout" fr="Déconnexion" /></span></a></li>
|
||||
</TMPL_IF>
|
||||
</ul>
|
||||
|
||||
|
|
|
@ -357,9 +357,23 @@ sub _displayDescription {
|
|||
sub _filterXML {
|
||||
my $self = shift;
|
||||
my ($root) = @_;
|
||||
my @cat = $root->getElementsByTagName('category');
|
||||
foreach my $cat (@cat) {
|
||||
$self->_filterApp($cat);
|
||||
}
|
||||
|
||||
my @apps = $root->getElementsByTagName('application');
|
||||
foreach (@apps) {
|
||||
# Hide empty categories
|
||||
$self->_hideEmptyCategory($root);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
sub _filterApp {
|
||||
my($self,$node)=@_;
|
||||
my @apps = $node->getChildrenByTagName('application');
|
||||
my $tag = 0;
|
||||
foreach(@apps) {
|
||||
my $stag = $self->_filterApp($_);
|
||||
my $appdisplay = $_->getChildrenByTagName('display')->string_value();
|
||||
my $appuri =
|
||||
$self->_userParam( $_->getChildrenByTagName('uri')->string_value() );
|
||||
|
@ -368,17 +382,26 @@ sub _filterXML {
|
|||
$_->unbindNode if ( $appdisplay eq "no" );
|
||||
|
||||
# Keep node if display is "yes"
|
||||
next if ( $appdisplay eq "yes" );
|
||||
if ( $appdisplay eq "yes" ) {
|
||||
$tag++;
|
||||
next;
|
||||
}
|
||||
|
||||
# Check grant function if display is "auto" (this is the default)
|
||||
$_->unbindNode unless ( $self->_grant($appuri) );
|
||||
|
||||
unless ( $self->_grant($appuri) ) {
|
||||
if($stag) {
|
||||
eval {$_->getChildrenByTagName('uri')->unbindNode() };
|
||||
$tag++;
|
||||
}
|
||||
else {
|
||||
$_->unbindNode;
|
||||
}
|
||||
}
|
||||
else {
|
||||
$tag++;
|
||||
}
|
||||
}
|
||||
|
||||
# Hide empty categories
|
||||
$self->_hideEmptyCategory($root);
|
||||
|
||||
return;
|
||||
return $tag;
|
||||
}
|
||||
|
||||
## @method private void _hideEmptyCategory(XML::LibXML::Element cat)
|
||||
|
@ -443,7 +466,7 @@ sub _ppolicyWarning {
|
|||
sub _grant {
|
||||
my $self = shift;
|
||||
my ($uri) = @_;
|
||||
$uri =~ m{(\w+)://([^/:]+)(:\d+)?(/.*)?$};
|
||||
$uri =~ m{(\w+)://([^/:]+)(:\d+)?(/.*)?$} or return 0;
|
||||
my ( $protocol, $vhost, $port );
|
||||
( $protocol, $vhost, $port, $path ) = ( $1, $2, $3, $4 );
|
||||
$path ||= '/';
|
||||
|
|
|
@ -140,12 +140,12 @@ sub new {
|
|||
|
||||
# Authentication and userDB module are required and have to be in @ISA
|
||||
foreach (qw(authentication userDB passwordDB)) {
|
||||
my $tmp =
|
||||
'Lemonldap::NG::Portal::'
|
||||
. ( $_ eq 'userDB'
|
||||
my $tmp = 'Lemonldap::NG::Portal::'
|
||||
. (
|
||||
$_ eq 'userDB'
|
||||
? 'UserDB'
|
||||
: ( $_ eq 'passwordDB' ? 'PasswordDB' : 'Auth' ) )
|
||||
. $self->{$_};
|
||||
: ( $_ eq 'passwordDB' ? 'PasswordDB' : 'Auth' )
|
||||
) . $self->{$_};
|
||||
$tmp =~ s/\s.*$//;
|
||||
eval "require $tmp";
|
||||
$self->abort( "Configuration error", $@ ) if ($@);
|
||||
|
@ -231,6 +231,7 @@ sub setDefaultValues {
|
|||
my $self = shift;
|
||||
$self->{whatToTrace} ||= 'uid';
|
||||
$self->{whatToTrace} =~ s/^\$//;
|
||||
$self->{httpOnly} = 1 unless ( defined( $self->{httpOnly} ) );
|
||||
}
|
||||
|
||||
=begin WSDL
|
||||
|
@ -825,21 +826,23 @@ sub buildCookie {
|
|||
my $self = shift;
|
||||
push @{ $self->{cookie} },
|
||||
$self->cookie(
|
||||
-name => $self->{cookieName},
|
||||
-value => $self->{id},
|
||||
-domain => $self->{domain},
|
||||
-path => "/",
|
||||
-secure => $self->{securedCookie},
|
||||
-name => $self->{cookieName},
|
||||
-value => $self->{id},
|
||||
-domain => $self->{domain},
|
||||
-path => "/",
|
||||
-secure => $self->{securedCookie},
|
||||
-httponly => $self->{httpOnly},
|
||||
@_,
|
||||
);
|
||||
if ( $self->{securedCookie} == 2 ) {
|
||||
push @{ $self->{cookie} },
|
||||
$self->cookie(
|
||||
-name => $self->{cookieName} . "http",
|
||||
-value => $self->{sessionInfo}->{_httpSession},
|
||||
-domain => $self->{domain},
|
||||
-path => "/",
|
||||
-secure => 0,
|
||||
-name => $self->{cookieName} . "http",
|
||||
-value => $self->{sessionInfo}->{_httpSession},
|
||||
-domain => $self->{domain},
|
||||
-path => "/",
|
||||
-secure => 0,
|
||||
-httponly => $self->{httpOnly},
|
||||
@_,
|
||||
);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue