Class TokenAuthenticationInvocationHandler

    • Constructor Detail

      • TokenAuthenticationInvocationHandler

        public TokenAuthenticationInvocationHandler()
    • Method Detail

      • makeAuthenticatingProxy

        public static Object makeAuthenticatingProxy​(Object rpcService,
                                                     Class publishedInterface)
      • invokeAuthenticatedMethod

        protected Object invokeAuthenticatedMethod​(ConfluenceUser user,
                                                   Method method,
                                                   Object[] args)
                                            throws Throwable
        Sets the authenticated user to the provided user before calling the method and restores the original user afterwards.
        Parameters:
        user - the user who is executing the method
        method - the method to execute
        args - any arguments to the method
        Returns:
        the result of executing the method
        Throws:
        Throwable - rethrows any exception thrown by the invoked method
        See Also:
        AuthenticatedUserThreadLocal
      • getAuthenticatedUser

        protected ConfluenceUser getAuthenticatedUser​(String token)
                                               throws InvalidSessionException,
                                                      NotPermittedException

        Determines which user is performing the request. It attempts, in order:

        1. a non-anonymous user registered against provided token, if it is not blank
        2. a non-anonymous user authenticated by the normal security filters
        3. finally, the default is the anonymous user.

        Returns the authenticated user.

        Parameters:
        token - the authentication token
        Returns:
        an authenticated user
        Throws:
        InvalidSessionException - if the provided token is invalid
        NotPermittedException - if we need to fall back to the anonymous user, but anonymous access to the remote API is disabled
      • setWrappedObject

        public void setWrappedObject​(Object wrappedObject)
      • setTokenAuthenticationManager

        public void setTokenAuthenticationManager​(TokenAuthenticationManager tokenAuthenticationManager)
      • setEventPublisher

        public void setEventPublisher​(com.atlassian.event.api.EventPublisher eventPublisher)