@Julien Why did you remove the logout event from WCI? I need it at kernel level

On Wed, Sep 19, 2012 at 6:01 PM, Julien Viet <julien@julienviet.com> wrote:
it is now merged in gatein-portal/master

kuddos to you and Trong for the responsiveness and the good work

On Sep 18, 2012, at 1:59 PM, Julien Viet <julien@julienviet.com> wrote:

>
> On Sep 18, 2012, at 1:42 PM, Marek Posolda <mposolda@redhat.com> wrote:
>
>> Hi Julien,
>>
>> I am checking the branch https://github.com/vietj/gatein-portal/tree/pcwci . Thanks for this authentication simplification. I have some comments:
>>
>> 1) I tested on AS7 and saw some compilation failures in wsrp-extension component (namely in class WSRPServiceIntegration) because it still used old WCI api for obtaining ServletContainer.
>> I fixed it simply by using: ServletContainer servletContainer = ServletContainerFactory.getServletContainer();
>> instead of DefaultServletContainerFactory as you suggested on irc.
>>
>> 2) Second thing is more major and it's related to the WSS issue with credentials. Unfortunately it doesn't work correctly in your branch because LoginServlet.bindCredentialsToConversationState is called directly after authentication, which is too early as it still don't have correct conversationState at this moment. What happens here is:
>> - Request http://localhost:8080/portal/login?username=john&password=gtn is send
>> -- SetCurrentIdentityFilter is called at the beginning of the request, but at this moment user is not authenticated. So it uses ConversationState for anonymous identity (IdentityConstants.ANONIM)
>> -- request is processed by LoginServlet, which invokes wci authentication. But at this moment there is still ConversationState for anonymous user bind to threadLocal, so Credentials are registered to this conversationState. Then we have redirection to initialURI like "/portal/classic"
>> - Request http://localhost:8080/portal/classic is send
>> -- SetCurrentIdentityFilter is called and it recognize that user is authenticated so it creates new ConversationState for this user and register it to ConversationRegistry. But note that previous ConversationState is lost. So credentials are not registered in current ConversationState --> WSS can't work
>>
>> I have my branch here https://github.com/mposolda/gatein-portal/tree/pcwci which is based on top of your branch and it addresses (1) and (2). I fixed (2) by similar approach like was before your changes, which means:
>> - After successful authentication are credentials bind to temporary authenticationRegistry, which exists only during authentication
>> - I added new filter ConversationStateUpdateFilter, which removes credentials from temporary registry and adds them to ConversationState. ConversationStateUpdateFilter is added after SetCurrentIdentityFilter, which ensures that correct ConversationState is bound to threadLocal when it's called.
>>
>> I did not test with WSS enabled, but I verified that after my change is ConversationState.getCurrent().getAttribute(Credentials.CREDENTIALS) returning correct credentials value, which should fix GTNPORTAL-2567 .
>>
>> Let me know if my branch with those changes https://github.com/mposolda/gatein-portal/tree/pcwci is ok or you have some other ideas to improve this.
>>
>> Personally I would prefer to use WCI authenticationListener for register credentials but unfortunately listener doesn't have information about password of user, so I created WCI jira https://issues.jboss.org/browse/GTNWCI-37 to address this. I think you told about this limitation on IRC yesterday as well. WDYT?
>
> we can fix WCI and make password available again.
>
> if yes we can make a release today.
>
>>
>> 3) I saw some exceptions due to gatein-sample-extension and gatein-sample-portal. It seems that we need to remove those obsolete servlets from web.xml and login.jsp. Also it seems that other products on top of GateIn will need to adapt those changes as well. I did not fix those in my branch for now…
>
> this is correct, it needs more correction before final merge, this is still a WIP :-)
>
>>
>> I will try to test with SSO later in the afternoon but I did not expect any major problems as you keep "/dologin" secure URL, so I think that it should work without any changes. Will update later if found any problems.
>
>>
>> Marek
>>
>> On 18/09/12 08:51, Julien Viet wrote:
>>> they actually need more work from Trong before being merged and careful checks.
>>>
>>> I believe we can finish that by the end of this week.
>>>
>>> On Sep 17, 2012, at 10:45 PM, Julien Viet <julien@julienviet.com> wrote:
>>>
>>>> Hi,
>>>>
>>>> I pushed the initial rewrite of the authentication in GateIn that is based on WCI and Servlet 3.0 authentication.
>>>>
>>>> The good news is it improves things by simplifying the code and remove all the previous http redirects that we needed.
>>>>
>>>> I wrote a doc about it there : https://community.jboss.org/wiki/GateIn35Authentication
>>>>
>>>> - Marek and Matt should look at the authentication with SSO and WS-Security
>>>> - Trong should look at the login form redirection for groups and users as now we don't rely anymore on servlet container security constraint (like it is already for portal pages)
>>>>
>>>> Note that this integrates with the new Alpha common/wci/pc stack, Bolek and I have been working for a couple of weeks. I guess it could also affect WSRP if it is using WCI in some way (WCI has had many simplifications last week with the removal of unnecessary stuff).
>>>>
>>>> cheers
>>>>
>>>> Julien
>>>
>>> _______________________________________________
>>> gatein-dev mailing list
>>> gatein-dev@lists.jboss.org
>>> https://lists.jboss.org/mailman/listinfo/gatein-dev
>>
>


_______________________________________________
gatein-dev mailing list
gatein-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/gatein-dev