mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-09-17 14:21:39 +00:00
.externalToolBuilders
config
source
cpp
java
org
alfresco
example
filesys
jcr
linkvalidation
model
repo
action
admin
attributes
audit
avm
cache
clt
coci
configuration
content
copy
deploy
descriptor
dictionary
domain
exporter
forum
importer
jscript
lock
model
module
node
ownable
policy
processor
remote
AVMRemoteImpl.java
AVMRemoteInputStream.java
AVMRemoteOutputStream.java
AVMSyncServiceRemote.java
AttributeServiceRemote.java
ClientTicketHolder.java
ClientTicketHolderGlobal.java
ClientTicketHolderThread.java
ReauthenticatingAdvice.java
RepoRemoteImpl.java
RepoRemoteInputStream.java
RepoRemoteOutputStream.java
RepoRemoteService.java
RepoRemoteTransportService.java
rule
search
security
service
template
transaction
version
workflow
sandbox
service
tools
util
apache
queryRegister.dtd
meta-inf
test-resources
web
.classpath
.project
build.xml
5456: (From WCM_DEPLOY) There were many pure conflicts on license headers, one conflict due to CR-LF and some other smaller issues to resolve: ----------------------------------------- Resolved (line endings not cr-lf): root\projects\repository\config\alfresco\public-services-context.xml Reverted: root\projects\web-client\source\web\images\icons\ajax_anim.gif Reverted or Resolved (License text conflicts): svn revert root\projects\jndi-client\source\java\org\alfresco\jndi\JndiTest.java svn resolved root\projects\jndi-client\source\java\org\alfresco\jndi\AVMFileDirContext.java svn revert root\projects\jndi-client\source\java\org\alfresco\jndi\AVMBulkLoader.java svn revert root\projects\jndi-client\source\java\org\alfresco\filter\CacheControlFilter.java svn revert root\projects\jndi-client\source\java\org\alfresco\filter\CacheControlFilterInfoBean.java svn revert -R root\projects\catalina-virtual\source\java\org\alfresco\mbeans svn revert root\projects\catalina-virtual\source\java\org\alfresco\catalina\context\AVMStandardContext.java svn revert root\projects\catalina-virtual\source\java\org\alfresco\catalina\loader\AVMWebappClassLoader.java svn revert root\projects\catalina-virtual\source\java\org\alfresco\catalina\loader\AVMWebappLoader.java svn revert root\projects\catalina-virtual\source\java\org\alfresco\catalina\host\AVMResourceBinding.java svn resolved root\projects\catalina-virtual\source\java\org\alfresco\catalina\host\AVMHostConfig.java - why the change in method naming convention? svn resolved root\projects\catalina-virtual\source\java\org\alfresco\catalina\host\AVMHost.java svn revert root\projects\catalina-virtual\source\java\org\alfresco\catalina\host\DefaultAVMResourceBinding.java svn revert root\projects\catalina-virtual\source\java\org\alfresco\catalina\valve\AVMUrlValveTest.java svn resolved root\projects\catalina-virtual\source\java\org\alfresco\catalina\valve\AVMUrlValve.java svn revert root\projects\catalina-virtual\source\java\org\alfresco\catalina\host\AVMHostMatch.java Modified: root\projects\web-client\source\java\org\alfresco\web\ui\wcm\component\UIDeployWebsite.java (Kevin to check line 330) git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@5484 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
132 lines
3.1 KiB
Java
132 lines
3.1 KiB
Java
/**
|
|
*
|
|
*/
|
|
package org.alfresco.repo.remote;
|
|
|
|
import org.alfresco.repo.security.authentication.AuthenticationException;
|
|
import org.alfresco.service.cmr.security.AuthenticationService;
|
|
import org.aopalliance.intercept.MethodInterceptor;
|
|
import org.aopalliance.intercept.MethodInvocation;
|
|
import org.springframework.aop.framework.ReflectiveMethodInvocation;
|
|
|
|
/**
|
|
* This is an interceptor that continuosly tries to reauthenticate when
|
|
* a method call results in an AuthenticationException.
|
|
* @author britt
|
|
*/
|
|
public class ReauthenticatingAdvice implements MethodInterceptor
|
|
{
|
|
/**
|
|
* The authentication service reference.
|
|
*/
|
|
private AuthenticationService fAuthService;
|
|
|
|
/**
|
|
* The ticket holder.
|
|
*/
|
|
private ClientTicketHolder fTicketHolder;
|
|
|
|
/**
|
|
* The user name.
|
|
*/
|
|
private String fUser;
|
|
|
|
/**
|
|
* The user's password.
|
|
*/
|
|
private String fPassword;
|
|
|
|
/**
|
|
* The time in milliseconds to wait between attempts to reauthenticate.
|
|
*/
|
|
private long fRetryInterval;
|
|
|
|
/**
|
|
* Default constructor.
|
|
*/
|
|
public ReauthenticatingAdvice()
|
|
{
|
|
super();
|
|
}
|
|
|
|
/**
|
|
* Setter.
|
|
*/
|
|
public void setAuthenticationService(AuthenticationService service)
|
|
{
|
|
fAuthService = service;
|
|
}
|
|
|
|
/**
|
|
* Setter.
|
|
*/
|
|
public void setClientTicketHolder(ClientTicketHolder ticketHolder)
|
|
{
|
|
fTicketHolder = ticketHolder;
|
|
}
|
|
|
|
/**
|
|
* Setter.
|
|
*/
|
|
public void setUser(String user)
|
|
{
|
|
fUser = user;
|
|
}
|
|
|
|
/**
|
|
* Setter.
|
|
*/
|
|
public void setPassword(String password)
|
|
{
|
|
fPassword = password;
|
|
}
|
|
|
|
/**
|
|
* Setter.
|
|
*/
|
|
public void setRetryInterval(long retryInterval)
|
|
{
|
|
fRetryInterval = retryInterval;
|
|
}
|
|
|
|
/* (non-Javadoc)
|
|
* @see org.aopalliance.intercept.MethodInterceptor#invoke(org.aopalliance.intercept.MethodInvocation)
|
|
*/
|
|
public Object invoke(MethodInvocation mi) throws Throwable
|
|
{
|
|
while (true)
|
|
{
|
|
try
|
|
{
|
|
MethodInvocation clone = ((ReflectiveMethodInvocation)mi).invocableClone();
|
|
return clone.proceed();
|
|
}
|
|
catch (AuthenticationException ae)
|
|
{
|
|
// Sleep for an interval and try again.
|
|
try
|
|
{
|
|
Thread.sleep(fRetryInterval);
|
|
}
|
|
catch (InterruptedException ie)
|
|
{
|
|
// Do nothing.
|
|
}
|
|
try
|
|
{
|
|
// Reauthenticate.
|
|
fAuthService.authenticate(fUser, fPassword.toCharArray());
|
|
String ticket = fAuthService.getCurrentTicket();
|
|
fTicketHolder.setTicket(ticket);
|
|
// Modify the ticket argument.
|
|
mi.getArguments()[0] = ticket;
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
// Do nothing.
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|