This is what the sso process does.

When a login request is sent. The first response back to the browser is a 
redirect to the context root.
This doesn't have the token cookie in the response.
The web application has a welcome page which forwards internally.
>From the looks of it it seems as if the app server is streaming content back 
>to the browser immediately.

I put a breakpoint in SSOTokenManager inside the 
                if(!ssoCookieFound)
                {
condition.
It got hit twice immediately.
The second request was for a css file in the page that was being streamed back. 
(Note the browser had not yet displayed the resulting page.) Looks like IE 
starts processing as soon as it gets any content.

Now we have 2 requests in there to generate the token.

The TokenManager now calls JBOSSSingleSignOn to generate the token 
(getTokenSecret method.) 

The federation server now ends up with 2 requests for the same principal id.
It generates one token and returns it for one request.
The second request comes in and it generates a second token replacing the 
eariler one.
However now the browser has the earlier token with it.
So when you connect to a different app the federation server doesn't find the 
token since its hashmap now has the new value.

Looking at the code, I was thinking that maybe we should synchronize the 
generateSecret method in org.jboss.security.federation.service.Trust
and make it return an existing secret value if it find one. Only if it doesn't 
find one then generate a new one.
That's my 2 cents worth.


Hope this helps


Roshan



View the original post : 
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4023275#4023275

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4023275
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to