[12:47:42 CDT(-0500)] * Naenyn stares blankly at drewwills and athena
[12:48:43 CDT(-0500)] <athena> hey folks
[12:48:57 CDT(-0500)] <athena> so it sounds like there's interest in a conversation about the web proxy portlet?
[12:49:06 CDT(-0500)] <Naenyn> There is!
[12:49:19 CDT(-0500)] <athena> for background, this conversation is about the new version
[12:49:30 CDT(-0500)] <athena> which has some relation to the old version and should eventually have similar features
[12:49:34 CDT(-0500)] <athena> but may have a different architecture
[12:50:01 CDT(-0500)] <athena> to date, there's an IDocumentFilter interface, which allows for filtering of the proxied document - things like clipping, adjusting URLs to be proxied, etc.
[12:50:17 CDT(-0500)] <athena> that filter is specifically designed to adjust content as necessary
[12:50:45 CDT(-0500)] <athena> Naenyn had brought up some use cases that are covered by the previous incarnation of the portlet - specifically adjusting the requested URL to do things like include user attributes
[12:51:25 CDT(-0500)] <athena> my thought is that we probably want a hook into the proxying process - perhaps one that's specific to the HTTP connection use case
[12:51:36 CDT(-0500)] <athena> so that it can adjust URLs, but also potentially insert headers, set basic authentication, etc.
[12:51:51 CDT(-0500)] <drewwills> yes that sounds right
[12:51:52 CDT(-0500)] <EricDalquist> so the old version essentially filtered the portlet preferences
[12:52:03 CDT(-0500)] <EricDalquist> and replaced $ with the user attribute foo
[12:52:11 CDT(-0500)] <athena> yeah
[12:52:18 CDT(-0500)] <athena> i think we have a couple pre-request use cases
[12:52:22 CDT(-0500)] <athena> 1. filter the base URL
[12:52:29 CDT(-0500)] <drewwills> yes, i discovered that for SCSU recently
[12:52:58 CDT(-0500)] <athena> 2. add authentication (maybe adding something like a CAS ticket, maybe adding basic auth, maybe doing some form thing)
[12:53:08 CDT(-0500)] <athena> 3. add headers to the request
[12:53:19 CDT(-0500)] <athena> a bunch of these are specific to the first request only, which is perhaps something to think about
[12:53:50 CDT(-0500)] <EricDalquist> basic auth is pretty important
[12:53:54 CDT(-0500)] <athena> yeah
[12:53:55 CDT(-0500)] <EricDalquist> The form auth is neat
[12:54:01 CDT(-0500)] <EricDalquist> but I personally haven't seen it used
[12:54:04 CDT(-0500)] <EricDalquist> not sure if others have
[12:54:07 CDT(-0500)] <athena> ok, that's good to know
[12:54:11 CDT(-0500)] <athena> so maybe we don't need to prioritize that
[12:54:14 CDT(-0500)] <EricDalquist> yeah
[12:54:16 CDT(-0500)] <athena> CAS is used pretty broadly too
[12:54:20 CDT(-0500)] <EricDalquist> I'd say cas/shib proxy
[12:54:22 CDT(-0500)] <athena> though it turns out it's broken in the current impl
[12:54:22 CDT(-0500)] <EricDalquist> and basic
[12:54:26 CDT(-0500)] <EricDalquist> and headers
[12:54:32 CDT(-0500)] <EricDalquist> are all high priority
[12:54:35 CDT(-0500)] <athena> yeah
[12:54:45 CDT(-0500)] <athena> ok, so we need something that can cover all of those use cases
[12:54:56 CDT(-0500)] <drewwills> proxy cas broken in the current impl?
[12:54:58 CDT(-0500)] <athena> yes
[12:55:06 CDT(-0500)] <drewwills> i thought I had that working for SCSU
[12:55:08 CDT(-0500)] <athena> it works on the first request and subsequent proxied links
[12:55:36 CDT(-0500)] <athena> but if you leave the portlet and come back before the session times out, the portlet will re-request the base URL with the CAS proxy ticket it originally used
[12:55:53 CDT(-0500)] <athena> if it's going to go through CAS proxy again, it needs to use a new ticket
[12:55:59 CDT(-0500)] <athena> that just came up with brooklyn this week
[12:56:15 CDT(-0500)] <drewwills> ok, so there's an issue with it
[12:57:04 CDT(-0500)] <Naenyn> drewwills: weren't you also suggesting that the preprocessing be moved to within the scope of the request..?
[12:57:22 CDT(-0500)] <Naenyn> assuming I'm understanding everything you said at my desk earlier =]
[12:58:17 CDT(-0500)] <drewwills> "within the scope?" – when we spoke earlier, i suggested that "interceptors" or "processors" might want to manipulate the request out of httpclient
[12:58:51 CDT(-0500)] <athena> the old version had both a PreInterceptor and PostInterceptor interface, and we might want to at least use those as a starting point
[12:59:54 CDT(-0500)] <drewwills> in this respect I think the earlier portlet wasn't off the mark... we provide an interface that allows concrete implementations to make arbitrary adjustments to the httpclient req after it's constructed, but before it executes
[12:59:55 CDT(-0500)] <athena> we also likely need an interface for providing the HttpClient instance
[13:00:47 CDT(-0500)] <athena> yeah, i think those previous interfaces were pretty close to what we need
[13:01:11 CDT(-0500)] <athena> though the implementation needs to be changed so that we can use httpclient 4, which is signifcantly different
[13:01:16 CDT(-0500)] <athena> so we'l have to see how that affects things
[13:01:30 CDT(-0500)] <Naenyn> Then in that case, I suppose what I wrote is just a temporary fix for my needs until a better implementation can be created..
[13:01:33 CDT(-0500)] <drewwills> but in the new version maybe we provied better out-of-the-box examples and a more intuitive way to configure them