From 1b86085b7de680e9e3b497c239f5fcf38f023fa9 Mon Sep 17 00:00:00 2001 From: Derek Hulley Date: Tue, 11 Sep 2007 00:52:59 +0000 Subject: [PATCH] Merged V2.1 to HEAD 6535: adding in handlers for renames and deletes of webforms to update web project configurations. 6536: fix to monthpicker. 6537: Cluster sample config for ticketsCache defaults to replicating puts 6538: Invite web users wizard was not correctly initialising 6539: AWC-1474 - Email Space Users dialog - if no email recipients then show message 6540: Fixed remote classpath check for SDK projects 6541: AR-1544: Inbound Rules Being Fired on Name Property Update 6542: Fix for AWC-1216 - changed NavigationBean to spot when CIFS server is disabled (as the method has changed in repo) 6543: AR-1623: WebServices authentication errors during concurrent load test 6544: AWC-1253: AddContent action should be externally configurable/overridable 6545: Fixed AR-1586: Nicer message when installing older module or duplicate module 6546: AWC-1301: Access Denied viewing details of content with association 6547: AWC-1499: It is impossible to remove 'Complianceable' aspect with the help of Run action 6548: Missing file ... should fix build issues 6549: Missed file .. fixed build issue 6550: AWC-1092: sorting by version number in version history is alpha, not numeric 6551: AWC-1217: Cannot differentiate between two users with same name in user picker search results 6552: Fixed AR-1572: Export of ML-enabled documents can now be imported 6553: Removed tabs 6554: Fixed handling of SC_NOT_FOUND message 6555: Fixed AR-1627: Removed ability to flush transaction resources on demand git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@6744 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../AuthenticationWebService.java | 42 +++++++++++++++---- .../java/web-services-application-context.xml | 3 ++ 2 files changed, 36 insertions(+), 9 deletions(-) diff --git a/source/java/org/alfresco/repo/webservice/authentication/AuthenticationWebService.java b/source/java/org/alfresco/repo/webservice/authentication/AuthenticationWebService.java index 9e0b7408c2..a5aff690e0 100644 --- a/source/java/org/alfresco/repo/webservice/authentication/AuthenticationWebService.java +++ b/source/java/org/alfresco/repo/webservice/authentication/AuthenticationWebService.java @@ -26,9 +26,12 @@ package org.alfresco.repo.webservice.authentication; import java.rmi.RemoteException; +import org.alfresco.repo.security.authentication.AuthenticationComponent; import org.alfresco.repo.security.authentication.AuthenticationException; +import org.alfresco.repo.transaction.RetryingTransactionHelper.RetryingTransactionCallback; import org.alfresco.repo.webservice.Utils; import org.alfresco.service.cmr.security.AuthenticationService; +import org.apache.axis.MessageContext; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -44,6 +47,8 @@ public class AuthenticationWebService implements AuthenticationServiceSoapPort private static Log logger = LogFactory.getLog(AuthenticationWebService.class); private AuthenticationService authenticationService; + + private AuthenticationComponent authenticationComponent; /** * Sets the AuthenticationService instance to use @@ -55,6 +60,16 @@ public class AuthenticationWebService implements AuthenticationServiceSoapPort { this.authenticationService = authenticationSvc; } + + /** + * Set the atuthentication component + * + * @param authenticationComponent + */ + public void setAuthenticationComponent(AuthenticationComponent authenticationComponent) + { + this.authenticationComponent = authenticationComponent; + } /** * @see org.alfresco.repo.webservice.authentication.AuthenticationServiceSoapPort#startSession(java.lang.String, @@ -90,24 +105,33 @@ public class AuthenticationWebService implements AuthenticationServiceSoapPort /** * @see org.alfresco.repo.webservice.authentication.AuthenticationServiceSoapPort#endSession() */ - public void endSession(String ticket) throws RemoteException, AuthenticationFault + public void endSession(final String ticket) throws RemoteException, AuthenticationFault { try { if (ticket != null) { - this.authenticationService.validate(ticket); - this.authenticationService.invalidateTicket(ticket); - this.authenticationService.clearCurrentSecurityContext(); - - if (logger.isDebugEnabled()) + RetryingTransactionCallback callback = new RetryingTransactionCallback() { - logger.debug("Session ended for ticket '" + ticket + "'"); - } + public Object execute() throws Throwable + { + AuthenticationWebService.this.authenticationComponent.setSystemUserAsCurrentUser(); + AuthenticationWebService.this.authenticationService.invalidateTicket(ticket); + AuthenticationWebService.this.authenticationService.clearCurrentSecurityContext(); + + if (logger.isDebugEnabled()) + { + logger.debug("Session ended for ticket '" + ticket + "'"); + } + + return null; + } + }; + Utils.getRetryingTransactionHelper(MessageContext.getCurrentContext()).doInTransaction(callback); } } catch (Throwable e) - { + { throw new AuthenticationFault(0, e.getMessage()); } } diff --git a/source/java/web-services-application-context.xml b/source/java/web-services-application-context.xml index b27e8d565c..d98f268ddb 100644 --- a/source/java/web-services-application-context.xml +++ b/source/java/web-services-application-context.xml @@ -38,6 +38,9 @@ + + +