Probably the attachment will be cut out by the mailing server. So I send the text of the test.jsp here:
Hello <br /> User Principal: <%= request.getUserPrincipal() %> <br/> <% if (request.getUserPrincipal() != null ) { %> User is authenticated, allow to set session attribute <% request.getSession().setAttribute("markerAttribute", "markerAttributeValue"); } else { %> User is a guest. No setting of any session attributes. <% } %> <br /> Marker Attribute from session: <%= request.getSession().getAttribute("markerAttribute") %> On Thu, Jan 22, 2015 at 5:51 PM, Leonid Rozenblyum <lrozenbl...@gmail.com> wrote: > I think I could reproduce my problem also on experimenting with your examples! > > I went exactly by your steps but my JSP is an extended version of > yours ( I add it to attachment ) > > In the ROOT/test.jsp I added code to set a session attribute if the > user principal is not null. > I expect that after logging out via another application (using SSO) my > session attribute won't be there (my expectation of SingleSignOff is > complete session invalidation). > > However it's not the case : after logging out in security/protected > the session attribute is still kept (while UserPrincipal is null). > > > Complete scenario: > > - request ROOT/test.jsp > - no authenticated user > - no marker attribute in session > > - request examples/jsp/security/protected > - FORM login prompt, login, see index.jsp > > - request ROOT/test.jsp > - shows user authenticated above. SSO cookie has a path of / so gets > returned with all requests. This exposes the UserPrincipal to all > apps > - marker attribute is shown from session. > > - request examples/jsp/security/protected > - see index.jsp > - click logout > - see FORM login page > > - request ROOT/test.jsp > - no authenticated user. As expected. Logout above has destroyed SSO > session and removed SSO cookie > > However - the marker attribute is STILL in session of ROOT webapplication. > For us it means that the session is NOT invalidated correctly. > > Thanks for your feedback and detail scenario you sent, I think it > helped discover a probable bug... > > On Wed, Jan 21, 2015 at 7:06 PM, Leonid Rozenblyum > <lrozenbl...@gmail.com> wrote: >> Hello! >> I tried 8.0.17 (previously I had 8.0.15) and we still have the same >> problem with same possible workaround. >> >> I'll go through your examples, try them and compare what's the difference. >> >> On Tue, Jan 20, 2015 at 11:52 AM, Mark Thomas <ma...@apache.org> wrote: >>> On 20/01/2015 08:10, Leonid Rozenblyum wrote: >>>> Thank you, Mark! >>> >>> I spent some time stepping through the code using a default Tomcat >>> install with the following changes: >>> - SSO Valve uncommented in server.xml >>> - test.jsp added to ROOT app that shows request.getUserPrincipal >>> - uncomment user definitions in tomcat-users.xml >>> >>> Note that the examples app ships with a protected page that requires >>> authentication. >>> >>> I see the following: >>> >>> - request ROOT/test.jsp >>> - no authenticated user >>> >>> - request examples/jsp/security/protected >>> - FORM login prompt, login, see index.jsp >>> >>> - request ROOT/test.jsp >>> - shows user authenticated above. SSO cookie has a path of / so gets >>> returned with all requests. This exposes the UserPrincipal to all >>> apps >>> >>> - request examples/jsp/security/protected >>> - see index.jsp >>> - click logout >>> - see FORM login page >>> >>> - request ROOT/test.jsp >>> - no authenticated user. As expected. Logout above has destroyed SSO >>> session and removed SSO cookie >>> >>> So, in short, I am seeing the behaviour you expect to see. I'm doing >>> this with 9.0.x (trunk) but that should be the same as the latest 80.x >>> release. >>> >>> A couple of things to check: >>> - are you using the latest 8.0.x release (8.0.17 - I need to send out >>> the announcement) >>> - Turn on debug logging for the Host where you added the SSO valve - you >>> should see debug messages from the SSO valve which will show when >>> sessions get created, destroyed etc. >>> >>> Mark >>> >>> >>>> >>>> On Tue, Jan 20, 2015 at 12:18 AM, Mark Thomas <ma...@apache.org> wrote: >>>>> On 16/01/2015 14:05, Leonid Rozenblyum wrote: >>>>>> Hello Mark. >>>>>> >>>>>> We do explicit forced expiration of http session in one of SSO enabled >>>>>> apps (Application1 : session.invalidate() ) >>>>>> and it didn't cause session expiration in other Apps >>>>>> >>>>>> (only workaround with adding security-constraint to other apps that I >>>>>> mentioned above helped). >>>>>> >>>>>> Tomcat version is 8.0.15. OS tested was both linux & windows >>>>>> >>>>>> Probably I need to prepare minimal test case since it looks like a bug, >>>>>> right? >>>>> >>>>> Yes to the possible bug. Thanks but no need at this point for the test >>>>> case. I'll take a look at what is going on. >>>>> >>>>> Mark >>>>> >>>>> >>>>>> >>>>>> >>>>>> On Fri, Jan 16, 2015 at 2:53 PM, Mark Thomas <ma...@apache.org> wrote: >>>>>>> On 15/01/2015 15:46, Leonid Rozenblyum wrote: >>>>>>>> Hello. >>>>>>>> >>>>>>>> I have > 2 web-applications which are running on the same host. >>>>>>>> The Valve SingleSignOn is enabled. >>>>>>>> >>>>>>>> Application1 has security-constraint and login-config elements in >>>>>>>> web.xml >>>>>>>> Application2, 3 etc has no such definitions >>>>>>>> >>>>>>>> Technically Application1 is acting as a security gate. All other >>>>>>>> applications are redirected to it if userPrincipal is not found. >>>>>>>> >>>>>>>> In this scenario Single Sign ON works fine - after authenticating in >>>>>>>> Application1, all other applications have correction userPrincipal. >>>>>>>> >>>>>>>> However Single Sign OFF doesn't work in this configuration. If I >>>>>>>> logout in App1, other sessions are not invalidated. >>>>>>>> >>>>>>>> How can this be overcomed? Is it a bug or works-as-intended? >>>>>>> >>>>>>> Explicit, forced expiration of the HTTP session in any SSO enabled web >>>>>>> application should destroy the SSO session and in turn trigger the >>>>>>> expiration of the HTTP session for every other SSO enabled web >>>>>>> application. >>>>>>> >>>>>>> Session expiration due to timeout in an SSO enabled web application only >>>>>>> terminates the HTTP session for that web application. The SSO session is >>>>>>> unaffected (unless this was the last HTTP session associated with the >>>>>>> SSO session in which case the SSO session is removed). >>>>>>> >>>>>>> Mark >>>>>>> >>>>>>> >>>>>>> --------------------------------------------------------------------- >>>>>>> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org >>>>>>> For additional commands, e-mail: users-h...@tomcat.apache.org >>>>>>> >>>>>> >>>>>> --------------------------------------------------------------------- >>>>>> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org >>>>>> For additional commands, e-mail: users-h...@tomcat.apache.org >>>>>> >>>>> >>>>> >>>>> --------------------------------------------------------------------- >>>>> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org >>>>> For additional commands, e-mail: users-h...@tomcat.apache.org >>>>> >>>> >>>> --------------------------------------------------------------------- >>>> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org >>>> For additional commands, e-mail: users-h...@tomcat.apache.org >>>> >>> >>> >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org >>> For additional commands, e-mail: users-h...@tomcat.apache.org >>> --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org