core/src/main/java/org/springframework/security/access/intercept/AbstractSecurityInterceptor.java
protected void finallyInvocation(InterceptorStatusToken token) {
		if (token != null && token.isContextHolderRefreshRequired()) {
			if (logger.isDebugEnabled()) {
				logger.debug("Reverting to original Authentication: "
						+ token.getSecurityContext().getAuthentication());
			}

			SecurityContextHolder.setContext(token.getSecurityContext());
		}
	}
protected void finallyInvocation(InterceptorStatusToken token) {
		if (token != null && token.isContextHolderRefreshRequired()) {
			if (logger.isDebugEnabled()) {
				logger.debug("Reverting to original Authentication: "
						+ token.getSecurityContext().getAuthentication());
			}

			SecurityContextHolder.setContext(token.getSecurityContext());
		}
	}
protected void finallyInvocation ( InterceptorStatusToken token ) { if ( token != null && token . isContextHolderRefreshRequired ( ) ) { if ( logger . isDebugEnabled ( ) ) { logger . debug ( "Reverting to original Authentication: " + token . getSecurityContext ( ) . getAuthentication ( ) ) ; } SecurityContextHolder . setContext ( token . getSecurityContext ( ) ) ; } }
Cleans up the work of the <tt>AbstractSecurityInterceptor</tt> after the secure
object invocation has been completed. This method should be invoked after the
secure object invocation and before afterInvocation regardless of the secure object
invocation returning successfully (i.e. it should be done in a finally block).

@param token as returned by the {@link #beforeInvocation(Object)} method
Cleans up the work of the <tt > AbstractSecurityInterceptor< / tt > after the secure object invocation has been completed . This method should be invoked after the secure object invocation and before afterInvocation regardless of the secure object invocation returning successfully ( i . e . it should be done in a finally block ) .