static final class FiddlerProxy.ConstrainableFiddlerProxy extends FiddlerProxy implements RemoteMethodControl
FiddlerProxy
.
When a client obtains an instance of this proxy class, the client
should not attempt to use the proxy until the client is assured
that the proxy can be trusted. In addition to implementing the
methods and mechanisms required by RemoteMethodControl
,
this class - in conjunction with the service's
ProxyVerifier
class, helps provide a mechanism
for verifying trust in the proxy on behalf of a client.
In order to verify that an instance of this class is trusted,
trust must be verified in all subsidiary objects (contained in that
instance) through which the client ultimately makes calls (local or
remote). With respect to this class, the server
field
is a proxy object through which the client makes remote calls to the
service's backend. Therefore, trust in that object must be
verified. Additionally, this class also contains a field of type
Uuid
(proxyID
which should be
tested for trust. Consider the following diagram:
FiddlerProxy { Fiddler server Uuid proxyID }//end FiddlerProxy
Thus, in order to verify that an instance of this class is trusted, trust must be verified in the following objects from the diagram above:
readObject
method of this class. Part of
trust verification is performed in the readObject
method,
and part is performed when the client prepares the proxy. Thus, this
class' participation in the trust verification process can be
summarized as follows:
FiddlerProxy.ConstrainableFiddlerProxy
Modifier and Type | Field and Description |
---|---|
private MethodConstraints |
methodConstraints
Client constraints placed on this proxy (may be
null ). |
private static Method[] |
methodMapArray |
(package private) static long |
serialVersionUID |
proxyID, server
Modifier | Constructor and Description |
---|---|
private |
FiddlerProxy.ConstrainableFiddlerProxy(Fiddler server,
Uuid proxyID,
MethodConstraints methodConstraints)
Constructs a new
ConstrainableFiddlerProxy instance. |
Modifier and Type | Method and Description |
---|---|
private static Fiddler |
constrainServer(Fiddler server,
MethodConstraints constraints)
Returns a copy of the given server proxy having the client method
constraints that result after the specified method mapping is
applied to the given client method constraints.
|
MethodConstraints |
getConstraints()
Returns the client constraints placed on the current instance
of this proxy class (
ConstrainableFiddlerProxy ). |
private ProxyTrustIterator |
getProxyTrustIterator()
Returns a proxy trust iterator that is used in
ProxyTrustVerifier to retrieve this object's
trust verifier. |
private void |
readObject(ObjectInputStream s)
Performs various functions related to the trust verification
process for the current instance of this proxy class, as
detailed in the description for this class.
|
RemoteMethodControl |
setConstraints(MethodConstraints constraints)
Returns a new copy of this proxy class
(
ConstrainableFiddlerProxy ) with its client
constraints set to the specified constraints. |
createServiceProxy, equals, getAdmin, getReferentUuid, hashCode, register
static final long serialVersionUID
private static final Method[] methodMapArray
private MethodConstraints methodConstraints
null
).private FiddlerProxy.ConstrainableFiddlerProxy(Fiddler server, Uuid proxyID, MethodConstraints methodConstraints)
ConstrainableFiddlerProxy
instance.
For a description of all but the methodConstraints
argument (provided below), refer to the description for the
constructor of this class' super class.
methodConstraints
- the client method constraints to place on
this proxy (may be null
).private static Fiddler constrainServer(Fiddler server, MethodConstraints constraints)
public RemoteMethodControl setConstraints(MethodConstraints constraints)
ConstrainableFiddlerProxy
) with its client
constraints set to the specified constraints. A null
value is interpreted as mapping all methods to empty constraints.setConstraints
in interface RemoteMethodControl
constraints
- client constraints, or null
RemoteMethodControl.getConstraints()
public MethodConstraints getConstraints()
ConstrainableFiddlerProxy
).
The value returned by this method can be null
,
which is interpreted as mapping all methods to empty constraints.getConstraints
in interface RemoteMethodControl
null
RemoteMethodControl.setConstraints(net.jini.core.constraint.MethodConstraints)
private ProxyTrustIterator getProxyTrustIterator()
ProxyTrustVerifier
to retrieve this object's
trust verifier.private void readObject(ObjectInputStream s) throws IOException, ClassNotFoundException
InvalidObjectException
- if any of the
requirements for trust verification (as detailed in the
class description) are not satisfied.IOException
ClassNotFoundException
Copyright 2007-2013, multiple authors.
Licensed under the Apache License, Version 2.0, see the NOTICE file for attributions.