Oh you are right, with redirect url in encoded form, it should work!
Do not forget to decode the URL before doing the response redirect which re-encodes it.

response.sendRedirect(response.encodeRedirectURL(targetUrl));

Lucas.
 
On 22/02/06, Scott Battaglia <[EMAIL PROTECTED]> wrote:
Another alternative to this would be to do something like...

/j_acegi_cas_security_check?ticket=ST-{ticket_stuff}&redirectUrl=/redirectToWhereIWantToGoInUrlEncodedForm
and then have Acegi just redirect to the redirectUrl after validating
the ticket.

-Scott


Lucas Opara wrote:
> Hello,
>
> I found something that could be useful to add to the
> * org.acegisecurity.ui.cas.CasProcessingFilter*.
> When working in proxy mode, after receiving a proxy ticket and
> validating it to CAS, acegi will always redirect the proxied web
> application to its defaultTargetUrl defined in applicationContext.xml
> file.
> It would be nice if we could pass some extra parameters from the
> proxy to this default URL.
>
> A solution would be to append extra parameter to
> /j_acegi_cas_security_check?ticket=.... when calling from proxy and to
> slightly modify the behaviour of the method *AbstractProcessingFilter.
> **successfulAuthentication()* to handle those extra parameters and
> append them to the default URL. What do you think?
>
> Cheers,
>
> Lucas Opara
>
> Sample code:
>
> protected void successfulAuthentication(HttpServletRequest request,
> HttpServletResponse response, Authentication authResult) {
>
> //....
>
> if (targetUrl == null) {
>   targetUrl = request.getContextPath() + getDefaultTargetUrl();
>   //ADDED by LOP 22/02/2006 - BEGIN
>   Map params = request.getParameterMap ();
>   if(params != null && !params.isEmpty()) {
>     //other parameters to append to targetUrl
>     Iterator it = params.entrySet().iterator();
>     int i=0;
>     while (it.hasNext ()) {
>       i++;
>       Map.Entry pair = (Map.Entry)it.next();
>       if("ticket".equals(pair.getKey())) {
>         continue;
>       }
>       targetUrl += (i==1 ? "?" : "&") + (String)pair.getKey() + "=" +
> arrayToString((String[])pair.getValue());
>     }
>   }
> //ADDED by LOP 22/02/2006 - END
> }
>
> //...
>
> }
>
>  private String arrayToString(String s[]) {
>     int k;
> String result = "";
>
> k = s.length;
> if (k > 0) {
> result = s[0];
> for (int i= 1 ; i < k; i++) {
> result += s[i] ;
> }
> }
> return result;
> }
>
>
>
>



-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
_______________________________________________
Home: http://acegisecurity.org
Acegisecurity-developer mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/acegisecurity-developer

Reply via email to