This is an automated email from the ASF dual-hosted git repository.
ilgrosso pushed a commit to branch 2_1_X
in repository https://gitbox.apache.org/repos/asf/syncope.git
The following commit(s) were added to refs/heads/2_1_X by this push:
new 232632f [SYNCOPE-1453] Moving hasMustChangePassword() under
@Transactional, for safety
232632f is described below
commit 232632fe7eaacbc02ff445bc5f5bd4d17374564a
Author: Francesco Chicchiriccò <[email protected]>
AuthorDate: Thu Mar 28 10:26:03 2019 +0100
[SYNCOPE-1453] Moving hasMustChangePassword() under @Transactional, for
safety
---
.../org/apache/syncope/core/provisioning/api/MappingManager.java | 8 ++++++++
.../apache/syncope/core/provisioning/java/MappingManagerImpl.java | 8 ++++++++
.../syncope/core/provisioning/java/data/UserDataBinderImpl.java | 3 +--
.../syncope/core/provisioning/java/utils/ConnObjectUtils.java | 2 +-
.../apache/syncope/core/provisioning/java/utils/MappingUtils.java | 6 ------
5 files changed, 18 insertions(+), 9 deletions(-)
diff --git
a/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/MappingManager.java
b/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/MappingManager.java
index a662e58..1e00c38 100644
---
a/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/MappingManager.java
+++
b/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/MappingManager.java
@@ -119,4 +119,12 @@ public interface MappingManager {
* @param realmTO realm
*/
void setIntValues(Item orgUnitItem, Attribute attr, RealmTO realmTO);
+
+ /**
+ * Checks if there is a mapping item in the given {@link Provision} for
{@code mustChangePassword}.
+ *
+ * @param provision provision
+ * @return if there is a mapping item in the given provision for {@code
mustChangePassword}
+ */
+ boolean hasMustChangePassword(Provision provision);
}
diff --git
a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/MappingManagerImpl.java
b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/MappingManagerImpl.java
index 0ae2676..0142f51 100644
---
a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/MappingManagerImpl.java
+++
b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/MappingManagerImpl.java
@@ -858,4 +858,12 @@ public class MappingManagerImpl implements MappingManager {
}
}
}
+
+ @Transactional(readOnly = true)
+ @Override
+ public boolean hasMustChangePassword(final Provision provision) {
+ return provision != null && provision.getMapping() != null
+ && provision.getMapping().getItems().stream().
+ anyMatch(mappingItem ->
"mustChangePassword".equals(mappingItem.getIntAttrName()));
+ }
}
diff --git
a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/UserDataBinderImpl.java
b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/UserDataBinderImpl.java
index 1006cfb..1b1c004 100644
---
a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/UserDataBinderImpl.java
+++
b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/UserDataBinderImpl.java
@@ -70,7 +70,6 @@ import
org.apache.syncope.core.persistence.api.entity.resource.Provision;
import org.apache.syncope.core.persistence.api.entity.user.UMembership;
import org.apache.syncope.core.persistence.api.entity.user.UPlainAttr;
import org.apache.syncope.core.persistence.api.entity.user.URelationship;
-import org.apache.syncope.core.provisioning.java.utils.MappingUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
@@ -335,7 +334,7 @@ public class UserDataBinderImpl extends
AbstractAnyDataBinder implements UserDat
ResourceOperation.UPDATE,
anyUtils.getAllResources(toBeUpdated).stream().
filter(resource ->
resource.getProvision(toBeUpdated.getType()).isPresent()).
- filter(resource ->
MappingUtils.hasMustChangePassword(
+ filter(resource ->
mappingManager.hasMustChangePassword(
resource.getProvision(toBeUpdated.getType()).get())).
map(Entity::getKey).
collect(Collectors.toSet()));
diff --git
a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/utils/ConnObjectUtils.java
b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/utils/ConnObjectUtils.java
index fd475a9..2ba2034 100644
---
a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/utils/ConnObjectUtils.java
+++
b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/utils/ConnObjectUtils.java
@@ -262,7 +262,7 @@ public class ConnObjectUtils {
updatedUser.setSecurityQuestion(originalUser.getSecurityQuestion());
- if (!MappingUtils.hasMustChangePassword(provision)) {
+ if (!mappingManager.hasMustChangePassword(provision)) {
updatedUser.setMustChangePassword(originalUser.isMustChangePassword());
}
diff --git
a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/utils/MappingUtils.java
b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/utils/MappingUtils.java
index d4d096e..5d0c9d2 100644
---
a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/utils/MappingUtils.java
+++
b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/utils/MappingUtils.java
@@ -214,12 +214,6 @@ public final class MappingUtils {
return builder.build();
}
- public static boolean hasMustChangePassword(final Provision provision) {
- return provision != null && provision.getMapping() != null
- && provision.getMapping().getItems().stream().
- anyMatch(mappingItem ->
"mustChangePassword".equals(mappingItem.getIntAttrName()));
- }
-
/**
* Private default constructor, for static-only classes.
*/