Details
-
New Feature
-
Status: Closed
-
Minor
-
Resolution: Fixed
-
2.1.3
-
None
Description
Some users don't really like the cryptic navigational state parameter in the browser url.
When the navigational state is fully maintained in the session (portlet mode, window state and render parameters), there is an easy solution to get rid of the navigational state in the browser url by sending a client side redirect without the navigation state in the url after the state is synchronized with the session.
I've created a valve for this purpose: CleanPathInfoEncodedNavStateFromPortalURLValve.
This valve will clean encoded navstate from the browser url by sending a client side redirect to the same url with the navstate removed.
This valve will only do this:
- on a GET Render request (not for Resource or Action requests)
- the request is not served by the Desktop
- the navstate is encoded as PathInfo
- all the navstate is maintained in the session (portlet mode, window state and render parameters)
This valve needs to be added to the portal pipeline after the ContainerValve to ensure navstate is properly synchronized with the session.
In the default pipeline.xml this valve won't be enabled, but defined commented out.
Caveats:
- bookmarking browser url will no longer retain nav state, but with SessionFullNavigationState this wasn't really reliable anyway.
- back button history is no longer maintained by browsers for GET render urls, somewhat similar to Ajax based requests (e.g. Desktop)