This is an automated email from the ASF dual-hosted git repository. ilgrosso pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/syncope.git
The following commit(s) were added to refs/heads/master by this push: new 7e30efe6fa Upgrading CAS 7e30efe6fa is described below commit 7e30efe6fa72329ae4c95ba5315a74c917a5c4fc Author: Francesco Chicchiriccò <ilgro...@apache.org> AuthorDate: Thu Apr 14 08:37:55 2022 +0200 Upgrading CAS --- .../core/persistence/jpa/dao/JPAUserDAO.java | 22 ++++++++-------------- .../spring/security/DefaultPasswordGenerator.java | 4 ++++ pom.xml | 2 +- 3 files changed, 13 insertions(+), 15 deletions(-) diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAUserDAO.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAUserDAO.java index 0fe9baeb6b..244cc3fcb0 100644 --- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAUserDAO.java +++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAUserDAO.java @@ -274,23 +274,17 @@ public class JPAUserDAO extends AbstractAnyDAO<User> implements UserDAO { protected List<PasswordPolicy> getPasswordPolicies(final User user) { List<PasswordPolicy> policies = new ArrayList<>(); - PasswordPolicy policy; - // add resource policies - for (ExternalResource resource : findAllResources(user)) { - policy = resource.getPasswordPolicy(); - if (policy != null) { - policies.add(policy); - } - } + findAllResources(user). + forEach(resource -> Optional.ofNullable(resource.getPasswordPolicy()). + filter(p -> !policies.contains(p)). + ifPresent(policies::add)); // add realm policies - for (Realm realm : realmDAO.findAncestors(user.getRealm())) { - policy = realm.getPasswordPolicy(); - if (policy != null) { - policies.add(policy); - } - } + realmDAO.findAncestors(user.getRealm()). + forEach(realm -> Optional.ofNullable(realm.getPasswordPolicy()). + filter(p -> !policies.contains(p)). + ifPresent(policies::add)); return policies; } diff --git a/core/spring/src/main/java/org/apache/syncope/core/spring/security/DefaultPasswordGenerator.java b/core/spring/src/main/java/org/apache/syncope/core/spring/security/DefaultPasswordGenerator.java index b82e80c50b..6eb64c69ed 100644 --- a/core/spring/src/main/java/org/apache/syncope/core/spring/security/DefaultPasswordGenerator.java +++ b/core/spring/src/main/java/org/apache/syncope/core/spring/security/DefaultPasswordGenerator.java @@ -93,6 +93,10 @@ public class DefaultPasswordGenerator implements PasswordGenerator { result.setMaxLength(ruleConf.getMaxLength()); } + if (ruleConf.getAlphabetical() > result.getAlphabetical()) { + result.setAlphabetical(ruleConf.getAlphabetical()); + } + if (ruleConf.getUppercase() > result.getUppercase()) { result.setUppercase(ruleConf.getUppercase()); } diff --git a/pom.xml b/pom.xml index 4ea88dbd8b..67e4ae9032 100644 --- a/pom.xml +++ b/pom.xml @@ -446,7 +446,7 @@ under the License. <pac4j.version>5.3.1</pac4j.version> - <cas.version>6.5.2</cas.version> + <cas.version>6.5.3</cas.version> <cas-client.version>3.6.4</cas-client.version> <h2.version>2.1.212</h2.version>