diff --git a/config/alfresco/web-scripts-application-context.xml b/config/alfresco/web-scripts-application-context.xml
index 12db6497fd..22a4c9244e 100644
--- a/config/alfresco/web-scripts-application-context.xml
+++ b/config/alfresco/web-scripts-application-context.xml
@@ -149,6 +149,7 @@
+
diff --git a/source/java/org/alfresco/repo/web/scripts/portlet/WebClientPortletAuthenticatorFactory.java b/source/java/org/alfresco/repo/web/scripts/portlet/WebClientPortletAuthenticatorFactory.java
index 5d3ef1fb8a..528fb6e1af 100644
--- a/source/java/org/alfresco/repo/web/scripts/portlet/WebClientPortletAuthenticatorFactory.java
+++ b/source/java/org/alfresco/repo/web/scripts/portlet/WebClientPortletAuthenticatorFactory.java
@@ -27,11 +27,13 @@ package org.alfresco.repo.web.scripts.portlet;
import javax.portlet.PortletSession;
import javax.portlet.RenderRequest;
import javax.portlet.RenderResponse;
+import javax.transaction.UserTransaction;
import org.alfresco.repo.security.authentication.AuthenticationUtil;
import org.alfresco.repo.web.scripts.Repository;
import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.security.AuthenticationService;
+import org.alfresco.service.transaction.TransactionService;
import org.alfresco.web.app.servlet.AuthenticationHelper;
import org.alfresco.web.bean.repository.User;
import org.alfresco.web.scripts.Authenticator;
@@ -54,6 +56,7 @@ public class WebClientPortletAuthenticatorFactory implements PortletAuthenticato
// dependencies
private AuthenticationService authenticationService;
+ private TransactionService transactionService;
private Repository repository;
/**
@@ -71,6 +74,14 @@ public class WebClientPortletAuthenticatorFactory implements PortletAuthenticato
{
this.repository = repository;
}
+
+ /**
+ * @param transactionService
+ */
+ public void setTransactionService(TransactionService transactionService)
+ {
+ this.transactionService = transactionService;
+ }
/* (non-Javadoc)
* @see org.alfresco.web.scripts.portlet.PortletAuthenticatorFactory#create(javax.portlet.RenderRequest, javax.portlet.RenderResponse)
@@ -173,14 +184,28 @@ public class WebClientPortletAuthenticatorFactory implements PortletAuthenticato
*/
private void createWebClientUser(PortletSession session)
{
- NodeRef personRef = repository.getPerson();
- User user = new User(authenticationService.getCurrentUserName(), authenticationService.getCurrentTicket(), personRef);
- NodeRef homeRef = repository.getUserHome(personRef);
- if (homeRef != null)
+ UserTransaction tx = null;
+ try
{
- user.setHomeSpaceId(homeRef.getId());
+ // start a txn as this method interacts with public services
+ tx = transactionService.getUserTransaction();
+ tx.begin();
+
+ NodeRef personRef = repository.getPerson();
+ User user = new User(authenticationService.getCurrentUserName(), authenticationService.getCurrentTicket(), personRef);
+ NodeRef homeRef = repository.getUserHome(personRef);
+ if (homeRef != null)
+ {
+ user.setHomeSpaceId(homeRef.getId());
+ }
+ session.setAttribute(AuthenticationHelper.AUTHENTICATION_USER, user, PortletSession.APPLICATION_SCOPE);
+
+ tx.commit();
+ }
+ catch (Throwable e)
+ {
+ try { if (tx != null) {tx.rollback();} } catch (Exception tex) {}
}
- session.setAttribute(AuthenticationHelper.AUTHENTICATION_USER, user, PortletSession.APPLICATION_SCOPE);
}
/**
diff --git a/source/web/jsp/wcm/create-website-wizard/create-from.jsp b/source/web/jsp/wcm/create-website-wizard/create-from.jsp
index de2683a9d5..cfca086db6 100644
--- a/source/web/jsp/wcm/create-website-wizard/create-from.jsp
+++ b/source/web/jsp/wcm/create-website-wizard/create-from.jsp
@@ -34,7 +34,7 @@
-