Hi,

I started using Wicket rather recently. As part of our security considerations, we do not want immediately expose the underlying framework(s) we are using, so we went ahead with URL encryption. We used standard approach as described in examples:

@Override
protected IRequestCycleProcessor newRequestCycleProcessor() {

return new WebRequestCycleProcessor(){
  protected IRequestCodingStrategy newRequestCodingStrategy(){
return new CryptedUrlWebRequestCodingStrategy(new WebRequestCodingStrategy());
       }
};

}


Unfortunately I later discovered that this approach doesn't encrypt resource URLs, e.g. from:
CSSPackageResource.getHeaderContribution(..);
or
link.add(new Image("logoImage"));

What's worse such resource references include FQN of related classes.


After some investigation I found out that the problem is that CryptedUrlWebRequestCodingStrategy only encrypts arguments string of the URL and WebRequestCodingStrategy encodes resource references as path rather than as argument.

I was able to get around this by subclassing WebRequestCodingStrategy and overriding methods:
addResourceParameters(..);
encode(RequestCycle requestCycle, ISharedResourceRequestTarget requestTarget);
to use arguments rather than path as resource reference.


However I'm unsure as to original reasoning behind original CryptedUrlWebRequestCodingStrategy and WebRequestCodingStrategy. Is the resource behaviour simply a bug? Or is it there for some reason that is going to bite me down the road if I use my own 'fix'?


Best regards,
Sergey

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org

Reply via email to