++[sakai-dev], ++[cas-user]

Hi Steve,

I have attached web.xml with the mail. Its the xml present in the location "
*../tomcat/webapps/sakai-login-tool/WEB-INF*". In the xml attached I have
mentioned which config code I have added for CAS Config(both SSO and SLO).
Please have a look and guide us in case you find any correction.

Thanks a lot.


Regards,
Rushikesh Garadade

On Mon, Apr 23, 2018 at 3:04 AM, Steve Swinsburg <[email protected]>
wrote:

> Hi,
> I am not sure if Sakai supports the single sign out though. What is the
> exact config you are adding to the web.xml?
>
> Also please keep this on the mailing list.
>
> Cheers
> Steve
>
> On Sat., 21 Apr. 2018, 23:38 Manali Shinde, <[email protected]>
> wrote:
>
>> Steve,
>>
>> As Rushikesh explained , its a complete show-stopper for us.  Essentially
>> if we logout of Liferay ( via CAS ) - it should log us out of SAKAI.
>> The smallest help will be appreciated.   Eagerly waiting for your
>> response to the queries sent over by Rushikesh and me !
>>
>> Regards,
>> Manali
>>
>> On Sat, Apr 21, 2018 at 2:05 PM, Rushikesh Garadade <
>> [email protected]> wrote:
>>
>>> Hi Steve,
>>>
>>> Thanks a lot for your reply. I have few more queries, please help us
>>> with that. It is Show stopper for us right now.
>>> Let me walk you through to the scenario:
>>>
>>> I have Liferay 7 and Sakai 11 as applications which will login through
>>> CAS 3.6 for single sign on(SSO).
>>>  For SSO to workin Sakai, I have followed your link: https://confluence.
>>> sakaiproject.org/display/~steve.swinsburg/CASifying+Sakai+with+CAS+3
>>> I know there is one more easy way ( SAK-23187
>>> <https://jira.sakaiproject.org/browse/SAK-23187> ), but somehow I got
>>> SSO correct with above link.
>>>
>>> SSO is working fine i.e when I login from one it will automatically
>>> login on another.
>>>
>>> However for Signing out it is not the same.
>>>
>>> After some googling I found out that there are some extra config I need
>>> to do for Single Log out(Single sign out).
>>>
>>> I need to add below filter in respective Clients web.xml :
>>>
>>>   <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://HOSTNAME:8443</param-value>
>>>
>>>                 </init-param>
>>>
>>>   </filter>
>>>
>>>   <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>
>>>
>>>
>>>
>>> I have added above filter in Liferay 7, it started working. i.e. If I
>>> logout from CAS server, it is automatically logging out from liferay
>>> ..SUCCESS
>>>
>>> BUT
>>>
>>> When I tried to add same above filter in *sakai-login-tool's web.xml* (same
>>> place where you made other configs for Single Sign On ), it did not work
>>> i.e. logging out from CAS does not logout from Sakai
>>>
>>> -Note:  In both of the web.xml above , I have added this filters at the
>>> top.
>>> I have tried many other options which did not work. however among all I
>>> found this way more suitable and correct
>>>
>>> Queries:
>>> 1) Looking at above scenario, do you suggest any changes to make sakai
>>> work for SLO(Single Log Out)
>>> 2) Or as per your sentence it is not working because  Sakai's logout
>>> protocol doesn't support SLO. It will really a help in case you know any
>>> solid link to prove this(May be some Sakai Documentation).
>>>
>>>
>>> Please help us with what you have in regards to this.
>>> Thanks a lot in advance.
>>>
>>>
>>> Thanks,
>>> Rushikesh Garadade
>>> [email protected]
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> On Thu, Apr 19, 2018 at 4:38 PM, Steve Swinsburg <
>>> [email protected]> wrote:
>>>
>>>> Hi,
>>>>
>>>> What are you seeing in the Sakai HTTP server logs for the sign out
>>>> request? AFAIK Sakai doesn't support single sign out but it has been a few
>>>> years since I worked on this.
>>>> https://wiki.jasig.org/display/casum/single+sign+out
>>>>
>>>> "Clients that do not support the logout protocol may notice extra
>>>> requests in their access logs that appear not to do anything."
>>>>
>>>> regards,
>>>> Steve
>>>>
>>>> On Thu, Apr 19, 2018 at 4:14 PM, Manali Shinde <
>>>> [email protected]> wrote:
>>>>
>>>>> Hi,
>>>>>
>>>>> I have configured Liferay 7 and Sakai 11 for Single Sign On with CAS
>>>>> 3.6. It is working perfectly fine with the below configuration in Liferay:
>>>>> Login Url : https://hostname:8443/cas/login
>>>>> Logout Url: https://hostname8443/cas/logout
>>>>> Server Name: https://hostname:8443
>>>>> <https://www.google.com/url?q=https%3A%2F%2Fhostname%3A8443&sa=D&sntz=1&usg=AFQjCNHgqhWSNY2sCP3U8RnWn-w_8srUTg>
>>>>> Server Url: https://hostname:8443/cas
>>>>> Service Url: (Blank)
>>>>> No Such User Redirect URL: https://hostname:8443
>>>>>
>>>>> Both liferay and cas is in same tomcat.
>>>>> When I login to liferay with cas , same user gets automatically logged
>>>>> in Sakai and vice versa, However *Single Sign out does not work*,
>>>>> i.e. if I logout from liferay it will not automatically logout from Sakai
>>>>> (and vice versa).
>>>>>
>>>>> Expectation :
>>>>> If user logs out of Liferay , he/she must log out of SAKAI as well.
>>>>>
>>>>> --
>>>>> You received this message because you are subscribed to the Google
>>>>> Groups "Sakai Core Team" group.
>>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>>> an email to [email protected].
>>>>> To post to this group, send email to [email protected].
>>>>> Visit this group at https://groups.google.com/a/
>>>>> apereo.org/group/sakai-core/.
>>>>>
>>>>
>>>>
>>>
>>
>>
>> --
>> Thanks and Regards ,
>> Manali Shinde
>>
>

-- 
- Website: https://apereo.github.io/cas
- Gitter Chatroom: https://gitter.im/apereo/cas
- List Guidelines: https://goo.gl/1VRrw7
- Contributions: https://goo.gl/mh7qDG
--- 
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].
To view this discussion on the web visit 
https://groups.google.com/a/apereo.org/d/msgid/cas-user/CAEbZqyUiC94ugzXpTzgkjGm9upYBjxB%2BoNcw%2BrPOoovXVeJsOA%40mail.gmail.com.
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_9" 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";>
    <display-name>xlogin</display-name>
    <description>login</description>


    <filter>
        <filter-name>sakai.request</filter-name>
        <filter-class>org.sakaiproject.util.RequestFilter</filter-class>
    </filter>

<!-- Added for CAS : Force request for /container through the request filter -->

    <filter-mapping>
        <filter-name>sakai.request</filter-name>
        <url-pattern>/*</url-pattern>
        <dispatcher>REQUEST</dispatcher>
        <dispatcher>FORWARD</dispatcher>
        <dispatcher>INCLUDE</dispatcher>
    </filter-mapping>

<!-- end filter mapping addition -->


<!-- Added for CAS SLO -->

     <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://CAS-SERVER-HOSTNAME:8443/cas</param-value>
                </init-param>
        </filter>
        <filter-mapping>
            <filter-name>CAS Single Sign Out Filter</filter-name>
            <url-pattern>/portal/login</url-pattern>
        </filter-mapping>
        <listener>
            <listener-class>org.jasig.cas.client.session.SingleSignOutHttpSessionListener</listener-class>
    </listener>


<!-- end filter Added for CAS SLO -->




    <filter>
        <filter-name>sakai.request.container</filter-name>
        <filter-class>org.sakaiproject.util.RequestFilter</filter-class>
       <init-param>
            <param-name>tool.placement</param-name>
            <param-value>true</param-value>
        </init-param>
        <init-param>
            <param-name>remote.user</param-name>
            <param-value>false</param-value>
        </init-param>
    </filter>

     <filter>
         <filter-name>springSecurityFilterChain</filter-name>
         <filter-class>org.sakaiproject.login.springframework.SafeDelegatingFilterProxy</filter-class>
     </filter>

     <filter-mapping>
         <filter-name>springSecurityFilterChain</filter-name>
         <url-pattern>/container/*</url-pattern>
         <dispatcher>REQUEST</dispatcher>
         <dispatcher>FORWARD</dispatcher>
         <dispatcher>INCLUDE</dispatcher>
     </filter-mapping>

    <filter-mapping>
        <filter-name>sakai.request</filter-name>
        <servlet-name>sakai.login</servlet-name>
        <dispatcher>REQUEST</dispatcher>
        <dispatcher>FORWARD</dispatcher>
        <dispatcher>INCLUDE</dispatcher>
    </filter-mapping>

    <filter-mapping>
        <filter-name>sakai.request.container</filter-name>
        <servlet-name>sakai.login.container</servlet-name>
        <dispatcher>REQUEST</dispatcher>
    </filter-mapping>

    <filter-mapping>
        <filter-name>sakai.request.container</filter-name>
        <servlet-name>sakai.logout.container</servlet-name>
        <dispatcher>REQUEST</dispatcher>
    </filter-mapping>



    <!-- Added for CAS begin CAS servlet 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://CAS-SERVER-HOSTNAME:8443/cas/login</param-value>
        </init-param>

        <init-param>
            <param-name>serverName</param-name>
            <param-value>https://SAKAI-SERVER-HOSTNAME:8443</param-value>
        </init-param>
    </filter>

    <filter>
        <filter-name>CAS Validation Filter</filter-name>
        <filter-class>org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter</filter-class>

        <init-param>
            <param-name>casServerUrlPrefix</param-name>
            <param-value>https://CAS-SERVER-HOSTNAME:8443/cas</param-value>
        </init-param>

        <init-param>
            <param-name>serverName</param-name>
          <param-value>https://SAKAI-SERVER-HOSTNAME:8443</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 Authentication Filter</filter-name>
        <url-pattern>/container</url-pattern>
    </filter-mapping>

    <filter-mapping>
        <filter-name>CAS Validation 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>

 <!-- end CAS servlet filter -->


    <servlet>
        <servlet-name>sakai.login</servlet-name>
        <servlet-class>org.sakaiproject.login.tool.SkinnableLogin</servlet-class>
        <init-param>
            <param-name>container</param-name>
            <param-value>/sakai-login-tool/container</param-value>
        </init-param>
        <init-param>
                <param-name>container-logout</param-name>
                <param-value>/sakai-login-tool/container/logout</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet>
        <servlet-name>sakai.login.container</servlet-name>
        <servlet-class>org.sakaiproject.login.tool.ContainerLogin</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet>
        <servlet-name>sakai.logout.container</servlet-name>
        <servlet-class>org.sakaiproject.login.tool.ContainerLogout</servlet-class>
    </servlet>

        <!-- map the container login, and then cause it to trigger container authentication -->
    <servlet-mapping>
        <servlet-name>sakai.login.container</servlet-name>
        <url-pattern>/container/*</url-pattern>
    </servlet-mapping>

    <!--  map the container logout -->
    <servlet-mapping>
        <servlet-name>sakai.logout.container</servlet-name>
        <url-pattern>/container/logout</url-pattern>
    </servlet-mapping>

     <servlet-mapping>
         <servlet-name>sakai.login</servlet-name>
         <url-pattern>/*</url-pattern>
     </servlet-mapping>

     <listener>
         <listener-class>org.sakaiproject.util.SakaiContextLoaderListener</listener-class>
     </listener>

        <listener>
        <listener-class>org.sakaiproject.util.ToolListener</listener-class>
    </listener>

</web-app>

Reply via email to