org.apache.wicket.request.mapper
Class CryptoMapper

java.lang.Object
  extended by org.apache.wicket.request.mapper.CryptoMapper
All Implemented Interfaces:
IRequestMapper

public class CryptoMapper
extends Object
implements IRequestMapper

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.

Author:
igor.vaynberg, Jesse Long, svenmeier

Constructor Summary
CryptoMapper(IRequestMapper wrappedMapper, Application application)
          Construct.
CryptoMapper(IRequestMapper wrappedMapper, IProvider<ICrypt> cryptProvider)
          Construct.
 
Method Summary
 int getCompatibilityScore(Request request)
           
protected  ICrypt getCrypt()
           
protected  IRequestMapper getWrappedMapper()
           
 Url mapHandler(IRequestHandler requestHandler)
           
 IRequestHandler mapRequest(Request request)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CryptoMapper

public CryptoMapper(IRequestMapper wrappedMapper,
                    Application application)
Construct.

Parameters:
wrappedMapper - the non-crypted request mapper
application - the current application

CryptoMapper

public CryptoMapper(IRequestMapper wrappedMapper,
                    IProvider<ICrypt> cryptProvider)
Construct.

Parameters:
wrappedMapper - the non-crypted request mapper
cryptProvider - the custom crypt provider
Method Detail

getCompatibilityScore

public int getCompatibilityScore(Request request)
Specified by:
getCompatibilityScore in interface IRequestMapper

mapHandler

public Url mapHandler(IRequestHandler requestHandler)
Specified by:
mapHandler in interface IRequestMapper

mapRequest

public IRequestHandler mapRequest(Request request)
Specified by:
mapRequest in interface IRequestMapper

getCrypt

protected final ICrypt getCrypt()
Returns:
the ICrypt implementation that may be used to encrypt/decrypt Url's segments and/or query string

getWrappedMapper

protected final IRequestMapper getWrappedMapper()
Returns:
the wrapped root request mapper


Copyright © 2006–2016 Apache Software Foundation. All rights reserved.