WebProxy Portlet Road Map
Dedicated to gathering requirements and general design for a refactoring of the web proxy portlet.
Requirements
- Authentication
- URL to make auth request (GET|POST|PUT|...)
- NTLM, Basic, Form
- Session Timeout (allow re-auth after certain time idle or time since auth)
- Extra fields for form
- Which fields should the user be prompted for and if they are sensitive or not
- Which prompted fields can be saved by user request or will be saved
- EDIT mode allows modifying saved fields
- URL Re-Writing
- RegEx to define which URLs are proxied
- RegEx to define which proxied URLs are binary and which are html (others are auto-determined)
- Auto-determine html vs binary proxied URLs via content/type via HTTP HEAD
- RegEx to define which URLs are proxied with an fname link
- Caching
- Cache content from remote site (pre processing)
- Cache post processed content
- Use expired on remote content failure
- How frequently a failed site should be retried
- Session Management
- Store cookies (follow cookie rules|store all cookies)
- Allow for explicit cookies to be defined
- Allow for explicit headers to be defined
- Navigation Bar
- Location (top|bottom)
- Options; back,forward,home,refresh,edit fields
- HTTP Client
- Connection Timeout
- Read Timeout
- Max Redirect Count
- Clipping
- Basic path based clipping (ex: /html/body/div3/span), allow multiple paths
- Comment based clipping, allow multiple comments
- HTML parsing options
- Specific to parser used
- Should generate SAX events but not 'fix' the content by default
- Misc
- URL Security
- RegEx checking validates proxied URLs match configured proxy RegExs
- Page URL tracking tracks URLs that have been rendered as proxiable
- Content processing should be stream based (content is never buffered other than for caching)
- HTTP Client should return the remote content as a stream
- HTML to SAX event parsing should be stream based and not validate the content stream
- URL re-writing, clipping, caching should all be SAX event or stream based
- Shared Code
- Many operations need to be available both in a portlet and servlet so work needs to be done to avoid code duplication
- URL Security
Open Jira Issues