Merge branch 'v2.0' into 2564
This commit is contained in:
commit
37363971f3
1
debian/liblemonldap-ng-common-perl.install
vendored
1
debian/liblemonldap-ng-common-perl.install
vendored
|
@ -2,6 +2,7 @@
|
||||||
/etc/lemonldap-ng/for_etc_hosts
|
/etc/lemonldap-ng/for_etc_hosts
|
||||||
/usr/share/man/man1/convertConfig.1p
|
/usr/share/man/man1/convertConfig.1p
|
||||||
/usr/share/man/man1/convertSessions.1p
|
/usr/share/man/man1/convertSessions.1p
|
||||||
|
/usr/share/man/man1/importMetadata.1p
|
||||||
/usr/share/man/man1/lemonldap-ng-cli.1p
|
/usr/share/man/man1/lemonldap-ng-cli.1p
|
||||||
/usr/share/man/man1/lemonldap-ng-sessions.1p
|
/usr/share/man/man1/lemonldap-ng-sessions.1p
|
||||||
/usr/share/man/man3/Lemonldap::NG::Common*
|
/usr/share/man/man3/Lemonldap::NG::Common*
|
||||||
|
|
|
@ -31,7 +31,7 @@ Installation and configuration
|
||||||
- `Version 2.0 </documentation/2.0/>`__ (stable)
|
- `Version 2.0 </documentation/2.0/>`__ (stable)
|
||||||
- `Version 1.9 </documentation/1.9/>`__ (oldstable)
|
- `Version 1.9 </documentation/1.9/>`__ (oldstable)
|
||||||
|
|
||||||
- Archived versions (unmaintained by `LLNG Team </team>`__ )
|
- Archived versions (unmaintained by LLNG Team )
|
||||||
|
|
||||||
- `Version 1.4 </documentation/1.4/>`__
|
- `Version 1.4 </documentation/1.4/>`__
|
||||||
- `Version 1.3 </documentation/1.3/>`__
|
- `Version 1.3 </documentation/1.3/>`__
|
||||||
|
@ -53,20 +53,22 @@ Debian
|
||||||
Following Debian Policy, LLNG packages are never upgraded in published distributions. However, security patches are backported by maintenance teams *(except some inor ones)*.
|
Following Debian Policy, LLNG packages are never upgraded in published distributions. However, security patches are backported by maintenance teams *(except some inor ones)*.
|
||||||
See `Security tracker <https://security-tracker.debian.org/tracker/source-package/lemonldap-ng>`__
|
See `Security tracker <https://security-tracker.debian.org/tracker/source-package/lemonldap-ng>`__
|
||||||
|
|
||||||
=========== ======================== ======================================== ===================================================== ============================================================ =============================== =============================================================
|
=========== ========================== ======================================== ===================================================== ============================================================ =============================== =============================================================
|
||||||
Debian dist LLNG version Secured Maintenance LTS Limit `Extended LTS <https://wiki.debian.org/LTS/Extended>`__ Limit
|
Debian dist LLNG version Secured Maintenance LTS Limit `Extended LTS <https://wiki.debian.org/LTS/Extended>`__ Limit
|
||||||
=========== ======================== ======================================== ===================================================== ============================================================ =============================== =============================================================
|
=========== ========================== ======================================== ===================================================== ============================================================ =============================== =============================================================
|
||||||
*6* *Squeeze* *0.9.4.1* |maybe| No known vulnerability *None* *February 2016* *April 2019*
|
*6* *Squeeze* *0.9.4.1* |maybe| No known vulnerability *None* *February 2016* *April 2019*
|
||||||
**7** Wheezy `1.1.2 </documentation/1.1/>`__ |maybe| No known vulnerability **None** [1]_ May 2018 Probably 2021
|
*7* *Wheezy* `1.1.2 </documentation/1.1/>`__ |maybe| No known vulnerability *None* *May 2018* *June 2020*
|
||||||
**8** Jessie `1.3.3 </documentation/1.3/>`__ |clean| CVE-2019-19791 tagged as minor **None** [1]_ June 2020 Probably 2023
|
**8** Jessie `1.3.3 </documentation/1.3/>`__ |clean| CVE-2019-19791 tagged as minor **None** [1]_ June 2020 June 2022
|
||||||
**9** Stretch `1.9.7 </documentation/1.9/>`__ |clean| CVE-2019-19791 tagged as minor `Debian LTS Team <https://www.debian.org/lts/>`__ June 2022
|
**9** Stretch `1.9.7 </documentation/1.9/>`__ |clean| CVE-2019-19791 tagged as minor `Debian LTS Team <https://www.debian.org/lts/>`__ June 2022 Probably 2024
|
||||||
\ *Stretch-backports* `2.0.2 </documentation/2.0/>`__ |bad| CVE-2019-12046, CVE-2019-13031, CVE-2019-15941 *None* *June 2019*
|
\ *Stretch-backports* `2.0.2 </documentation/2.0/>`__ |bad| CVE-2019-12046, CVE-2019-13031, CVE-2019-15941 *None* *June 2019*
|
||||||
\ Stretch-backports-sloppy `2.0.11 </documentation/2.0/>`__ |maybe| *Maybe none*, "best effort" [3]_ Until Debian 11 release [4]_
|
\ *Stretch-backports-sloppy* `2.0.11 </documentation/2.0/>`__ |maybe| *None* *August 2021*
|
||||||
**10** Buster `2.0.2 </documentation/2.0/>`__ |clean| CVE-2019-19791 tagged as minor `Debian Security Team <https://security-team.debian.org/>`__ Probably July 2024
|
**10** Buster `2.0.2 </documentation/2.0/>`__ |clean| CVE-2019-19791 tagged as minor `Debian Security Team <https://security-team.debian.org/>`__ June 2024 Probably 2026
|
||||||
\ Buster-backports `2.0.11 </documentation/2.0/>`__ |clean| `LLNG Team </team>`, "best effort" [3]_ Until Debian 11 release [4]_
|
\ *Buster-backports* `2.0.11 </documentation/2.0/>`__ |clean| *None* *August 2021*
|
||||||
\ Bullseye `2.0.11 </documentation/2.0/>`__ |clean| `Debian Security Team <https://security-team.debian.org/>`__ Probably July 2026
|
\ Buster-backports-sloppy `2.0.11 </documentation/2.0/>`__ |clean| LLNG Team, "best effort" [3]_ Until Debian 12 release [4]_
|
||||||
**Next** Testing Latest [5]_ |clean| `LLNG Team </team>`__
|
**11** Bullseye `2.0.11 </documentation/2.0/>`__ |clean| `Debian Security Team <https://security-team.debian.org/>`__ July 2026 Probably 2028
|
||||||
=========== ======================== ======================================== ===================================================== ============================================================ =============================== =============================================================
|
\ Bullseye-backports `2.0.11 </documentation/2.0/>`__ |clean| LLNG Team, "best effort" [3]_ Until Debian 12 release [4]_
|
||||||
|
**Next** Testing/Unstable Latest [5]_ |clean| LLNG Team
|
||||||
|
=========== ========================== ======================================== ===================================================== ============================================================ =============================== =============================================================
|
||||||
|
|
||||||
See `Debian Security
|
See `Debian Security
|
||||||
Tracker <https://security-tracker.debian.org/tracker/source-package/lemonldap-ng>`__
|
Tracker <https://security-tracker.debian.org/tracker/source-package/lemonldap-ng>`__
|
||||||
|
@ -142,7 +144,7 @@ Other
|
||||||
backports are not covered by Debian Security Policy
|
backports are not covered by Debian Security Policy
|
||||||
|
|
||||||
.. [4]
|
.. [4]
|
||||||
around September 2021
|
around July 2023
|
||||||
|
|
||||||
.. [5]
|
.. [5]
|
||||||
few days after release
|
few days after release
|
||||||
|
|
|
@ -43,19 +43,52 @@ Security
|
||||||
Portal templates changes
|
Portal templates changes
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
If you customized the HTML mail content, you must update them to use HTML::Template variables (this was changed to fix XSS injections).
|
Email templates
|
||||||
|
^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
For session variables, replace for example ``$cn`` by ``<TMPL_VAR NAME="session_cn" ESCAPE=HTML>``, and for other variables, replace for example ``$url`` by ``<TMPL_VAR NAME="url" ESCAPE=HTML>``.
|
If you customized the HTML email templates, you must update them to use HTML::Template variables (this was changed to fix XSS injections).
|
||||||
|
|
||||||
Some changes have been made to include new plugins (FindUser and CheckDevOps), you need to report them only if you have a custom theme and you want to use these plugins
|
In the following files: ``mail_2fcode.tpl`` ``mail_certificateReset.tpl`` ``mail_footer.tpl`` ``mail_password.tpl`` ``mail_register_done.tpl`` ``mail_certificateConfirm.tpl`` ``mail_confirm.tpl`` ``mail_header.tpl`` ``mail_register_confirm.tpl``
|
||||||
|
|
||||||
|
Replace the following variables:
|
||||||
|
|
||||||
|
|
||||||
|
.. list-table::
|
||||||
|
:header-rows: 1
|
||||||
|
|
||||||
|
* - Old syntax
|
||||||
|
- New syntax
|
||||||
|
* - ``$code``
|
||||||
|
- ``<TMPL_VAR NAME="code" ESCAPE=HTML>``
|
||||||
|
* - ``$url``
|
||||||
|
- ``<TMPL_VAR NAME="url" ESCAPE=HTML>``
|
||||||
|
* - ``$login``
|
||||||
|
- ``<TMPL_VAR NAME="login" ESCAPE=HTML>``
|
||||||
|
* - ``$password``
|
||||||
|
- ``<TMPL_VAR NAME="password" ESCAPE=HTML>``
|
||||||
|
* - ``$firstname``
|
||||||
|
- ``<TMPL_VAR NAME="firstname" ESCAPE=HTML>``
|
||||||
|
* - ``$lastname``
|
||||||
|
- ``<TMPL_VAR NAME="lastname" ESCAPE=HTML>``
|
||||||
|
|
||||||
|
Replace all other variables such as ``$cn`` by ``<TMPL_VAR NAME="session_cn" ESCAPE=HTML>``.
|
||||||
|
|
||||||
|
Login form
|
||||||
|
^^^^^^^^^^
|
||||||
To benefit from the new feature allowing to show password on login form, adapt ``standardform.tpl`` (see `changes <https://gitlab.ow2.org/lemonldap-ng/lemonldap-ng/-/commit/bdeb1e70d98ddc89316b0912d9d5ee6d11d0bee5#fbbcec1fdc36cc042eeaa83274a32ef2231fe977_23_23>`__)
|
To benefit from the new feature allowing to show password on login form, adapt ``standardform.tpl`` (see `changes <https://gitlab.ow2.org/lemonldap-ng/lemonldap-ng/-/commit/bdeb1e70d98ddc89316b0912d9d5ee6d11d0bee5#fbbcec1fdc36cc042eeaa83274a32ef2231fe977_23_23>`__)
|
||||||
|
|
||||||
To disable password store in browser when changing password (this was already possible for login form), adapt ``password.tpl`` (see `changes <https://gitlab.ow2.org/lemonldap-ng/lemonldap-ng/-/commit/466b6a3241fff5013d27b3dd22982e5e26ed7dfb#0ae060b3d1e289f08f510c268ed72de5dcafe425_36_35>`__)
|
To disable password store in browser when changing password (this was already possible for login form), adapt ``password.tpl`` (see `changes <https://gitlab.ow2.org/lemonldap-ng/lemonldap-ng/-/commit/466b6a3241fff5013d27b3dd22982e5e26ed7dfb#0ae060b3d1e289f08f510c268ed72de5dcafe425_36_35>`__)
|
||||||
|
|
||||||
To fix placeholder display in password field when password store is disabled in browser, adapt ``password.tpl`` (see `changes <https://gitlab.ow2.org/lemonldap-ng/lemonldap-ng/-/commit/547d80985290495d33ed72a388e9ddf482980354#fbbcec1fdc36cc042eeaa83274a32ef2231fe977_21_20>`__)
|
To fix placeholder display in password field when password store is disabled in browser, adapt ``password.tpl`` (see `changes <https://gitlab.ow2.org/lemonldap-ng/lemonldap-ng/-/commit/547d80985290495d33ed72a388e9ddf482980354#fbbcec1fdc36cc042eeaa83274a32ef2231fe977_21_20>`__)
|
||||||
|
|
||||||
See also "Simplification of TOTP options" below.
|
TOTP
|
||||||
|
^^^^
|
||||||
|
See also `Simplification of TOTP options`_ below.
|
||||||
|
|
||||||
|
FindUser, CheckDevOps templates
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
Some changes have been made to include new plugins (FindUser and CheckDevOps), you need to report them only if you have a custom theme and you want to use these plugins
|
||||||
|
|
||||||
Client Credential sessions missing expiration time
|
Client Credential sessions missing expiration time
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
|
@ -231,7 +231,7 @@ Use \s-1OW2\s0 system to report bug or ask for features:
|
||||||
.SH "DOWNLOAD"
|
.SH "DOWNLOAD"
|
||||||
.IX Header "DOWNLOAD"
|
.IX Header "DOWNLOAD"
|
||||||
Lemonldap::NG is available at
|
Lemonldap::NG is available at
|
||||||
<http://forge.objectweb.org/project/showfiles.php?group_id=274>
|
<https://lemonldap-ng.org/download>
|
||||||
.SH "COPYRIGHT AND LICENSE"
|
.SH "COPYRIGHT AND LICENSE"
|
||||||
.IX Header "COPYRIGHT AND LICENSE"
|
.IX Header "COPYRIGHT AND LICENSE"
|
||||||
.IP "Copyright (C) 2008\-2016 by Xavier Guimard, <x.guimard@free.fr>" 4
|
.IP "Copyright (C) 2008\-2016 by Xavier Guimard, <x.guimard@free.fr>" 4
|
||||||
|
|
|
@ -290,7 +290,7 @@ L<https://gitlab.ow2.org/lemonldap-ng/lemonldap-ng/issues>
|
||||||
=head1 DOWNLOAD
|
=head1 DOWNLOAD
|
||||||
|
|
||||||
Lemonldap::NG is available at
|
Lemonldap::NG is available at
|
||||||
L<http://forge.objectweb.org/project/showfiles.php?group_id=274>
|
L<https://lemonldap-ng.org/download>
|
||||||
|
|
||||||
=head1 COPYRIGHT AND LICENSE
|
=head1 COPYRIGHT AND LICENSE
|
||||||
|
|
||||||
|
|
|
@ -35,7 +35,7 @@
|
||||||
},
|
},
|
||||||
"runtime" : {
|
"runtime" : {
|
||||||
"recommends" : {
|
"recommends" : {
|
||||||
"Apache::Session::Browseable" : "0",
|
"Apache::Session::Browseable" : "v1.3.9",
|
||||||
"Convert::Base32" : "0",
|
"Convert::Base32" : "0",
|
||||||
"Cookie::Baker::XS" : "0",
|
"Cookie::Baker::XS" : "0",
|
||||||
"Crypt::URandom" : "0",
|
"Crypt::URandom" : "0",
|
||||||
|
|
|
@ -21,7 +21,7 @@ no_index:
|
||||||
- t
|
- t
|
||||||
- inc
|
- inc
|
||||||
recommends:
|
recommends:
|
||||||
Apache::Session::Browseable: '0'
|
Apache::Session::Browseable: v1.3.9
|
||||||
Convert::Base32: '0'
|
Convert::Base32: '0'
|
||||||
Cookie::Baker::XS: '0'
|
Cookie::Baker::XS: '0'
|
||||||
Crypt::URandom: '0'
|
Crypt::URandom: '0'
|
||||||
|
|
|
@ -43,7 +43,7 @@ WriteMakefile(
|
||||||
},
|
},
|
||||||
META_MERGE => {
|
META_MERGE => {
|
||||||
'recommends' => {
|
'recommends' => {
|
||||||
'Apache::Session::Browseable' => 0,
|
'Apache::Session::Browseable' => '1.3.9',
|
||||||
'Convert::Base32' => 0,
|
'Convert::Base32' => 0,
|
||||||
'Cookie::Baker::XS' => 0,
|
'Cookie::Baker::XS' => 0,
|
||||||
'Crypt::URandom' => 0,
|
'Crypt::URandom' => 0,
|
||||||
|
@ -106,5 +106,6 @@ WriteMakefile(
|
||||||
'scripts/convertSessions' => 'blib/man1/convertSessions.1p',
|
'scripts/convertSessions' => 'blib/man1/convertSessions.1p',
|
||||||
'scripts/lemonldap-ng-cli' => 'blib/man1/lemonldap-ng-cli.1p',
|
'scripts/lemonldap-ng-cli' => 'blib/man1/lemonldap-ng-cli.1p',
|
||||||
'scripts/lemonldap-ng-sessions' => 'blib/man1/lemonldap-ng-sessions.1p',
|
'scripts/lemonldap-ng-sessions' => 'blib/man1/lemonldap-ng-sessions.1p',
|
||||||
|
'scripts/importMetadata' => 'blib/man1/importMetadata.1p',
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|
|
@ -38,7 +38,7 @@ L<https://gitlab.ow2.org/lemonldap-ng/lemonldap-ng/issues>
|
||||||
=head1 DOWNLOAD
|
=head1 DOWNLOAD
|
||||||
|
|
||||||
Lemonldap::NG is available at
|
Lemonldap::NG is available at
|
||||||
L<http://forge.objectweb.org/project/showfiles.php?group_id=274>
|
L<https://lemonldap-ng.org/download>
|
||||||
|
|
||||||
=head1 COPYRIGHT AND LICENSE
|
=head1 COPYRIGHT AND LICENSE
|
||||||
|
|
||||||
|
|
|
@ -397,7 +397,7 @@ L<https://gitlab.ow2.org/lemonldap-ng/lemonldap-ng/issues>
|
||||||
=head1 DOWNLOAD
|
=head1 DOWNLOAD
|
||||||
|
|
||||||
Lemonldap::NG is available at
|
Lemonldap::NG is available at
|
||||||
L<http://forge.objectweb.org/project/showfiles.php?group_id=274>
|
L<https://lemonldap-ng.org/download>
|
||||||
|
|
||||||
=head1 COPYRIGHT AND LICENSE
|
=head1 COPYRIGHT AND LICENSE
|
||||||
|
|
||||||
|
|
|
@ -418,7 +418,7 @@ L<https://gitlab.ow2.org/lemonldap-ng/lemonldap-ng/issues>
|
||||||
=head1 DOWNLOAD
|
=head1 DOWNLOAD
|
||||||
|
|
||||||
Lemonldap::NG is available at
|
Lemonldap::NG is available at
|
||||||
L<http://forge.objectweb.org/project/showfiles.php?group_id=274>
|
L<https://lemonldap-ng.org/download>
|
||||||
|
|
||||||
=head1 COPYRIGHT AND LICENSE
|
=head1 COPYRIGHT AND LICENSE
|
||||||
|
|
||||||
|
|
|
@ -95,7 +95,7 @@ L<https://gitlab.ow2.org/lemonldap-ng/lemonldap-ng/issues>
|
||||||
=head1 DOWNLOAD
|
=head1 DOWNLOAD
|
||||||
|
|
||||||
Lemonldap::NG is available at
|
Lemonldap::NG is available at
|
||||||
L<http://forge.objectweb.org/project/showfiles.php?group_id=274>
|
L<https://lemonldap-ng.org/download>
|
||||||
|
|
||||||
=head1 COPYRIGHT AND LICENSE
|
=head1 COPYRIGHT AND LICENSE
|
||||||
|
|
||||||
|
|
|
@ -601,7 +601,7 @@ L<https://gitlab.ow2.org/lemonldap-ng/lemonldap-ng/issues>
|
||||||
=head1 DOWNLOAD
|
=head1 DOWNLOAD
|
||||||
|
|
||||||
Lemonldap::NG is available at
|
Lemonldap::NG is available at
|
||||||
L<http://forge.objectweb.org/project/showfiles.php?group_id=274>
|
L<https://lemonldap-ng.org/download>
|
||||||
|
|
||||||
=head1 COPYRIGHT AND LICENSE
|
=head1 COPYRIGHT AND LICENSE
|
||||||
|
|
||||||
|
|
|
@ -536,7 +536,7 @@ L<https://gitlab.ow2.org/lemonldap-ng/lemonldap-ng/issues>
|
||||||
=head1 DOWNLOAD
|
=head1 DOWNLOAD
|
||||||
|
|
||||||
Lemonldap::NG is available at
|
Lemonldap::NG is available at
|
||||||
L<http://forge.objectweb.org/project/showfiles.php?group_id=274>
|
L<https://lemonldap-ng.org/download>
|
||||||
|
|
||||||
=head1 COPYRIGHT AND LICENSE
|
=head1 COPYRIGHT AND LICENSE
|
||||||
|
|
||||||
|
|
|
@ -251,7 +251,7 @@ L<https://gitlab.ow2.org/lemonldap-ng/lemonldap-ng/issues>
|
||||||
=head1 DOWNLOAD
|
=head1 DOWNLOAD
|
||||||
|
|
||||||
Lemonldap::NG is available at
|
Lemonldap::NG is available at
|
||||||
L<http://forge.objectweb.org/project/showfiles.php?group_id=274>
|
L<https://lemonldap-ng.org/download>
|
||||||
|
|
||||||
=head1 COPYRIGHT AND LICENSE
|
=head1 COPYRIGHT AND LICENSE
|
||||||
|
|
||||||
|
|
|
@ -369,7 +369,7 @@ L<https://gitlab.ow2.org/lemonldap-ng/lemonldap-ng/issues>
|
||||||
=head1 DOWNLOAD
|
=head1 DOWNLOAD
|
||||||
|
|
||||||
Lemonldap::NG is available at
|
Lemonldap::NG is available at
|
||||||
L<http://forge.objectweb.org/project/showfiles.php?group_id=274>
|
L<https://lemonldap-ng.org/download>
|
||||||
|
|
||||||
=head1 COPYRIGHT AND LICENSE
|
=head1 COPYRIGHT AND LICENSE
|
||||||
|
|
||||||
|
|
|
@ -92,7 +92,7 @@ L<https://gitlab.ow2.org/lemonldap-ng/lemonldap-ng/issues>
|
||||||
=head1 DOWNLOAD
|
=head1 DOWNLOAD
|
||||||
|
|
||||||
Lemonldap::NG is available at
|
Lemonldap::NG is available at
|
||||||
L<http://forge.objectweb.org/project/showfiles.php?group_id=274>
|
L<https://lemonldap-ng.org/download>
|
||||||
|
|
||||||
=head1 COPYRIGHT AND LICENSE
|
=head1 COPYRIGHT AND LICENSE
|
||||||
|
|
||||||
|
|
|
@ -188,7 +188,7 @@ L<https://gitlab.ow2.org/lemonldap-ng/lemonldap-ng/issues>
|
||||||
=head1 DOWNLOAD
|
=head1 DOWNLOAD
|
||||||
|
|
||||||
Lemonldap::NG is available at
|
Lemonldap::NG is available at
|
||||||
L<http://forge.objectweb.org/project/showfiles.php?group_id=274>
|
L<https://lemonldap-ng.org/download>
|
||||||
|
|
||||||
=head1 COPYRIGHT AND LICENSE
|
=head1 COPYRIGHT AND LICENSE
|
||||||
|
|
||||||
|
|
|
@ -278,5 +278,5 @@ L<https://gitlab.ow2.org/lemonldap-ng/lemonldap-ng/issues>
|
||||||
=head1 DOWNLOAD
|
=head1 DOWNLOAD
|
||||||
|
|
||||||
Lemonldap::NG is available at
|
Lemonldap::NG is available at
|
||||||
L<http://forge.objectweb.org/project/showfiles.php?group_id=274>
|
L<https://lemonldap-ng.org/download>
|
||||||
|
|
||||||
|
|
130
lemonldap-ng-common/scripts/importMetadata
Normal file → Executable file
130
lemonldap-ng-common/scripts/importMetadata
Normal file → Executable file
|
@ -2,6 +2,7 @@
|
||||||
|
|
||||||
use strict;
|
use strict;
|
||||||
use Getopt::Long;
|
use Getopt::Long;
|
||||||
|
use Pod::Usage;
|
||||||
use Lemonldap::NG::Common::Conf;
|
use Lemonldap::NG::Common::Conf;
|
||||||
use LWP::UserAgent;
|
use LWP::UserAgent;
|
||||||
use MIME::Base64;
|
use MIME::Base64;
|
||||||
|
@ -30,31 +31,8 @@ my $result = GetOptions(
|
||||||
'dry-run|n'
|
'dry-run|n'
|
||||||
);
|
);
|
||||||
|
|
||||||
#==============================================================================
|
pod2usage(1) if $opts{help};
|
||||||
# Help
|
pod2usage( -message => "Missing metadata URL (-m)", -exitval => 2) if !$opts{metadata};
|
||||||
#==============================================================================
|
|
||||||
if ( $opts{help} or !$opts{metadata} ) {
|
|
||||||
print STDERR
|
|
||||||
"\nScript to import SAML metadata bundle file into LL::NG configuration\n\n";
|
|
||||||
print STDERR "Usage: $0 -m <metadata file URL>\n\n";
|
|
||||||
print STDERR "Options:\n";
|
|
||||||
print STDERR
|
|
||||||
"\t-i (--idpconfprefix): Prefix used to set IDP configuration key\n";
|
|
||||||
print STDERR "\t-h (--help): print this message\n";
|
|
||||||
print STDERR "\t-m (--metadata): URL of metadata document\n";
|
|
||||||
print STDERR
|
|
||||||
"\t-s (--spconfprefix): Prefix used to set SP configuration key\n";
|
|
||||||
print STDERR
|
|
||||||
"\t--ignore-sp: ignore SP maching this entityID (can be specified multiple times)\n";
|
|
||||||
print STDERR
|
|
||||||
"\t--ignore-idp: ignore IdP matching this entityID (can be specified multiple times)\n";
|
|
||||||
print STDERR "\t-a (--nagios) : output statistics in Nagios format\n";
|
|
||||||
print STDERR "\t-n (--dry-run): print statistics but do not apply changes\n";
|
|
||||||
print STDERR "\t-v (--verbose): increase verbosity of output\n";
|
|
||||||
print STDERR
|
|
||||||
"\t-r (--remove): remove provider from LemonLDAP::NG if it does not appear in metadata\n";
|
|
||||||
exit 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
#==============================================================================
|
#==============================================================================
|
||||||
# Default values
|
# Default values
|
||||||
|
@ -558,3 +536,105 @@ else {
|
||||||
|
|
||||||
exit $exitCode;
|
exit $exitCode;
|
||||||
|
|
||||||
|
__END__
|
||||||
|
Script to import SAML metadata bundle file into LL::NG configuration\n\n";
|
||||||
|
Usage: $0 -m <metadata file URL>\n\n";
|
||||||
|
Options:\n";
|
||||||
|
|
||||||
|
=encoding UTF-8
|
||||||
|
|
||||||
|
=head1 NAME
|
||||||
|
|
||||||
|
importMetadata - Script to import SAML federation metadata into LL::NG configuration
|
||||||
|
|
||||||
|
=head1 SYNOPSIS
|
||||||
|
|
||||||
|
importMetadata -m <metadata URL> [options]
|
||||||
|
|
||||||
|
Options:
|
||||||
|
|
||||||
|
-m, --metadata URL of metadata document
|
||||||
|
-i, --idpconfprefix Prefix used to set IDP configuration key
|
||||||
|
-s, --spconfprefix Prefix used to set SP configuration key
|
||||||
|
--ignore-sp ignore SP maching this entityID (can be specified multiple times)
|
||||||
|
--ignore-idp ignore IdP matching this entityID (can be specified multiple times)
|
||||||
|
-a, --nagios output statistics in Nagios format
|
||||||
|
-r, --remove remove provider from LemonLDAP::NG if it does not appear in metadata
|
||||||
|
-n, --dry-run print statistics but do not apply changes
|
||||||
|
-v, --verbose increase verbosity of output
|
||||||
|
-h, --help print full documentation
|
||||||
|
|
||||||
|
=head1 OPTIONS
|
||||||
|
|
||||||
|
=over
|
||||||
|
|
||||||
|
=item B<-m I<URL>>, B<--metadata=I<URL>>
|
||||||
|
|
||||||
|
Specifies the <URL> of the metadata document to import
|
||||||
|
|
||||||
|
=item B<-i I<PREFIX>>, B<--idpconfprefix=I<PREFIX>>
|
||||||
|
|
||||||
|
Prefix each IDP found the metadata document with the <PREFIX> when registring
|
||||||
|
them into LemonLDAP::NG
|
||||||
|
|
||||||
|
=item B<-s I<PREFIX>>, B<--spconfprefix=I<PREFIX>>
|
||||||
|
|
||||||
|
Prefix each SP found the metadata document with the <PREFIX> when registring
|
||||||
|
them into LemonLDAP::NG
|
||||||
|
|
||||||
|
=item B<--ignore-sp=I<ENTITYID>>
|
||||||
|
|
||||||
|
Ignore the specified Service Provider <ENTITYID>. It will not be added, updated
|
||||||
|
or deleted from LemonLDAP::NG configuration
|
||||||
|
|
||||||
|
=item B<--ignore-idp=I<ENTITYID>>
|
||||||
|
|
||||||
|
Ignore the specified Identity Provider <ENTITYID>. It will not be added,
|
||||||
|
updated or deleted from LemonLDAP::NG configuration
|
||||||
|
|
||||||
|
=item B<-a>, B<--nagios>
|
||||||
|
|
||||||
|
After each run, print statistics about added/modified/deleted items in Nagios
|
||||||
|
format
|
||||||
|
|
||||||
|
=item B<-r>, B<--remove>
|
||||||
|
|
||||||
|
If this option is used, after a successful import, existing SP/IDPs who match
|
||||||
|
the configuration prefix will be removed from LemonLDAP::NG if they were not
|
||||||
|
present in the imported metadata
|
||||||
|
|
||||||
|
=item B<-n>, B<--dry-run>
|
||||||
|
|
||||||
|
This option prevents the modified configuration from being saved. It can be used for testing.
|
||||||
|
|
||||||
|
=item B<-v>, B<--verbose>
|
||||||
|
|
||||||
|
Increase verbosity during script execution
|
||||||
|
|
||||||
|
=item B<-h>, B<--help>
|
||||||
|
|
||||||
|
Displays the script's documentation
|
||||||
|
|
||||||
|
=back
|
||||||
|
|
||||||
|
=head1 SEE ALSO
|
||||||
|
|
||||||
|
L<http://lemonldap-ng.org/>
|
||||||
|
|
||||||
|
=head1 AUTHORS
|
||||||
|
|
||||||
|
=over
|
||||||
|
|
||||||
|
=item Clement Oudot, E<lt>clement@oodo.netE<gt>
|
||||||
|
|
||||||
|
=back
|
||||||
|
|
||||||
|
=head1 BUG REPORT
|
||||||
|
|
||||||
|
Use OW2 system to report bug or ask for features:
|
||||||
|
L<https://gitlab.ow2.org/lemonldap-ng/lemonldap-ng/issues>
|
||||||
|
|
||||||
|
=head1 DOWNLOAD
|
||||||
|
|
||||||
|
Lemonldap::NG is available at
|
||||||
|
L<https://lemonldap-ng.org/download>
|
||||||
|
|
|
@ -42,7 +42,7 @@ L<https://gitlab.ow2.org/lemonldap-ng/lemonldap-ng/issues>
|
||||||
=head1 DOWNLOAD
|
=head1 DOWNLOAD
|
||||||
|
|
||||||
Lemonldap::NG is available at
|
Lemonldap::NG is available at
|
||||||
L<http://forge.objectweb.org/project/showfiles.php?group_id=274>
|
L<https://lemonldap-ng.org/download>
|
||||||
|
|
||||||
=head1 COPYRIGHT AND LICENSE
|
=head1 COPYRIGHT AND LICENSE
|
||||||
|
|
||||||
|
|
|
@ -160,7 +160,7 @@ L<https://gitlab.ow2.org/lemonldap-ng/lemonldap-ng/issues>
|
||||||
=head1 DOWNLOAD
|
=head1 DOWNLOAD
|
||||||
|
|
||||||
Lemonldap::NG is available at
|
Lemonldap::NG is available at
|
||||||
L<http://forge.objectweb.org/project/showfiles.php?group_id=274>
|
L<https://lemonldap-ng.org/download>
|
||||||
|
|
||||||
=head1 COPYRIGHT AND LICENSE
|
=head1 COPYRIGHT AND LICENSE
|
||||||
|
|
||||||
|
|
|
@ -130,7 +130,7 @@ L<https://gitlab.ow2.org/lemonldap-ng/lemonldap-ng/issues>
|
||||||
=head1 DOWNLOAD
|
=head1 DOWNLOAD
|
||||||
|
|
||||||
Lemonldap::NG is available at
|
Lemonldap::NG is available at
|
||||||
L<http://forge.objectweb.org/project/showfiles.php?group_id=274>
|
L<https://lemonldap-ng.org/download>
|
||||||
|
|
||||||
=head1 COPYRIGHT AND LICENSE
|
=head1 COPYRIGHT AND LICENSE
|
||||||
|
|
||||||
|
|
|
@ -137,7 +137,7 @@ L<https://gitlab.ow2.org/lemonldap-ng/lemonldap-ng/issues>
|
||||||
=head1 DOWNLOAD
|
=head1 DOWNLOAD
|
||||||
|
|
||||||
Lemonldap::NG is available at
|
Lemonldap::NG is available at
|
||||||
L<http://forge.objectweb.org/project/showfiles.php?group_id=274>
|
L<https://lemonldap-ng.org/download>
|
||||||
|
|
||||||
=head1 COPYRIGHT AND LICENSE
|
=head1 COPYRIGHT AND LICENSE
|
||||||
|
|
||||||
|
|
|
@ -188,7 +188,7 @@ L<https://gitlab.ow2.org/lemonldap-ng/lemonldap-ng/issues>
|
||||||
=head1 DOWNLOAD
|
=head1 DOWNLOAD
|
||||||
|
|
||||||
Lemonldap::NG is available at
|
Lemonldap::NG is available at
|
||||||
L<http://forge.objectweb.org/project/showfiles.php?group_id=274>
|
L<https://lemonldap-ng.org/download>
|
||||||
|
|
||||||
=head1 COPYRIGHT AND LICENSE
|
=head1 COPYRIGHT AND LICENSE
|
||||||
|
|
||||||
|
|
|
@ -107,7 +107,7 @@ L<https://gitlab.ow2.org/lemonldap-ng/lemonldap-ng/issues>
|
||||||
=head1 DOWNLOAD
|
=head1 DOWNLOAD
|
||||||
|
|
||||||
Lemonldap::NG is available at
|
Lemonldap::NG is available at
|
||||||
L<http://forge.objectweb.org/project/showfiles.php?group_id=274>
|
L<https://lemonldap-ng.org/download>
|
||||||
|
|
||||||
=head1 COPYRIGHT AND LICENSE
|
=head1 COPYRIGHT AND LICENSE
|
||||||
|
|
||||||
|
|
|
@ -369,7 +369,7 @@ see L<Lemonldap::NG::Manager::Conf::Parser> before.
|
||||||
=head1 DOWNLOAD
|
=head1 DOWNLOAD
|
||||||
|
|
||||||
Lemonldap::NG is available at
|
Lemonldap::NG is available at
|
||||||
L<http://forge.objectweb.org/project/showfiles.php?group_id=274>
|
L<https://lemonldap-ng.org/download>
|
||||||
|
|
||||||
=head1 COPYRIGHT AND LICENSE
|
=head1 COPYRIGHT AND LICENSE
|
||||||
|
|
||||||
|
|
|
@ -1006,7 +1006,7 @@ see L<Lemonldap::NG::Manager::Conf::Parser> before.
|
||||||
=head1 DOWNLOAD
|
=head1 DOWNLOAD
|
||||||
|
|
||||||
Lemonldap::NG is available at
|
Lemonldap::NG is available at
|
||||||
L<http://forge.objectweb.org/project/showfiles.php?group_id=274>
|
L<https://lemonldap-ng.org/download>
|
||||||
|
|
||||||
=head1 COPYRIGHT AND LICENSE
|
=head1 COPYRIGHT AND LICENSE
|
||||||
|
|
||||||
|
|
|
@ -654,7 +654,7 @@ L<https://gitlab.ow2.org/lemonldap-ng/lemonldap-ng/issues>
|
||||||
=head1 DOWNLOAD
|
=head1 DOWNLOAD
|
||||||
|
|
||||||
Lemonldap::NG is available at
|
Lemonldap::NG is available at
|
||||||
L<http://forge.objectweb.org/project/showfiles.php?group_id=274>
|
L<https://lemonldap-ng.org/download>
|
||||||
|
|
||||||
=head1 COPYRIGHT AND LICENSE
|
=head1 COPYRIGHT AND LICENSE
|
||||||
|
|
||||||
|
|
|
@ -1411,7 +1411,7 @@ ticket.
|
||||||
=head1 DOWNLOAD
|
=head1 DOWNLOAD
|
||||||
|
|
||||||
Lemonldap::NG is available at
|
Lemonldap::NG is available at
|
||||||
L<http://forge.objectweb.org/project/showfiles.php?group_id=274>
|
L<https://lemonldap-ng.org/download>
|
||||||
|
|
||||||
=head1 COPYRIGHT AND LICENSE
|
=head1 COPYRIGHT AND LICENSE
|
||||||
|
|
||||||
|
|
|
@ -174,17 +174,17 @@
|
||||||
"certificateResetByMailStep1Body":"Reset mail content",
|
"certificateResetByMailStep1Body":"Reset mail content",
|
||||||
"certificateResetByMailStep1Subject":"Reset mail subject",
|
"certificateResetByMailStep1Subject":"Reset mail subject",
|
||||||
"certificateResetByMailStep2Body":"Confirmation mail content",
|
"certificateResetByMailStep2Body":"Confirmation mail content",
|
||||||
"certificateResetByMailStep2Subject":"Confirmation mail subject",
|
"certificateResetByMailStep2Subject":"تأكيد عنوان بريد",
|
||||||
"certificateResetByMailURL":"Reset page URL",
|
"certificateResetByMailURL":"Reset page URL",
|
||||||
"certificateResetByMailValidityDelay":"Minimum duration before expiration",
|
"certificateResetByMailValidityDelay":"Minimum duration before expiration",
|
||||||
"cfgLog":"Summary",
|
"cfgLog":"Summary",
|
||||||
"cfgVersion":"عملية ضبط الإصدارات",
|
"cfgVersion":"عملية ضبط الإصدارات",
|
||||||
"checkDevOps":"Activation",
|
"checkDevOps":"تفعيل",
|
||||||
"checkDevOpsDownload":"Download file",
|
"checkDevOpsDownload":"Download file",
|
||||||
"checkState":"تفعيل",
|
"checkState":"تفعيل",
|
||||||
"checkStateSecret":"سر مشترك",
|
"checkStateSecret":"سر مشترك",
|
||||||
"checkUser":"تفعيل",
|
"checkUser":"تفعيل",
|
||||||
"checkUserDisplay":"Display",
|
"checkUserDisplay":"عرض",
|
||||||
"checkUserDisplayComputedSession":"Computed sessions",
|
"checkUserDisplayComputedSession":"Computed sessions",
|
||||||
"checkUserDisplayEmptyHeaders":"Empty headers",
|
"checkUserDisplayEmptyHeaders":"Empty headers",
|
||||||
"checkUserDisplayEmptyValues":"Empty values",
|
"checkUserDisplayEmptyValues":"Empty values",
|
||||||
|
@ -239,7 +239,7 @@
|
||||||
"corsMax_Age":"Access-Control-Max-Age",
|
"corsMax_Age":"Access-Control-Max-Age",
|
||||||
"create":"أحدث",
|
"create":"أحدث",
|
||||||
"crossOrigineResourceSharing":"Cross-Origin Resource Sharing",
|
"crossOrigineResourceSharing":"Cross-Origin Resource Sharing",
|
||||||
"crowdsec":"Activation",
|
"crowdsec":"تفعيل",
|
||||||
"crowdsecAction":"Action",
|
"crowdsecAction":"Action",
|
||||||
"crowdsecKey":"API key",
|
"crowdsecKey":"API key",
|
||||||
"crowdsecUrl":"Base URL of local API",
|
"crowdsecUrl":"Base URL of local API",
|
||||||
|
@ -290,10 +290,10 @@
|
||||||
"dbiPassword":"كلمة المرور ",
|
"dbiPassword":"كلمة المرور ",
|
||||||
"dbiPasswordMailCol":"اسم حقل البريد",
|
"dbiPasswordMailCol":"اسم حقل البريد",
|
||||||
"dbiSchema":"مخطط",
|
"dbiSchema":"مخطط",
|
||||||
"dbiUserChain":"Chain",
|
"dbiUserChain":"سلسلة",
|
||||||
"dbiUserPassword":"Password",
|
"dbiUserPassword":"كلمة المرور",
|
||||||
"dbiUserTable":"جدول المستخدم",
|
"dbiUserTable":"جدول المستخدم",
|
||||||
"dbiUserUser":"User",
|
"dbiUserUser":"المستخدم",
|
||||||
"decryptValue":"Decrypt value",
|
"decryptValue":"Decrypt value",
|
||||||
"decryptValueFunctions":"Decrypt functions",
|
"decryptValueFunctions":"Decrypt functions",
|
||||||
"decryptValueRule":"استخدام القاعدة",
|
"decryptValueRule":"استخدام القاعدة",
|
||||||
|
@ -351,7 +351,7 @@
|
||||||
"facebookUserField":"Field containing user identifier",
|
"facebookUserField":"Field containing user identifier",
|
||||||
"failedLoginNumber":"عدد عمليات تسجيل الدخول الفاشلة المسجلة",
|
"failedLoginNumber":"عدد عمليات تسجيل الدخول الفاشلة المسجلة",
|
||||||
"fileToUpload":"الملف الذي ستحمله",
|
"fileToUpload":"الملف الذي ستحمله",
|
||||||
"findUser":"Activation",
|
"findUser":"تفعيل",
|
||||||
"findUserControl":"Parameters control",
|
"findUserControl":"Parameters control",
|
||||||
"findUserExcludingAttributes":"Excluding attributes",
|
"findUserExcludingAttributes":"Excluding attributes",
|
||||||
"findUserSearchingAttributes":"Searching attributes",
|
"findUserSearchingAttributes":"Searching attributes",
|
||||||
|
@ -366,7 +366,7 @@
|
||||||
"friendlyName":"اسم مألوف",
|
"friendlyName":"اسم مألوف",
|
||||||
"generalParameters":"المعاييرالعامة",
|
"generalParameters":"المعاييرالعامة",
|
||||||
"githubAuthnLevel":"مستوى إثبات الهوية",
|
"githubAuthnLevel":"مستوى إثبات الهوية",
|
||||||
"githubClientID":"Client ID",
|
"githubClientID":"معرف العميل",
|
||||||
"githubClientSecret":"سرالعميل",
|
"githubClientSecret":"سرالعميل",
|
||||||
"githubParams":"GitHub Parameters",
|
"githubParams":"GitHub Parameters",
|
||||||
"githubScope":"نطاق",
|
"githubScope":"نطاق",
|
||||||
|
|
|
@ -179,7 +179,7 @@
|
||||||
"certificateResetByMailValidityDelay":"Duración mínima antes de la caducidad",
|
"certificateResetByMailValidityDelay":"Duración mínima antes de la caducidad",
|
||||||
"cfgLog":"Sumario",
|
"cfgLog":"Sumario",
|
||||||
"cfgVersion":"Configuration version",
|
"cfgVersion":"Configuration version",
|
||||||
"checkDevOps":"Activation",
|
"checkDevOps":"Activación",
|
||||||
"checkDevOpsDownload":"Download file",
|
"checkDevOpsDownload":"Download file",
|
||||||
"checkState":"Activación",
|
"checkState":"Activación",
|
||||||
"checkStateSecret":"Secreto compartido",
|
"checkStateSecret":"Secreto compartido",
|
||||||
|
@ -290,8 +290,8 @@
|
||||||
"dbiPassword":"Password",
|
"dbiPassword":"Password",
|
||||||
"dbiPasswordMailCol":"Nombre de campo de Correo",
|
"dbiPasswordMailCol":"Nombre de campo de Correo",
|
||||||
"dbiSchema":"Esquema",
|
"dbiSchema":"Esquema",
|
||||||
"dbiUserChain":"Chain",
|
"dbiUserChain":"Cadena",
|
||||||
"dbiUserPassword":"Password",
|
"dbiUserPassword":"Contraseña",
|
||||||
"dbiUserTable":"Tabla de usuario",
|
"dbiUserTable":"Tabla de usuario",
|
||||||
"dbiUserUser":"User",
|
"dbiUserUser":"User",
|
||||||
"decryptValue":"Decrypt value",
|
"decryptValue":"Decrypt value",
|
||||||
|
@ -878,7 +878,7 @@
|
||||||
"restPasswordServer":"Password reset server",
|
"restPasswordServer":"Password reset server",
|
||||||
"restPwdConfirmUrl":"URL de confirmación de contraseña",
|
"restPwdConfirmUrl":"URL de confirmación de contraseña",
|
||||||
"restPwdModifyUrl":"URL de cambio de contraseña",
|
"restPwdModifyUrl":"URL de cambio de contraseña",
|
||||||
"restServices":"REST services",
|
"restServices":"Servicio REST",
|
||||||
"restSessionServer":"Session server",
|
"restSessionServer":"Session server",
|
||||||
"restUserDBUrl":"URL de datos de usuario",
|
"restUserDBUrl":"URL de datos de usuario",
|
||||||
"restore":"Restaurar",
|
"restore":"Restaurar",
|
||||||
|
@ -1079,7 +1079,7 @@
|
||||||
"slaveParams":"Parámetros esclavos",
|
"slaveParams":"Parámetros esclavos",
|
||||||
"slaveUserHeader":"Cabecera para login de usuario",
|
"slaveUserHeader":"Cabecera para login de usuario",
|
||||||
"soapConfigServer":"Configuration server",
|
"soapConfigServer":"Configuration server",
|
||||||
"soapServices":"SOAP services",
|
"soapServices":"Servicio SOAP",
|
||||||
"soapSessionServer":"Session server",
|
"soapSessionServer":"Session server",
|
||||||
"specialRule":"Regla especial",
|
"specialRule":"Regla especial",
|
||||||
"sslByAjax":"Usar solicitud Ajax",
|
"sslByAjax":"Usar solicitud Ajax",
|
||||||
|
|
|
@ -878,7 +878,7 @@
|
||||||
"restPasswordServer":"Password reset server",
|
"restPasswordServer":"Password reset server",
|
||||||
"restPwdConfirmUrl":"URL di conferma password",
|
"restPwdConfirmUrl":"URL di conferma password",
|
||||||
"restPwdModifyUrl":"URL di modifica password",
|
"restPwdModifyUrl":"URL di modifica password",
|
||||||
"restServices":"REST services",
|
"restServices":"Servizio REST",
|
||||||
"restSessionServer":"Session server",
|
"restSessionServer":"Session server",
|
||||||
"restUserDBUrl":"URL dei dati utente",
|
"restUserDBUrl":"URL dei dati utente",
|
||||||
"restore":"Ristabilire",
|
"restore":"Ristabilire",
|
||||||
|
|
|
@ -290,8 +290,8 @@
|
||||||
"dbiPassword":"Hasło",
|
"dbiPassword":"Hasło",
|
||||||
"dbiPasswordMailCol":"Nazwa pola poczty",
|
"dbiPasswordMailCol":"Nazwa pola poczty",
|
||||||
"dbiSchema":"Schemat",
|
"dbiSchema":"Schemat",
|
||||||
"dbiUserChain":"Chain",
|
"dbiUserChain":"Łańcuch",
|
||||||
"dbiUserPassword":"Password",
|
"dbiUserPassword":"Hasło",
|
||||||
"dbiUserTable":"Tabela użytkowników",
|
"dbiUserTable":"Tabela użytkowników",
|
||||||
"dbiUserUser":"User",
|
"dbiUserUser":"User",
|
||||||
"decryptValue":"Odszyfruj wartość",
|
"decryptValue":"Odszyfruj wartość",
|
||||||
|
@ -878,7 +878,7 @@
|
||||||
"restPasswordServer":"Password reset server",
|
"restPasswordServer":"Password reset server",
|
||||||
"restPwdConfirmUrl":"Adres URL potwierdzenia hasła",
|
"restPwdConfirmUrl":"Adres URL potwierdzenia hasła",
|
||||||
"restPwdModifyUrl":"URL zmiany hasła",
|
"restPwdModifyUrl":"URL zmiany hasła",
|
||||||
"restServices":"REST services",
|
"restServices":"Usługa REST",
|
||||||
"restSessionServer":"Session server",
|
"restSessionServer":"Session server",
|
||||||
"restUserDBUrl":"Adres URL danych użytkownika",
|
"restUserDBUrl":"Adres URL danych użytkownika",
|
||||||
"restore":"Przywróć",
|
"restore":"Przywróć",
|
||||||
|
|
|
@ -878,7 +878,7 @@
|
||||||
"restPasswordServer":"Password reset server",
|
"restPasswordServer":"Password reset server",
|
||||||
"restPwdConfirmUrl":"URL xác nhận mật khẩu",
|
"restPwdConfirmUrl":"URL xác nhận mật khẩu",
|
||||||
"restPwdModifyUrl":"URL thay đổi mật khẩu",
|
"restPwdModifyUrl":"URL thay đổi mật khẩu",
|
||||||
"restServices":"REST services",
|
"restServices":"Dịch vụ REST",
|
||||||
"restSessionServer":"Session server",
|
"restSessionServer":"Session server",
|
||||||
"restUserDBUrl":"URL dữ liệu người dùng",
|
"restUserDBUrl":"URL dữ liệu người dùng",
|
||||||
"restore":"Khôi phục",
|
"restore":"Khôi phục",
|
||||||
|
|
|
@ -290,10 +290,10 @@
|
||||||
"dbiPassword":"密碼",
|
"dbiPassword":"密碼",
|
||||||
"dbiPasswordMailCol":"郵件欄位名稱",
|
"dbiPasswordMailCol":"郵件欄位名稱",
|
||||||
"dbiSchema":"結構",
|
"dbiSchema":"結構",
|
||||||
"dbiUserChain":"Chain",
|
"dbiUserChain":"鏈",
|
||||||
"dbiUserPassword":"Password",
|
"dbiUserPassword":"密碼",
|
||||||
"dbiUserTable":"使用者表格",
|
"dbiUserTable":"使用者表格",
|
||||||
"dbiUserUser":"User",
|
"dbiUserUser":"使用者",
|
||||||
"decryptValue":"解密值",
|
"decryptValue":"解密值",
|
||||||
"decryptValueFunctions":"解密函式",
|
"decryptValueFunctions":"解密函式",
|
||||||
"decryptValueRule":"使用規則",
|
"decryptValueRule":"使用規則",
|
||||||
|
|
|
@ -158,7 +158,7 @@ L<https://gitlab.ow2.org/lemonldap-ng/lemonldap-ng/issues>
|
||||||
=head1 DOWNLOAD
|
=head1 DOWNLOAD
|
||||||
|
|
||||||
Lemonldap::NG is available at
|
Lemonldap::NG is available at
|
||||||
L<http://forge.objectweb.org/project/showfiles.php?group_id=274>
|
L<https://lemonldap-ng.org/download>
|
||||||
|
|
||||||
=head1 COPYRIGHT AND LICENSE
|
=head1 COPYRIGHT AND LICENSE
|
||||||
|
|
||||||
|
|
|
@ -201,7 +201,7 @@ L<https://gitlab.ow2.org/lemonldap-ng/lemonldap-ng/issues>
|
||||||
=head1 DOWNLOAD
|
=head1 DOWNLOAD
|
||||||
|
|
||||||
Lemonldap::NG is available at
|
Lemonldap::NG is available at
|
||||||
L<http://forge.objectweb.org/project/showfiles.php?group_id=274>
|
L<https://lemonldap-ng.org/download>
|
||||||
|
|
||||||
=head1 COPYRIGHT AND LICENSE
|
=head1 COPYRIGHT AND LICENSE
|
||||||
|
|
||||||
|
|
|
@ -233,7 +233,7 @@ L<https://gitlab.ow2.org/lemonldap-ng/lemonldap-ng/issues>
|
||||||
=head1 DOWNLOAD
|
=head1 DOWNLOAD
|
||||||
|
|
||||||
Lemonldap::NG is available at
|
Lemonldap::NG is available at
|
||||||
L<http://forge.objectweb.org/project/showfiles.php?group_id=274>
|
L<https://lemonldap-ng.org/download>
|
||||||
|
|
||||||
=head1 COPYRIGHT AND LICENSE
|
=head1 COPYRIGHT AND LICENSE
|
||||||
|
|
||||||
|
|
|
@ -649,7 +649,7 @@ L<https://gitlab.ow2.org/lemonldap-ng/lemonldap-ng/issues>
|
||||||
=head1 DOWNLOAD
|
=head1 DOWNLOAD
|
||||||
|
|
||||||
Lemonldap::NG is available at
|
Lemonldap::NG is available at
|
||||||
L<http://forge.objectweb.org/project/showfiles.php?group_id=274>
|
L<https://lemonldap-ng.org/download>
|
||||||
|
|
||||||
=head1 COPYRIGHT AND LICENSE
|
=head1 COPYRIGHT AND LICENSE
|
||||||
|
|
||||||
|
|
|
@ -210,7 +210,7 @@ L<https://gitlab.ow2.org/lemonldap-ng/lemonldap-ng/issues>
|
||||||
=head1 DOWNLOAD
|
=head1 DOWNLOAD
|
||||||
|
|
||||||
Lemonldap::NG is available at
|
Lemonldap::NG is available at
|
||||||
L<http://forge.objectweb.org/project/showfiles.php?group_id=274>
|
L<https://lemonldap-ng.org/download>
|
||||||
|
|
||||||
=head1 COPYRIGHT AND LICENSE
|
=head1 COPYRIGHT AND LICENSE
|
||||||
|
|
||||||
|
|
|
@ -2283,7 +2283,7 @@ L<https://gitlab.ow2.org/lemonldap-ng/lemonldap-ng/issues>
|
||||||
=head1 DOWNLOAD
|
=head1 DOWNLOAD
|
||||||
|
|
||||||
Lemonldap::NG is available at
|
Lemonldap::NG is available at
|
||||||
L<http://forge.objectweb.org/project/showfiles.php?group_id=274>
|
L<https://lemonldap-ng.org/download>
|
||||||
|
|
||||||
=head1 COPYRIGHT AND LICENSE
|
=head1 COPYRIGHT AND LICENSE
|
||||||
|
|
||||||
|
|
|
@ -3650,7 +3650,7 @@ L<https://gitlab.ow2.org/lemonldap-ng/lemonldap-ng/issues>
|
||||||
=head1 DOWNLOAD
|
=head1 DOWNLOAD
|
||||||
|
|
||||||
Lemonldap::NG is available at
|
Lemonldap::NG is available at
|
||||||
L<http://forge.objectweb.org/project/showfiles.php?group_id=274>
|
L<https://lemonldap-ng.org/download>
|
||||||
|
|
||||||
=head1 COPYRIGHT AND LICENSE
|
=head1 COPYRIGHT AND LICENSE
|
||||||
|
|
||||||
|
|
|
@ -396,7 +396,7 @@ L<https://gitlab.ow2.org/lemonldap-ng/lemonldap-ng/issues>
|
||||||
=head1 DOWNLOAD
|
=head1 DOWNLOAD
|
||||||
|
|
||||||
Lemonldap::NG is available at
|
Lemonldap::NG is available at
|
||||||
L<http://forge.objectweb.org/project/showfiles.php?group_id=274>
|
L<https://lemonldap-ng.org/download>
|
||||||
|
|
||||||
=head1 COPYRIGHT AND LICENSE
|
=head1 COPYRIGHT AND LICENSE
|
||||||
|
|
||||||
|
|
|
@ -404,7 +404,7 @@ L<https://gitlab.ow2.org/lemonldap-ng/lemonldap-ng/issues>
|
||||||
=head1 DOWNLOAD
|
=head1 DOWNLOAD
|
||||||
|
|
||||||
Lemonldap::NG is available at
|
Lemonldap::NG is available at
|
||||||
L<http://forge.objectweb.org/project/showfiles.php?group_id=274>
|
L<https://lemonldap-ng.org/download>
|
||||||
|
|
||||||
=head1 COPYRIGHT AND LICENSE
|
=head1 COPYRIGHT AND LICENSE
|
||||||
|
|
||||||
|
|
|
@ -313,7 +313,7 @@ L<https://gitlab.ow2.org/lemonldap-ng/lemonldap-ng/issues>
|
||||||
=head1 DOWNLOAD
|
=head1 DOWNLOAD
|
||||||
|
|
||||||
Lemonldap::NG is available at
|
Lemonldap::NG is available at
|
||||||
L<http://forge.objectweb.org/project/showfiles.php?group_id=274>
|
L<https://lemonldap-ng.org/download>
|
||||||
|
|
||||||
=head1 COPYRIGHT AND LICENSE
|
=head1 COPYRIGHT AND LICENSE
|
||||||
|
|
||||||
|
|
|
@ -322,7 +322,7 @@ L<https://gitlab.ow2.org/lemonldap-ng/lemonldap-ng/issues>
|
||||||
=head1 DOWNLOAD
|
=head1 DOWNLOAD
|
||||||
|
|
||||||
Lemonldap::NG is available at
|
Lemonldap::NG is available at
|
||||||
L<http://forge.objectweb.org/project/showfiles.php?group_id=274>
|
L<https://lemonldap-ng.org/download>
|
||||||
|
|
||||||
=head1 COPYRIGHT AND LICENSE
|
=head1 COPYRIGHT AND LICENSE
|
||||||
|
|
||||||
|
|
|
@ -114,7 +114,7 @@ L<https://gitlab.ow2.org/lemonldap-ng/lemonldap-ng/issues>
|
||||||
=head1 DOWNLOAD
|
=head1 DOWNLOAD
|
||||||
|
|
||||||
Lemonldap::NG is available at
|
Lemonldap::NG is available at
|
||||||
L<http://forge.objectweb.org/project/showfiles.php?group_id=274>
|
L<https://lemonldap-ng.org/download>
|
||||||
|
|
||||||
=head1 COPYRIGHT AND LICENSE
|
=head1 COPYRIGHT AND LICENSE
|
||||||
|
|
||||||
|
|
|
@ -170,7 +170,7 @@ L<https://gitlab.ow2.org/lemonldap-ng/lemonldap-ng/issues>
|
||||||
=head1 DOWNLOAD
|
=head1 DOWNLOAD
|
||||||
|
|
||||||
Lemonldap::NG is available at
|
Lemonldap::NG is available at
|
||||||
L<http://forge.objectweb.org/project/showfiles.php?group_id=274>
|
L<https://lemonldap-ng.org/download>
|
||||||
|
|
||||||
=head1 COPYRIGHT AND LICENSE
|
=head1 COPYRIGHT AND LICENSE
|
||||||
|
|
||||||
|
|
|
@ -144,8 +144,7 @@ for my $options (@backends) {
|
||||||
next if ( $options->{backend} eq "Apache::Session::Memcached" );
|
next if ( $options->{backend} eq "Apache::Session::Memcached" );
|
||||||
my @t;
|
my @t;
|
||||||
if ( $options->{backend}->can('deleteIfLowerThan') ) {
|
if ( $options->{backend}->can('deleteIfLowerThan') ) {
|
||||||
next
|
my ( $success, $rows ) = $options->{backend}->deleteIfLowerThan(
|
||||||
if $options->{backend}->deleteIfLowerThan(
|
|
||||||
$options,
|
$options,
|
||||||
{
|
{
|
||||||
not => { '_session_kind' => 'Persistent' },
|
not => { '_session_kind' => 'Persistent' },
|
||||||
|
@ -158,7 +157,14 @@ for my $options (@backends) {
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
if ($success) {
|
||||||
|
if ($rows) {
|
||||||
|
$nb_purged += $rows;
|
||||||
|
}
|
||||||
|
next;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
# Get all expired sessions
|
# Get all expired sessions
|
||||||
|
|
|
@ -188,7 +188,7 @@
|
||||||
"lastFailedLogins":"عمليات تسجيل الدخول الأخيرة الغير الناجحة",
|
"lastFailedLogins":"عمليات تسجيل الدخول الأخيرة الغير الناجحة",
|
||||||
"lastFailedLoginsCaptionLabel":"Last failed logins",
|
"lastFailedLoginsCaptionLabel":"Last failed logins",
|
||||||
"lastLogins":"آخر تسجيلات دخول",
|
"lastLogins":"آخر تسجيلات دخول",
|
||||||
"lastLoginsCaptionLabel":"Last logins",
|
"lastLoginsCaptionLabel":"آخر تسجيلات دخول",
|
||||||
"lastName":"اسم العائلة",
|
"lastName":"اسم العائلة",
|
||||||
"linkValidUntil":"تحتوي هذه الرسالة على رابط لإعادة تعيين كلمة المرور، وهذا الرابط صالح حتى",
|
"linkValidUntil":"تحتوي هذه الرسالة على رابط لإعادة تعيين كلمة المرور، وهذا الرابط صالح حتى",
|
||||||
"linkValidUntilCertif":"This message contains a link to reset your certificate, this link is valid until ",
|
"linkValidUntilCertif":"This message contains a link to reset your certificate, this link is valid until ",
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
<!-- //endif -->
|
<!-- //endif -->
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<img class="renewcaptchaclick" src="<TMPL_VAR NAME="STATIC_PREFIX">common/icons/arrow_refresh.png" alt="Renew Captcha" title="Renew Captcha" class="img-thumbnail mb-3" />
|
<img class="renewcaptchaclick" src="<TMPL_VAR NAME="STATIC_PREFIX">common/icons/arrow_refresh.png" alt="Renew Captcha" title="Renew Captcha" class="img-thumbnail mb-3" autocomplete="one-time-code" />
|
||||||
<img id="captcha" src="<TMPL_VAR NAME=CAPTCHA_SRC>" class="img-thumbnail" />
|
<img id="captcha" src="<TMPL_VAR NAME=CAPTCHA_SRC>" class="img-thumbnail" />
|
||||||
</div>
|
</div>
|
||||||
<div class="input-group mb-3">
|
<div class="input-group mb-3">
|
||||||
|
|
|
@ -25,7 +25,7 @@
|
||||||
<div class="input-group-prepend">
|
<div class="input-group-prepend">
|
||||||
<span class="input-group-text"><label for="mailfield" class="mb-0"><i class="fa fa-envelope"></i></label></span>
|
<span class="input-group-text"><label for="mailfield" class="mb-0"><i class="fa fa-envelope"></i></label></span>
|
||||||
</div>
|
</div>
|
||||||
<input id="mailfield" name="mail" type="text" value="<TMPL_VAR NAME="MAIL">" class="form-control" trplaceholder="mail" required />
|
<input id="mailfield" name="mail" type="text" value="<TMPL_VAR NAME="MAIL">" class="form-control" trplaceholder="mail" required />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<TMPL_IF NAME=CAPTCHA_SRC>
|
<TMPL_IF NAME=CAPTCHA_SRC>
|
||||||
|
|
|
@ -33,7 +33,7 @@
|
||||||
<input type="hidden" name="token" value="<TMPL_VAR NAME="TOKEN">" />
|
<input type="hidden" name="token" value="<TMPL_VAR NAME="TOKEN">" />
|
||||||
</TMPL_IF>
|
</TMPL_IF>
|
||||||
<TMPL_IF NAME="DOWNLOAD">
|
<TMPL_IF NAME="DOWNLOAD">
|
||||||
<input id="urlfield" name="url" type="text" class="form-control" value="<TMPL_VAR NAME="URL">" trplaceholder="URL / DNS" aria-required="true"/>
|
<input id="urlfield" name="url" type="text" class="form-control" value="<TMPL_VAR NAME="URL">" trplaceholder="URL / DNS" aria-required="true" autocomplete="url" />
|
||||||
<pre><textarea id="checkDevOpsFile" name="checkDevOpsFile" class="form-control rounded-1" rows="6" trplaceholder="pasteHere"><TMPL_VAR NAME="FILE"></textarea></pre>
|
<pre><textarea id="checkDevOpsFile" name="checkDevOpsFile" class="form-control rounded-1" rows="6" trplaceholder="pasteHere"><TMPL_VAR NAME="FILE"></textarea></pre>
|
||||||
<TMPL_ELSE>
|
<TMPL_ELSE>
|
||||||
<pre><textarea id="checkDevOpsFile" name="checkDevOpsFile" class="form-control rounded-1" rows="6" trplaceholder="pasteHere" required><TMPL_VAR NAME="FILE"></textarea></pre>
|
<pre><textarea id="checkDevOpsFile" name="checkDevOpsFile" class="form-control rounded-1" rows="6" trplaceholder="pasteHere" required><TMPL_VAR NAME="FILE"></textarea></pre>
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
<div class="input-group-prepend">
|
<div class="input-group-prepend">
|
||||||
<span class="input-group-text"><label for="urlfield" class="mb-0"><i class="fa fa-link"></i></label></span>
|
<span class="input-group-text"><label for="urlfield" class="mb-0"><i class="fa fa-link"></i></label></span>
|
||||||
</div>
|
</div>
|
||||||
<input id="urlfield" name="url" type="text" class="form-control" value="<TMPL_VAR NAME="URL">" trplaceholder="URL / DNS" aria-required="true"/>
|
<input id="urlfield" name="url" type="text" class="form-control" value="<TMPL_VAR NAME="URL">" trplaceholder="URL / DNS" aria-required="true" autocomplete="url" />
|
||||||
</div>
|
</div>
|
||||||
<button type="submit" class="btn btn-success">
|
<button type="submit" class="btn btn-success">
|
||||||
<span class="fa fa-search"></span>
|
<span class="fa fa-search"></span>
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
<div class="input-group-prepend">
|
<div class="input-group-prepend">
|
||||||
<span class="input-group-text"><label for="userfield" class="mb-0"><i class="fa fa-user"></i></label></span>
|
<span class="input-group-text"><label for="userfield" class="mb-0"><i class="fa fa-user"></i></label></span>
|
||||||
</div>
|
</div>
|
||||||
<input id="userfield" name="user" type="text" class="form-control" value="<TMPL_VAR NAME="LOGIN">" trplaceholder="mail" required aria-required="true"/>
|
<input id="userfield" name="user" type="text" class="form-control" value="<TMPL_VAR NAME="LOGIN">" trplaceholder="mail" required aria-required="true" />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="input-group mb-3">
|
<div class="input-group mb-3">
|
||||||
|
|
|
@ -23,21 +23,21 @@
|
||||||
<div class="input-group-prepend">
|
<div class="input-group-prepend">
|
||||||
<span class="input-group-text"><label for="firstnamefield" class="mb-0"><i class="fa fa-user"></i></label></span>
|
<span class="input-group-text"><label for="firstnamefield" class="mb-0"><i class="fa fa-user"></i></label></span>
|
||||||
</div>
|
</div>
|
||||||
<input id="firstnamefield" name="firstname" type="text" value="<TMPL_VAR NAME="FIRSTNAME">" class="form-control" trplaceholder="firstName" required aria-required="true"/>
|
<input id="firstnamefield" name="firstname" type="text" value="<TMPL_VAR NAME="FIRSTNAME">" class="form-control" trplaceholder="firstName" required aria-required="true" autocomplete="given-name" />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="input-group mb-3">
|
<div class="input-group mb-3">
|
||||||
<div class="input-group-prepend">
|
<div class="input-group-prepend">
|
||||||
<span class="input-group-text"><label for="lastnamefield" class="mb-0"><i class="fa fa-user"></i></label></span>
|
<span class="input-group-text"><label for="lastnamefield" class="mb-0"><i class="fa fa-user"></i></label></span>
|
||||||
</div>
|
</div>
|
||||||
<input id="lastnamefield" name="lastname" type="text" value="<TMPL_VAR NAME="LASTNAME">" class="form-control" trplaceholder="lastName" required aria-required="true"/>
|
<input id="lastnamefield" name="lastname" type="text" value="<TMPL_VAR NAME="LASTNAME">" class="form-control" autocomplete="family-name" trplaceholder="lastName" required aria-required="true"/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="input-group mb-3">
|
<div class="input-group mb-3">
|
||||||
<div class="input-group-prepend">
|
<div class="input-group-prepend">
|
||||||
<span class="input-group-text"><label for="mailfield" class="mb-0"><i class="fa fa-envelope"></i></label></span>
|
<span class="input-group-text"><label for="mailfield" class="mb-0"><i class="fa fa-envelope"></i></label></span>
|
||||||
</div>
|
</div>
|
||||||
<input id="mailfield" name="mail" type="text" value="<TMPL_VAR NAME="MAIL">" class="form-control" trplaceholder="mail" required aria-required="true"/>
|
<input id="mailfield" name="mail" type="text" value="<TMPL_VAR NAME="MAIL">" class="form-control" trplaceholder="mail" required aria-required="true" />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<TMPL_IF NAME=CAPTCHA_SRC>
|
<TMPL_IF NAME=CAPTCHA_SRC>
|
||||||
|
|
|
@ -41,7 +41,7 @@ SKIP: {
|
||||||
' Captcha image inserted' );
|
' Captcha image inserted' );
|
||||||
ok(
|
ok(
|
||||||
$res->[2]->[0] =~
|
$res->[2]->[0] =~
|
||||||
m#<img class="renewcaptchaclick" src="/static/common/icons/arrow_refresh.png" alt="Renew Captcha" title="Renew Captcha" class="img-thumbnail mb-3" />#,
|
m#<img class="renewcaptchaclick" src="/static/common/icons/arrow_refresh.png"#,
|
||||||
' Renew Captcha button found'
|
' Renew Captcha button found'
|
||||||
) or explain( $res->[2]->[0], 'Renew captcha button not found' );
|
) or explain( $res->[2]->[0], 'Renew captcha button not found' );
|
||||||
ok( $res->[2]->[0] =~ /captcha\.(?:min\.)?js/, 'Get captcha javascript' );
|
ok( $res->[2]->[0] =~ /captcha\.(?:min\.)?js/, 'Get captcha javascript' );
|
||||||
|
|
|
@ -134,7 +134,7 @@ m%<input[^>]*name="password"%,
|
||||||
' New captcha image inserted' );
|
' New captcha image inserted' );
|
||||||
ok(
|
ok(
|
||||||
$res->[2]->[0] =~
|
$res->[2]->[0] =~
|
||||||
m#<img class="renewcaptchaclick" src="/static/common/icons/arrow_refresh.png" alt="Renew Captcha" title="Renew Captcha" class="img-thumbnail mb-3" />#,
|
m#<img class="renewcaptchaclick" src="/static/common/icons/arrow_refresh.png" alt="Renew Captcha" title="Renew Captcha" class="img-thumbnail mb-3" autocomplete="one-time-code" />#,
|
||||||
' Renew Captcha button found'
|
' Renew Captcha button found'
|
||||||
) or explain( $res->[2]->[0], 'Renew captcha button not found' );
|
) or explain( $res->[2]->[0], 'Renew captcha button not found' );
|
||||||
ok( $res->[2]->[0] =~ /captcha\.(?:min\.)?js/, 'Get captcha javascript' );
|
ok( $res->[2]->[0] =~ /captcha\.(?:min\.)?js/, 'Get captcha javascript' );
|
||||||
|
|
|
@ -62,7 +62,7 @@ s/^.*token=([^&]+).*$/token=$1&firstname=who&lastname=doctor&mail=dwho%40badwolf
|
||||||
) or print STDERR Dumper( $res->[2]->[0] );
|
) or print STDERR Dumper( $res->[2]->[0] );
|
||||||
ok(
|
ok(
|
||||||
$res->[2]->[0] =~
|
$res->[2]->[0] =~
|
||||||
m#<img class="renewcaptchaclick" src="/static/common/icons/arrow_refresh.png" alt="Renew Captcha" title="Renew Captcha" class="img-thumbnail mb-3" />#,
|
m#<img class="renewcaptchaclick" src="/static/common/icons/arrow_refresh.png"#,
|
||||||
' Renew Captcha button found'
|
' Renew Captcha button found'
|
||||||
) or explain( $res->[2]->[0], 'Renew captcha button not found' );
|
) or explain( $res->[2]->[0], 'Renew captcha button not found' );
|
||||||
ok( $res->[2]->[0] =~ /captcha\.(?:min\.)?js/, 'Get captcha javascript' );
|
ok( $res->[2]->[0] =~ /captcha\.(?:min\.)?js/, 'Get captcha javascript' );
|
||||||
|
|
|
@ -69,7 +69,7 @@ m%<a class="btn btn-secondary" href="http://auth.example.com/resetpwd\?skin=boot
|
||||||
) or print STDERR Dumper( $res->[2]->[0] );
|
) or print STDERR Dumper( $res->[2]->[0] );
|
||||||
ok(
|
ok(
|
||||||
$res->[2]->[0] =~
|
$res->[2]->[0] =~
|
||||||
m#<img class="renewcaptchaclick" src="/static/common/icons/arrow_refresh.png" alt="Renew Captcha" title="Renew Captcha" class="img-thumbnail mb-3" />#,
|
m#<img class="renewcaptchaclick" src="/static/common/icons/arrow_refresh.png"#,
|
||||||
' Renew Captcha button found'
|
' Renew Captcha button found'
|
||||||
) or explain( $res->[2]->[0], 'Renew captcha button not found' );
|
) or explain( $res->[2]->[0], 'Renew captcha button not found' );
|
||||||
ok( $res->[2]->[0] =~ /captcha\.(?:min\.)?js/, 'Get captcha javascript' );
|
ok( $res->[2]->[0] =~ /captcha\.(?:min\.)?js/, 'Get captcha javascript' );
|
||||||
|
|
|
@ -124,7 +124,7 @@ count(1);
|
||||||
expectForm( $res, undef, '/checkuser', 'user', 'url' );
|
expectForm( $res, undef, '/checkuser', 'user', 'url' );
|
||||||
ok(
|
ok(
|
||||||
$res->[2]->[0] =~
|
$res->[2]->[0] =~
|
||||||
m%<input id="urlfield" name="url" type="text" class="form-control" value="http://test1.example.com" trplaceholder="URL / DNS"%,
|
m%<input id="urlfield" name="url" type="text" class="form-control" value="http://test1.example.com" trplaceholder="URL / DNS" aria-required="true" autocomplete="url" />%,
|
||||||
'Found HTTP url'
|
'Found HTTP url'
|
||||||
) or explain( $res->[2]->[0], 'HTTP url' );
|
) or explain( $res->[2]->[0], 'HTTP url' );
|
||||||
ok(
|
ok(
|
||||||
|
@ -224,7 +224,7 @@ ok(
|
||||||
expectForm( $res, undef, '/checkuser', 'user', 'url' );
|
expectForm( $res, undef, '/checkuser', 'user', 'url' );
|
||||||
ok(
|
ok(
|
||||||
$res->[2]->[0] =~
|
$res->[2]->[0] =~
|
||||||
m%<input id="urlfield" name="url" type="text" class="form-control" value="https://test2.example.com" trplaceholder="URL / DNS"%,
|
m%<input id="urlfield" name="url" type="text" class="form-control" value="https://test2.example.com" trplaceholder="URL / DNS" aria-required="true" autocomplete="url" />%,
|
||||||
'Found HTTPS url'
|
'Found HTTPS url'
|
||||||
) or explain( $res->[2]->[0], 'HTTP url' );
|
) or explain( $res->[2]->[0], 'HTTP url' );
|
||||||
count(2);
|
count(2);
|
||||||
|
|
|
@ -48,7 +48,7 @@ SKIP: {
|
||||||
' Captcha image inserted' );
|
' Captcha image inserted' );
|
||||||
ok(
|
ok(
|
||||||
$res->[2]->[0] =~
|
$res->[2]->[0] =~
|
||||||
m#<img class="renewcaptchaclick" src="/static/common/icons/arrow_refresh.png" alt="Renew Captcha" title="Renew Captcha" class="img-thumbnail mb-3" />#,
|
m#<img class="renewcaptchaclick" src="/static/common/icons/arrow_refresh.png"#,
|
||||||
' Renew Captcha button found'
|
' Renew Captcha button found'
|
||||||
) or explain( $res->[2]->[0], 'Renew captcha button not found' );
|
) or explain( $res->[2]->[0], 'Renew captcha button not found' );
|
||||||
ok( $res->[2]->[0] =~ /captcha\.(?:min\.)?js/, 'Get captcha javascript' );
|
ok( $res->[2]->[0] =~ /captcha\.(?:min\.)?js/, 'Get captcha javascript' );
|
||||||
|
|
|
@ -676,6 +676,7 @@ fi
|
||||||
%{lm_bindir}/lemonldap-ng-cli
|
%{lm_bindir}/lemonldap-ng-cli
|
||||||
%{lm_bindir}/llngDeleteSession
|
%{lm_bindir}/llngDeleteSession
|
||||||
%{_mandir}/man1/lemonldap-ng-cli*
|
%{_mandir}/man1/lemonldap-ng-cli*
|
||||||
|
%{_mandir}/man1/importMetadata*
|
||||||
|
|
||||||
%files portal
|
%files portal
|
||||||
%{lm_sharedir}/portal
|
%{lm_sharedir}/portal
|
||||||
|
|
|
@ -89,7 +89,7 @@ L<https://gitlab.ow2.org/lemonldap-ng/lemonldap-ng/issues>
|
||||||
=head1 DOWNLOAD
|
=head1 DOWNLOAD
|
||||||
|
|
||||||
Lemonldap::NG is available at
|
Lemonldap::NG is available at
|
||||||
L<http://forge.objectweb.org/project/showfiles.php?group_id=274>
|
L<https://lemonldap-ng.org/download>
|
||||||
|
|
||||||
=head1 COPYRIGHT AND LICENSE
|
=head1 COPYRIGHT AND LICENSE
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user