You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@syncope.apache.org by il...@apache.org on 2015/01/05 14:34:11 UTC
[06/53] [abbrv] syncope git commit: Password managed now included in
the provisionig manager
Password managed now included in the provisionig manager
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/0da02810
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/0da02810
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/0da02810
Branch: refs/heads/master
Commit: 0da02810041a4bbd5c0892a02924cf726a9e016e
Parents: 5b3b124
Author: giacomolm <gi...@hotmail.it>
Authored: Thu Dec 18 10:42:56 2014 +0100
Committer: giacomolm <gi...@hotmail.it>
Committed: Thu Dec 18 10:42:56 2014 +0100
----------------------------------------------------------------------
.../DefaultUserProvisioningManager.java | 20 ++++++
.../core/provisioning/ProvisioningManager.java | 42 +++++++++++
.../provisioning/UserProvisioningManager.java | 4 ++
.../camel/CamelUserProvisioningManager.java | 48 +++++++++----
.../DefaultUserConfirmPwdResetPropagation.java | 60 ++++++++++++++++
.../provisioning/ProvisioningManager.java | 42 -----------
.../core/rest/controller/UserController.java | 73 +-------------------
core/src/main/resources/camelRoute.xml | 40 ++++++++++-
core/src/main/resources/coreContext.xml | 1 +
9 files changed, 201 insertions(+), 129 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/syncope/blob/0da02810/core/src/main/java/org/apache/syncope/core/provisioning/DefaultUserProvisioningManager.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/DefaultUserProvisioningManager.java b/core/src/main/java/org/apache/syncope/core/provisioning/DefaultUserProvisioningManager.java
index 86f6ebe..54f677c 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/DefaultUserProvisioningManager.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/DefaultUserProvisioningManager.java
@@ -344,4 +344,24 @@ public class DefaultUserProvisioningManager implements UserProvisioningManager{
}
}
+ @Override
+ public void requestPasswordReset(Long id) {
+ uwfAdapter.requestPasswordReset(id);
+ }
+
+ @Override
+ public void confirmPasswordReset(SyncopeUser user, String token, String password) {
+
+ uwfAdapter.confirmPasswordReset(user.getId(), token, password);
+
+ List<PropagationTask> tasks = propagationManager.getUserUpdateTaskIds(user, null, null);
+ PropagationReporter propReporter =
+ ApplicationContextProvider.getApplicationContext().getBean(PropagationReporter.class);
+ try {
+ taskExecutor.execute(tasks, propReporter);
+ } catch (PropagationException e) {
+ LOG.error("Error propagation primary resource", e);
+ propReporter.onPrimaryResourceFailure(tasks);
+ }
+ }
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/0da02810/core/src/main/java/org/apache/syncope/core/provisioning/ProvisioningManager.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/ProvisioningManager.java b/core/src/main/java/org/apache/syncope/core/provisioning/ProvisioningManager.java
new file mode 100644
index 0000000..adc1cb0
--- /dev/null
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/ProvisioningManager.java
@@ -0,0 +1,42 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.core.provisioning;
+
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+import org.apache.syncope.common.mod.AbstractAttributableMod;
+import org.apache.syncope.common.to.AbstractAttributableTO;
+import org.apache.syncope.common.to.PropagationStatus;
+
+public interface ProvisioningManager<T extends AbstractAttributableTO, M extends AbstractAttributableMod>{
+
+ public Map.Entry<Long, List<PropagationStatus>> create(T subject);
+
+ public Map.Entry<Long, List<PropagationStatus>> update(M subjectMod);
+
+ public List<PropagationStatus> delete(Long subjectId);
+
+ public Long unlink(M subjectMod);
+
+ public Long link(M subjectMod);
+
+ public List<PropagationStatus> deprovision(Long user, Collection<String> resources);
+
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/0da02810/core/src/main/java/org/apache/syncope/core/provisioning/UserProvisioningManager.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/UserProvisioningManager.java b/core/src/main/java/org/apache/syncope/core/provisioning/UserProvisioningManager.java
index da29a42..32a4d18 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/UserProvisioningManager.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/UserProvisioningManager.java
@@ -47,4 +47,8 @@ public interface UserProvisioningManager extends ProvisioningManager<UserTO, Use
public void innerSuspend(SyncopeUser user, boolean suspend);
+ public void requestPasswordReset(final Long id);
+
+ public void confirmPasswordReset(SyncopeUser user,final String token,final String password);
+
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/0da02810/core/src/main/java/org/apache/syncope/core/provisioning/camel/CamelUserProvisioningManager.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/CamelUserProvisioningManager.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/CamelUserProvisioningManager.java
index dc0c552..92b3cfb 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/CamelUserProvisioningManager.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/CamelUserProvisioningManager.java
@@ -18,11 +18,9 @@
*/
package org.apache.syncope.core.provisioning.camel;
-import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.Reader;
-import java.net.URLDecoder;
import java.util.AbstractMap;
import java.util.ArrayList;
import java.util.Collection;
@@ -33,11 +31,6 @@ import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.JAXBElement;
-import javax.xml.bind.Unmarshaller;
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
import org.apache.camel.CamelContext;
import org.apache.camel.Endpoint;
import org.apache.camel.Exchange;
@@ -46,10 +39,7 @@ import org.apache.camel.ProducerTemplate;
import org.apache.camel.impl.DefaultCamelContext;
import org.apache.camel.impl.DefaultExchange;
import org.apache.camel.impl.DefaultMessage;
-import org.apache.camel.model.Constants;
-import org.apache.camel.model.RouteDefinition;
import org.apache.camel.model.RoutesDefinition;
-import org.apache.camel.spring.SpringCamelContext;
import org.apache.syncope.common.mod.StatusMod;
import org.apache.syncope.common.mod.UserMod;
import org.apache.syncope.common.to.PropagationStatus;
@@ -60,15 +50,11 @@ import org.apache.syncope.core.persistence.dao.RouteDAO;
import org.apache.syncope.core.propagation.PropagationByResource;
import org.apache.syncope.core.provisioning.UserProvisioningManager;
import org.apache.syncope.core.sync.SyncResult;
-import org.apache.syncope.core.util.ApplicationContextProvider;
import org.apache.syncope.core.workflow.WorkflowResult;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
+
public class CamelUserProvisioningManager implements UserProvisioningManager {
@@ -453,4 +439,36 @@ public class CamelUserProvisioningManager implements UserProvisioningManager {
}
+ @Override
+ public void requestPasswordReset(Long id) {
+ String uri = "direct:requestPwdResetPort";
+ PollingConsumer pollingConsumer = getConsumer(uri);
+
+ sendMessage("direct:requestPwdReset", id);
+ Exchange o = pollingConsumer.receive();
+
+ if (o.getProperty(Exchange.EXCEPTION_CAUGHT) != null) {
+ throw (RuntimeException) o.getProperty(Exchange.EXCEPTION_CAUGHT);
+ }
+ }
+
+ @Override
+ public void confirmPasswordReset(SyncopeUser user, final String token, final String password) {
+ String uri = "direct:confirmPwdResetPort";
+ PollingConsumer pollingConsumer = getConsumer(uri);
+
+ Map<String, Object> props = new HashMap<String, Object>();
+ props.put("user", user);
+ props.put("userId", user.getId());
+ props.put("token", token);
+ props.put("password", password);
+
+ sendMessage("direct:confirmPwdReset", user, props);
+ Exchange o = pollingConsumer.receive();
+
+ if (o.getProperty(Exchange.EXCEPTION_CAUGHT) != null) {
+ throw (RuntimeException) o.getProperty(Exchange.EXCEPTION_CAUGHT);
+ }
+ }
+
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/0da02810/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserConfirmPwdResetPropagation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserConfirmPwdResetPropagation.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserConfirmPwdResetPropagation.java
new file mode 100644
index 0000000..2447689
--- /dev/null
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserConfirmPwdResetPropagation.java
@@ -0,0 +1,60 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.core.provisioning.camel.processors;
+
+import java.util.List;
+import org.apache.camel.Exchange;
+import org.apache.camel.Processor;
+import org.apache.syncope.common.to.UserTO;
+import org.apache.syncope.core.persistence.beans.PropagationTask;
+import org.apache.syncope.core.persistence.beans.user.SyncopeUser;
+import org.apache.syncope.core.propagation.PropagationException;
+import org.apache.syncope.core.propagation.PropagationReporter;
+import org.apache.syncope.core.propagation.PropagationTaskExecutor;
+import org.apache.syncope.core.propagation.impl.PropagationManager;
+import org.apache.syncope.core.util.ApplicationContextProvider;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+
+
+public class DefaultUserConfirmPwdResetPropagation implements Processor{
+
+ private static final Logger LOG = LoggerFactory.getLogger(DefaultUserConfirmPwdResetPropagation.class);
+
+ @Autowired
+ protected PropagationManager propagationManager;
+ @Autowired
+ protected PropagationTaskExecutor taskExecutor;
+
+ @Override
+ public void process(Exchange exchange){
+ SyncopeUser user = exchange.getProperty("user", SyncopeUser.class);
+
+ List<PropagationTask> tasks = propagationManager.getUserUpdateTaskIds(user, null, null);
+ PropagationReporter propReporter =
+ ApplicationContextProvider.getApplicationContext().getBean(PropagationReporter.class);
+ try {
+ taskExecutor.execute(tasks, propReporter);
+ } catch (PropagationException e) {
+ LOG.error("Error propagation primary resource", e);
+ propReporter.onPrimaryResourceFailure(tasks);
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/0da02810/core/src/main/java/org/apache/syncope/core/provisioning/provisioning/ProvisioningManager.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/provisioning/ProvisioningManager.java b/core/src/main/java/org/apache/syncope/core/provisioning/provisioning/ProvisioningManager.java
deleted file mode 100644
index adc1cb0..0000000
--- a/core/src/main/java/org/apache/syncope/core/provisioning/provisioning/ProvisioningManager.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.syncope.core.provisioning;
-
-import java.util.Collection;
-import java.util.List;
-import java.util.Map;
-import org.apache.syncope.common.mod.AbstractAttributableMod;
-import org.apache.syncope.common.to.AbstractAttributableTO;
-import org.apache.syncope.common.to.PropagationStatus;
-
-public interface ProvisioningManager<T extends AbstractAttributableTO, M extends AbstractAttributableMod>{
-
- public Map.Entry<Long, List<PropagationStatus>> create(T subject);
-
- public Map.Entry<Long, List<PropagationStatus>> update(M subjectMod);
-
- public List<PropagationStatus> delete(Long subjectId);
-
- public Long unlink(M subjectMod);
-
- public Long link(M subjectMod);
-
- public List<PropagationStatus> deprovision(Long user, Collection<String> resources);
-
-}
http://git-wip-us.apache.org/repos/asf/syncope/blob/0da02810/core/src/main/java/org/apache/syncope/core/rest/controller/UserController.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/rest/controller/UserController.java b/core/src/main/java/org/apache/syncope/core/rest/controller/UserController.java
index d8fa5f8..606d46b 100644
--- a/core/src/main/java/org/apache/syncope/core/rest/controller/UserController.java
+++ b/core/src/main/java/org/apache/syncope/core/rest/controller/UserController.java
@@ -26,7 +26,6 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashSet;
-import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -43,11 +42,8 @@ import org.apache.syncope.common.to.UserTO;
import org.apache.syncope.common.types.ClientExceptionType;
import org.apache.syncope.common.SyncopeClientException;
import org.apache.syncope.common.mod.AttributeMod;
-import org.apache.syncope.common.mod.MembershipMod;
import org.apache.syncope.common.types.SubjectType;
import org.apache.syncope.common.to.PropagationStatus;
-import org.apache.syncope.core.persistence.beans.CamelRoute;
-import org.apache.syncope.core.persistence.beans.PropagationTask;
import org.apache.syncope.core.provisioning.UserProvisioningManager;
import org.apache.syncope.core.persistence.beans.role.SyncopeRole;
import org.apache.syncope.core.persistence.beans.user.SyncopeUser;
@@ -57,18 +53,11 @@ import org.apache.syncope.core.persistence.dao.NotFoundException;
import org.apache.syncope.core.persistence.dao.RoleDAO;
import org.apache.syncope.core.persistence.dao.UserDAO;
import org.apache.syncope.core.persistence.dao.search.OrderByClause;
-import org.apache.syncope.core.propagation.PropagationByResource;
-import org.apache.syncope.core.propagation.PropagationException;
-import org.apache.syncope.core.propagation.PropagationReporter;
import org.apache.syncope.core.propagation.PropagationTaskExecutor;
import org.apache.syncope.core.propagation.impl.PropagationManager;
-import org.apache.syncope.core.provisioning.camel.CamelUserProvisioningManager;
import org.apache.syncope.core.rest.data.AttributableTransformer;
import org.apache.syncope.core.rest.data.UserDataBinder;
-import org.apache.syncope.core.util.ApplicationContextProvider;
import org.apache.syncope.core.util.EntitlementUtil;
-import org.apache.syncope.core.workflow.WorkflowResult;
-import org.apache.syncope.core.workflow.user.UserWorkflowAdapter;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.stereotype.Component;
@@ -108,9 +97,6 @@ public class UserController extends AbstractSubjectController<UserTO, UserMod> {
@Autowired
protected AttributableTransformer attrTransformer;
- @Autowired
- protected UserWorkflowAdapter uwfAdapter;
-
@Resource(name = "defaultUserProvisioningManager")
protected UserProvisioningManager provisioningManager;
@@ -269,50 +255,6 @@ public class UserController extends AbstractSubjectController<UserTO, UserMod> {
}
}
- //Actual operations: workflow, propagation, notification
- /*WorkflowResult<Map.Entry<UserMod, Boolean>> updated = uwfAdapter.update(actual);
-
- List<PropagationTask> tasks = propagationManager.getUserUpdateTaskIds(updated);
- if (tasks.isEmpty()) {
- // SYNCOPE-459: take care of user virtual attributes ...
- final PropagationByResource propByResVirAttr = binder.fillVirtual(
- updated.getResult().getKey().getId(),
- actual.getVirAttrsToRemove(),
- actual.getVirAttrsToUpdate());
- // SYNCOPE-501: update only virtual attributes (if any of them changed), password propagation is
- // not required, take care also of membership virtual attributes
- boolean addOrUpdateMemberships = false;
- for (MembershipMod membershipMod : actual.getMembershipsToAdd()) {
- if (!binder.fillMembershipVirtual(
- updated.getResult().getKey().getId(),
- membershipMod.getRole(),
- null,
- membershipMod.getVirAttrsToRemove(),
- membershipMod.getVirAttrsToUpdate(),
- false).isEmpty()) {
-
- addOrUpdateMemberships = true;
- }
- }
- tasks.addAll(!propByResVirAttr.isEmpty() || addOrUpdateMemberships || removeMemberships
- ? propagationManager.getUserUpdateTaskIds(updated, false, null)
- : Collections.<PropagationTask>emptyList());
- }
-
- PropagationReporter propagationReporter = ApplicationContextProvider.getApplicationContext().
- getBean(PropagationReporter.class);
-
- if (!tasks.isEmpty()) {
- try {
- taskExecutor.execute(tasks, propagationReporter);
- } catch (PropagationException e) {
- LOG.error("Error propagation primary resource", e);
- propagationReporter.onPrimaryResourceFailure(tasks);
- }
- }
-
- final UserTO updatedTO = binder.getUserTO(updated.getResult().getKey().getId());
- updatedTO.getPropagationStatusTOs().addAll(propagationReporter.getStatuses());*/
Map.Entry<Long, List<PropagationStatus>> updated = provisioningManager.update(actual,removeMemberships);
final UserTO updatedTO = binder.getUserTO(updated.getKey());
@@ -372,7 +314,7 @@ public class UserController extends AbstractSubjectController<UserTO, UserMod> {
throw SyncopeClientException.build(ClientExceptionType.InvalidSecurityAnswer);
}
- uwfAdapter.requestPasswordReset(user.getId());
+ provisioningManager.requestPasswordReset(user.getId());
}
@PreAuthorize("isAnonymous() or hasRole(T(org.apache.syncope.common.SyncopeConstants).ANONYMOUS_ENTITLEMENT)")
@@ -382,18 +324,7 @@ public class UserController extends AbstractSubjectController<UserTO, UserMod> {
if (user == null) {
throw new NotFoundException("User with token " + token);
}
-
- uwfAdapter.confirmPasswordReset(user.getId(), token, password);
-
- List<PropagationTask> tasks = propagationManager.getUserUpdateTaskIds(user, null, null);
- PropagationReporter propReporter =
- ApplicationContextProvider.getApplicationContext().getBean(PropagationReporter.class);
- try {
- taskExecutor.execute(tasks, propReporter);
- } catch (PropagationException e) {
- LOG.error("Error propagation primary resource", e);
- propReporter.onPrimaryResourceFailure(tasks);
- }
+ provisioningManager.confirmPasswordReset(user, token, password);
}
@PreAuthorize("isAuthenticated() "
http://git-wip-us.apache.org/repos/asf/syncope/blob/0da02810/core/src/main/resources/camelRoute.xml
----------------------------------------------------------------------
diff --git a/core/src/main/resources/camelRoute.xml b/core/src/main/resources/camelRoute.xml
index c7ac19a..e1ad071 100644
--- a/core/src/main/resources/camelRoute.xml
+++ b/core/src/main/resources/camelRoute.xml
@@ -413,6 +413,43 @@ under the License.
</doTry>
</route>
+ <!--
+ REQUEST PASSWORD RESET ROUTE
+ -->
+
+ <route id="requestPwdReset">
+ <from uri="direct:requestPwdReset"/>
+ <doTry>
+ <bean ref="uwfAdapter" method="requestPasswordReset(${body})"/>
+ <to uri="direct:requestPwdResetPort"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:requestPwdResetPort"/>
+ </doCatch>
+ </doTry>
+ </route>
+ <!--
+ CONFIRM PASSWORD RESET
+ -->
+ <route id="confirmPwdReset">
+ <from uri="direct:confirmPwdReset"/>
+ <doTry>
+ <bean ref="uwfAdapter" method="confirmPasswordReset(${property.userId},${property.token},${property.password})"/>
+ <process ref="defaultUserConfirmPwdResetPropagation" />
+ <to uri="direct:confirmPwdResetPort"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:confirmPwdResetPort"/>
+ </doCatch>
+ </doTry>
+ </route>
+
</routeContext>
<bean id="defaultUserCreatePropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserCreatePropagation"/>
<bean id="defaultUserUpdatePropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserUpdatePropagation"/>
@@ -422,9 +459,10 @@ under the License.
<bean id="defaultUserDeprovisionPropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserDeprovisionPropagation"/>
<bean id="defaultUserWFSuspendPropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserWFSuspendPropagation"/>
<bean id="defaultUserStatusPropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserStatusPropagation"/>
+ <bean id="defaultUserConfirmPwdResetPropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserConfirmPwdResetPropagation"/>
<bean id="defaultRoleCreatePropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultRoleCreatePropagation"/>
<bean id="defaultRoleCreateSyncPropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultRoleCreateSyncPropagation"/>
<bean id="defaultRoleUpdatePropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultRoleUpdatePropagation"/>
<bean id="defaultRoleDeletePropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultRoleDeletePropagation"/>
- <bean id="defaultRoleDeprovisionPropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultRoleDeprovisionPropagation"/>
+ <bean id="defaultRoleDeprovisionPropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultRoleDeprovisionPropagation"/>
</beans>
http://git-wip-us.apache.org/repos/asf/syncope/blob/0da02810/core/src/main/resources/coreContext.xml
----------------------------------------------------------------------
diff --git a/core/src/main/resources/coreContext.xml b/core/src/main/resources/coreContext.xml
index da55cfc..3950689 100644
--- a/core/src/main/resources/coreContext.xml
+++ b/core/src/main/resources/coreContext.xml
@@ -162,6 +162,7 @@ under the License.
<bean id="defaultUserDeprovisionPropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserDeprovisionPropagation"/>
<bean id="defaultUserWFSuspendPropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserWFSuspendPropagation"/>
<bean id="defaultUserStatusPropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserStatusPropagation"/>
+ <bean id="defaultUserConfirmPwdResetPropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserConfirmPwdResetPropagation"/>
<bean id="defaultRoleCreatePropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultRoleCreatePropagation"/>
<bean id="defaultRoleCreateSyncPropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultRoleCreateSyncPropagation"/>
<bean id="defaultRoleUpdatePropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultRoleUpdatePropagation"/>