public class ContextPropagatingRemoteInvocation
extends org.springframework.remoting.support.RemoteInvocation
RemoteInvocation
that is passed from the client to the server.
The principal and credentials information will be extracted from the current security context and passed to the server as part of the invocation object.
To avoid potential serialization-based attacks, this implementation interprets the
values as String
s and creates a UsernamePasswordAuthenticationToken
on
the server side to hold them. If a different token type is required you can override
the createAuthenticationRequest
method.
Constructor and Description |
---|
ContextPropagatingRemoteInvocation(org.aopalliance.intercept.MethodInvocation methodInvocation)
Constructs the object, storing the principal and credentials extracted from the
client-side security context.
|
Modifier and Type | Method and Description |
---|---|
protected Authentication |
createAuthenticationRequest(java.lang.String principal,
java.lang.String credentials)
Creates the server-side authentication request object.
|
java.lang.Object |
invoke(java.lang.Object targetObject)
Invoked on the server-side.
|
public ContextPropagatingRemoteInvocation(org.aopalliance.intercept.MethodInvocation methodInvocation)
methodInvocation
- the method to invokepublic java.lang.Object invoke(java.lang.Object targetObject) throws java.lang.NoSuchMethodException, java.lang.IllegalAccessException, java.lang.reflect.InvocationTargetException
The transmitted principal and credentials will be used to create an unauthenticated
Authentication
instance for processing by the
AuthenticationManager
.
invoke
in class org.springframework.remoting.support.RemoteInvocation
targetObject
- the target object to apply the invocation tojava.lang.NoSuchMethodException
- if the method name could not be resolvedjava.lang.IllegalAccessException
- if the method could not be accessedjava.lang.reflect.InvocationTargetException
- if the method invocation resulted in an exceptionprotected Authentication createAuthenticationRequest(java.lang.String principal, java.lang.String credentials)