Hi, users,

We're trying to avoid wicket specific stuff showing up in our URL bar. The
client thinks that when the URL looks something like this:
login/wicket:interface/:2:componentId:loginForm::IFormSubmitListener:: , it
kinda sucks and looks unprofessional. I find it hard to disagree.. I'd
rather have the URL look prettier.

For most of the pages this has been no problem for us, we mount bookmarkable
URLs for them and all is great.

However, for the login page, we've been through several iterations:

1. We did the login form by AJAX, using an AjaxSubmitLink. This meant that
the wicket-specific URL was still in the html source, but was invisible to
the user. Issue: despite the fact that it's in a stateless form, AJAX in
wicket seems to be stateful no matter what. This meant that the login page
could expire, which was no good.

2. I changed the AjaxSubmitLink to a SubmitLink. This succeeded in making
our login stateless. However, the wickety URL that was hidden in the AJAX
request now became visible to the user on a login failure.

3. I tried setting up the CryptedUrlWebRequestCodingStrategy. This
successfully managed to encrypt the resulting wicket specific URL to
?x=a325u0234usdajfasdf, but the thing is, the login page now started
expiring again. The reason is that CryptedUrlWebRequestCodingStrategy uses a
key stored in the session, which has the effect of making all stateless
links stateful again.

Does anybody have a good way for a stateless login form that doesn't show
wickety stuff in the URL bar? Thanks in advance for any help.

Neil

Reply via email to