|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.apache.wicket.request.mapper.CryptoMapper
public class CryptoMapper
Request mapper that encrypts urls generated by another mapper. The original URL (both segments and parameters) is encrypted and is represented as URL segment. To be able to handle relative URLs for images in .css file the same amount of URL segments that the original URL had are appended to the encrypted URL. Each segment has a precise 5 character value, calculated using a checksum. This helps in calculating the relative distance from the original URL. When a URL is returned by the browser, we iterate through these checksummed placeholder URL segments. If the segment matches the expected checksum, then the segment it deemed to be the corresponding segment in the encrypted URL. If the segment does not match the expected checksum, then the segment is deemed a plain text sibling of the corresponding segment in the encrypted URL, and all subsequent segments are considered plain text children of the current segment.
Constructor Summary | |
---|---|
CryptoMapper(IRequestMapper wrappedMapper,
Application application)
Construct. |
|
CryptoMapper(IRequestMapper wrappedMapper,
IProvider<ICrypt> cryptProvider)
Construct. |
Method Summary | |
---|---|
int |
getCompatibilityScore(Request request)
Returns the score representing how compatible this request mapper is to processing the given request. |
Url |
mapHandler(IRequestHandler requestHandler)
Returns the Url for given IRequestHandler or null if the encoder
does not recognize the request handler. |
IRequestHandler |
mapRequest(Request request)
Returns IRequestHandler for the request or null if the encoder does not
recognize the URL. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public CryptoMapper(IRequestMapper wrappedMapper, Application application)
wrappedMapper
- the non-crypted request mapperapplication
- the current applicationpublic CryptoMapper(IRequestMapper wrappedMapper, IProvider<ICrypt> cryptProvider)
wrappedMapper
- the non-crypted request mappercryptProvider
- the custom crypt providerMethod Detail |
---|
public int getCompatibilityScore(Request request)
IRequestMapper
A good criteria for calculating the score is the number of matched url segments. For example
when there are two encoders for mounted page, one mapped to /foo
another to
/foo/bar
and the incoming request URL is /foo/bar/baz, the encoder
mapped to /foo/bar
will handle the request first as it has matching segments
count of 2 while the first one has only matching segments count of 1.
Note that the method can return value greater then zero even if the encoder can not decode the request.
getCompatibilityScore
in interface IRequestMapper
public Url mapHandler(IRequestHandler requestHandler)
IRequestMapper
Url
for given IRequestHandler
or null
if the encoder
does not recognize the request handler.
mapHandler
in interface IRequestMapper
null
.public IRequestHandler mapRequest(Request request)
IRequestMapper
IRequestHandler
for the request or null
if the encoder does not
recognize the URL.
mapRequest
in interface IRequestMapper
request
- provides access to request data (i.e. Url and Parameters)
null
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |