<div dir="ltr"><div class="gmail_quote"><div dir="ltr">On Thu, Feb 4, 2016 at 10:21 AM Cantor, Scott <<a href="mailto:cantor.2@osu.edu">cantor.2@osu.edu</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">This is a Jetty specific bug, I take it?</blockquote><div><br></div><div>No. Jetty actually provides a flag to disable the servlet-specified behavior.</div><div><br></div><div>The root problem is that many Spring components that compute redirects (RedirectView, externalRedirect SpEL) call HttpServletResponse#encodeRedirectUrl [1] unconditionally. Here's where it's biting us in the CAS login flow:</div><div><br></div><div><div> <end-state id="RedirectToService" view="externalRedirect:#{flowScope.redirectUrl}"></div><div> <on-entry></div><div> <evaluate expression="PopulateAuditContext" /></div><div> <evaluate expression="WriteAuditLog" /></div><div> </on-entry></div><div> </end-state></div></div><div><br></div><div>I initially argued that they should try to infer whether it's a "remote" system and suppress that behavior, but I warmed up to "it's hard to determine" and now I think they need additional flags to allow the programmer to decide what to do. If they added those controls, we could leverage them in the CAS flow. I suppose we could hack the view components to suppress that behavior, but I think our time is better spent on the Jira issue I mentioned. Until then, toggling the Jetty flag I mentioned is a reasonable fix.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"> We should start charging container projects to *not* choose them as our baseline.<br></blockquote><div><br></div><div>What I can say about Jetty is that they are reasonably receptive to thoughtful feature requests. That's worth something IMO.</div><div><br></div><div>M<a href="mailto:users-unsubscribe@shibboleth.net" target="_blank"></a><br>
</div><div><br></div><div>[1] <a href="http://docs.oracle.com/javaee/6/api/javax/servlet/http/HttpServletResponse.html#encodeRedirectURL(java.lang.String">http://docs.oracle.com/javaee/6/api/javax/servlet/http/HttpServletResponse.html#encodeRedirectURL(java.lang.String</a>)</div><div><br></div></div></div>