This invocation dispatcher handles incoming remote method invocations initiated by proxies using {@link BasicInvocationHandler}, and expects that a dispatched request, encapsulated in the {@link InboundRequest}object passed to the {@link #dispatch dispatch} method, was sent usingthe protocol implemented by BasicInvocationHandler
.
A basic permission-based preinvocation access control mechanism is provided. A permission class can be specified when an invocation dispatcher is constructed; instances of that class are constructed using either a {@link Method} instance or a String
representingthe remote method being invoked. The class can have a constructor with a Method
parameter to permit an arbitrary mapping to the actual permission target name and actions; otherwise, the class must have a constructor taking the fully qualified name of the remote method as a String
. For each incoming call on a remote object, the client subject must be granted the associated permission for that remote method. (Access control for an individual remote method can effectively be disabled by granting the associated permission to all protection domains.) A simple subclass of {@link AccessPermission} is typicallyused as the permission class.
Other access control mechanisms can be implemented by subclassing this class and overriding the various protected methods.
This class is designed to support dispatching remote calls to the {@link ProxyTrust#getProxyVerifier ProxyTrust.getProxyVerifier} methodto the local {@link ServerProxyTrust#getProxyVerifier ServerProxyTrust.getProxyVerifier} method of a remote object, to allow aremote object to be exported in such a way that its proxy can be directly trusted by clients as well as in such a way that its proxy can be trusted by clients using {@link ProxyTrustVerifier}. @author Sun Microsystems, Inc. @see BasicInvocationHandler @since 2.0 @com.sun.jini.impl This implementation uses the following system property:
com.sun.jini.jeri.server.suppressStackTrace
true
, removes server-side stack traces before marshalling an exception thrown as a result of a remote call. The default value is false
. This implementation uses the {@link Logger} namednet.jini.jeri.BasicInvocationDispatcher
to log information at the following levels:
Level | Description |
---|---|
{@link Levels#FAILED FAILED} | exception that caused a requestto be aborted |
{@link Levels#FAILED FAILED} | exceptional result of aremote call |
{@link Level#FINE FINE} | incoming remote call |
{@link Level#FINE FINE} | successful return of remote call |
{@link Level#FINEST FINEST} | more detailed information onthe above (for example, actual argument and return values) |
|
|
|
|