Thanks for the advice.

I'm not trying to bypass the nuances of SLO.  I'm trying to find out if 
there is any way to enable SLO in a simple cookies-based webapp (like the 
sample 
provided by UniconLabs 
<https://github.com/UniconLabs/cas-sample-java-webapp>).  

It sounds like there is not and I'll have to use one of the compatible 
security frameworks like Shiro or Spring Security.

On Monday, January 11, 2016 at 11:13:19 AM UTC-5, Misagh Moayyed wrote:
>
> Your SLO filter is designed to do just that. It grabs onto the request, 
> examines it and if it considers it an SLO request it will attempt to 
> terminate the session. It also does nothing with cookies, if I recall. 
> There are no other flags. I guess what you are trying to do is advise the 
> webapp to log itself out on the next try, so as to preserve the current 
> user session so as to lose any work? In that case, why don’t you just turn 
> SLO off? What does SLO mean at that point?
>
>  
>
> At any rate, I don’t know of a sane way you could manage/implement what 
> you propose, unless you wrote your filter that set that flag and did its 
> own thing with the session, and even then, I am not sure you can fully get 
> there. Way too many variables can go wrong. 
>
>  
>
> If you are trying to bypass the nuances of SLO, you won’t be able to. You 
> either accept SLO as is, or you turn it off and let the app do its own 
> thing separate from the CAS SSO session. I dare say the latter is more 
> common. 
>
>  
>
> *From:* [email protected] <javascript:> [mailto:[email protected] 
> <javascript:>] *On Behalf Of *Jonathan Labin
> *Sent:* Monday, January 11, 2016 8:11 AM
> *To:* CAS Community <[email protected] <javascript:>>
> *Subject:* [cas-user] Re: Help with SLO and Java Web Client
>
>  
>
> To simplify the question:
>
> Is there no way to write a webapp to respond to the logout callback by 
> setting some flag.  Then on the next access by the client browser this flag 
> could be noticed and the session terminated (along with cookies)?
>
>  
>
> Is this approach inadvisable or not possible for some reason?
>
>  
>
> Thanks
>
>  
>
> On Tuesday, January 5, 2016 at 11:33:54 AM UTC-5, Jonathan Labin wrote:
>
> I am having trouble with the the single log out feature.  I am using CAS 
> server 4.1.3 and client web apps based on the sample provided by 
> UniconLabs <https://github.com/UniconLabs/cas-sample-java-webapp>.  After 
> modification according to the java client readme 
> <https://github.com/Jasig/java-cas-client#configuring-single-sign-out>:
>
>  
>
> <?xml version="1.0" encoding="UTF-8"?>
>
> <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee";
>
>    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
>
>    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
> http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd";>
>
>    <filter>
>
>         <filter-name>CAS Single Sign Out Filter</filter-name>
>
>         
> <filter-class>org.jasig.cas.client.session.SingleSignOutFilter</filter-class>
>
>         <!--  <init-param>
>
>              <param-name>casServerUrlPrefix</param-name>
>
>              <param-value>https://localhost:8181/cas</param-value>
>
>         </init-param>  -->
>
>    </filter>
>
>    <filter>
>
>         <filter-name>CAS Authentication Filter</filter-name>
>
>         
> <filter-class>org.jasig.cas.client.authentication.AuthenticationFilter</filter-class>
>
>         <init-param>
>
>              <param-name>casServerLoginUrl</param-name>
>
>              <param-value>https://localhost:8181/cas/login</param-value>
>
>         </init-param>
>
>         <init-param>
>
>              <param-name>serverName</param-name>
>
>              <param-value>https://localhost:8181</param-value>
>
>         </init-param>
>
>    </filter>
>
>  
>
>    <filter>
>
>         <filter-name>CAS Validation Filter</filter-name>
>
>         
> <filter-class>org.jasig.cas.client.validation.Cas30ProxyReceivingTicketValidationFilter</filter-class>
>
>         <init-param>
>
>              <param-name>casServerUrlPrefix</param-name>
>
>              <param-value>https://localhost:8181/cas</param-value>
>
>         </init-param>
>
>         <init-param>
>
>              <param-name>serverName</param-name>
>
>              <param-value>https://localhost:8181</param-value>
>
>         </init-param>
>
>         <init-param>
>
>              <param-name>redirectAfterValidation</param-name>
>
>              <param-value>true</param-value>
>
>         </init-param>
>
>         <init-param>
>
>              <param-name>useSession</param-name>
>
>              <param-value>true</param-value>
>
>         </init-param>
>
>         <!-- <init-param> <param-name>acceptAnyProxy</param-name> 
> <param-value>true</param-value> 
>
>         </init-param> <init-param> 
> <param-name>proxyReceptorUrl</param-name> 
> <param-value>/cas-sample-java-webapp/proxyUrl</param-value> 
>
>         </init-param> <init-param> 
> <param-name>proxyCallbackUrl</param-name> <param-value>
> https://localhost:8181/cas-sample-java-webapp/proxyUrl</param-value> 
>
>         </init-param> -->
>
>    </filter>
>
>    <filter>
>
>         <filter-name>CAS HttpServletRequest Wrapper Filter</filter-name>
>
>         
> <filter-class>org.jasig.cas.client.util.HttpServletRequestWrapperFilter</filter-class>
>
>    </filter>
>
>  
>
>    <filter-mapping>
>
>         <filter-name>CAS Validation Filter</filter-name>
>
>         <url-pattern>/*</url-pattern>
>
>    </filter-mapping>
>
>  
>
>    <filter-mapping>
>
>         <filter-name>CAS Authentication Filter</filter-name>
>
>         <url-pattern>/*</url-pattern>
>
>    </filter-mapping>
>
>  
>
>    <filter-mapping>
>
>         <filter-name>CAS HttpServletRequest Wrapper Filter</filter-name>
>
>         <url-pattern>/*</url-pattern>
>
>    </filter-mapping>
>
>    
>
>    <filter-mapping>
>
>       <filter-name>CAS Single Sign Out Filter</filter-name>
>
>       <url-pattern>/*</url-pattern>
>
>    </filter-mapping>
>
>    
>
>    <listener>
>
>      
>  
> <listener-class>org.jasig.cas.client.session.SingleSignOutHttpSessionListener</listener-class>
>
>     </listener>
>
>  
>
>    <welcome-file-list>
>
>         <welcome-file>
>
>             index.jsp
>
>         </welcome-file>
>
>    </welcome-file-list>
>
> </web-app>
>
>  
>
> I can successfully log in to the web application through CAS 
> authentication.
>
> When I log out at CAS server in another tab using: 
> https://localhost:8181/cas/logout I receive confirmation that logout was 
> successful.
>
>  
>
> The server log shows:
>
> 2016-01-05T11:18:41.635-0500|Info: 2016-01-05 11:18:41,635 DEBUG 
> [org.jasig.cas.CentralAuthenticationServiceImpl] - <Ticket found. 
> Processing logout requests and then deleting the ticket...>
>
> 2016-01-05T11:18:41.636-0500|Info: 2016-01-05 11:18:41,636 DEBUG 
> [org.jasig.cas.logout.SamlCompliantLogoutMessageCreator] - <Generated 
> logout message: [<samlp:LogoutRequest 
> xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" 
> ID="LR-4-0sROBuPSyWPSs5z6tVOVXxCFjnejqH9jrbs" Version="2.0" 
> IssueInstant="2016-01-05T11:18:41Z"><saml:NameID 
> xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">@NOT_USED@</saml:NameID><samlp:SessionIndex>
> ST-5-7pGNgBnwf4JGqmJY7era-mycastest.myorg.org
> </samlp:SessionIndex></samlp:LogoutRequest>]>
>
> 2016-01-05T11:18:41.636-0500|Info: 2016-01-05 11:18:41,636 DEBUG 
> [org.jasig.cas.logout.LogoutManagerImpl] - <Sending logout request for: [
> https://localhost:8181/cas-sample-java-webapp-2/]>
>
> 2016-01-05T11:18:41.636-0500|Info: 2016-01-05 11:18:41,636 DEBUG 
> [org.jasig.cas.logout.LogoutManagerImpl] - <Prepared logout message to send 
> is [org.jasig.cas.logout.LogoutManagerImpl$LogoutHttpMessage@46569bda[url=
> https://localhost:8181/cas-sample-java-webapp-2/,message=<samlp:LogoutRequest 
> xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" 
> ID="LR-4-0sROBuPSyWPSs5z6tVOVXxCFjnejqH9jrbs" Version="2.0" 
> IssueInstant="2016-01-05T11:18:41Z"><saml:NameID 
> xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">@NOT_USED@</saml:NameID><samlp:SessionIndex>
> ST-5-7pGNgBnwf4JGqmJY7era-mycastest.myorg.org
> </samlp:SessionIndex></samlp:LogoutRequest>,asynchronous=true,contentType=application/x-www-form-urlencoded]]>
>
> 2016-01-05T11:18:41.638-0500|Info: 2016-01-05 11:18:41,638 DEBUG 
> [org.jasig.cas.logout.LogoutManagerImpl] - <Captured logout request 
> [org.jasig.cas.logout.DefaultLogoutRequest@479d1dbc[ticketId=
> ST-5-7pGNgBnwf4JGqmJY7era-mycastest.myorg.org,service=
> https://localhost:8181/cas-sample-java-webapp-2/,status=SUCCESS]]>
>
> 2016-01-05T11:18:41.638-0500|Info: 2016-01-05 11:18:41,638 DEBUG 
> [org.jasig.cas.logout.SamlCompliantLogoutMessageCreator] - <Generated 
> logout message: [<samlp:LogoutRequest 
> xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" 
> ID="LR-5-uiOMuNVN2F9ENMiORMqhGn02bWrL6u5NKZf" Version="2.0" 
> IssueInstant="2016-01-05T11:18:41Z"><saml:NameID 
> xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">@NOT_USED@</saml:NameID><samlp:SessionIndex>
> ST-4-1m5RMx43NhaU2wreOvbp-mycastest.myorg.org
> </samlp:SessionIndex></samlp:LogoutRequest>]>
>
> 2016-01-05T11:18:41.639-0500|Info: 2016-01-05 11:18:41,638 DEBUG 
> [org.jasig.cas.logout.LogoutManagerImpl] - <Sending logout request for: [
> https://localhost:8181/cas-sample-java-webapp-1/]>
>
> 2016-01-05T11:18:41.639-0500|Info: 2016-01-05 11:18:41,639 DEBUG 
> [org.jasig.cas.logout.LogoutManagerImpl] - <Prepared logout message to send 
> is [org.jasig.cas.logout.LogoutManagerImpl$LogoutHttpMessage@5601d15a[url=
> https://localhost:8181/cas-sample-java-webapp-1/,message=<samlp:LogoutRequest 
> xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" 
> ID="LR-5-uiOMuNVN2F9ENMiORMqhGn02bWrL6u5NKZf" Version="2.0" 
> IssueInstant="2016-01-05T11:18:41Z"><saml:NameID 
> xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">@NOT_USED@</saml:NameID><samlp:SessionIndex>
> ST-4-1m5RMx43NhaU2wreOvbp-mycastest.myorg.org
> </samlp:SessionIndex></samlp:LogoutRequest>,asynchronous=true,contentType=application/x-www-form-urlencoded]]>
>
> 2016-01-05T11:18:41.641-0500|Info: 2016-01-05 11:18:41,641 DEBUG 
> [org.jasig.cas.logout.LogoutManagerImpl] - <Captured logout request 
> [org.jasig.cas.logout.DefaultLogoutRequest@2b711a3c[ticketId=
> ST-4-1m5RMx43NhaU2wreOvbp-mycastest.myorg.org,service=
> https://localhost:8181/cas-sample-java-webapp-1/,status=SUCCESS]]>
>
>  
>
> and then to complete the TICKET_GRANTING_TICKET_DESTROYED action.
>
>  
>
> I'm not exactly sure what i'm looking for but a few things stand out.  
>
> 1) I see that the chain for logout of each client webapp ends with the 
> term status=SUCCESS.  Is that indicative of a successful logout or simply 
> that the POST was made.
>
> 2) There are a number of places where SAML shows up in that log segment. 
>  Does that mean I need to run the SAML protocol on my client?  If so, is 
> that in addition to or in replacement of the CAS ticket validation filter 
> or are those unrelated?
>
>  
>
> After the logout I am still able to navigate the test client 
> application(s) so the session has not been ended.  
>
> Assuming that my configuration of server and client are correct (may not 
> be true), What should my application do to correctly respond to the SLO 
> protocol?
>
> I see the line in the client documentation stating:
>
> The client has no code to help you handle log out. The client merely 
> places objects in session.
>
> but what objects are placed into the session and how should the client be 
> written to recognize these objects and perform a session invalidation on 
> the next access attempt?
>
>  
>
> Are there any simple examples of a web client that appropriately responds 
> to the SLO protocol?
>
>  
>
> Thanks
>
> -- 
> You received this message because you are subscribed to the Google Groups 
> "CAS Community" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to [email protected] <javascript:>.
> Visit this group at https://groups.google.com/a/apereo.org/group/cas-user/
> .
>

-- 
You received this message because you are subscribed to the Google Groups "CAS 
Community" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
Visit this group at https://groups.google.com/a/apereo.org/group/cas-user/.

Reply via email to