[Building Sakai] Site Unavailable using CAS login

wendy lee lhh at mail.sysu.edu.cn
Thu Dec 1 18:55:54 PST 2011


hi, all

I configure sakai to use cas login. Sakai reports "Site Unavailable" ("The site you requested is not available.") after login with cas user "abc". I create a new sakai user whose userid is "abc". Login again but sakai still says "Site Unavailable". Why? After cas login, "Site Unavailable"'s url is http://localhost:8080/portal/sakai-login-tool/container?ticket=ST-723391-REvOoYdgQCHGjDzQd2r9WfICwM5d1Ab5yKP-20
my sakai-login-tool's web.xml are:
<?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>

<!-- 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 -->

    <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-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>
        <filter-name>NakamuraAuthenticationFilter</filter-name>
        <filter-class>org.sakaiproject.login.filter.NakamuraAuthenticationFilter</filter-class>
    </filter>

    <filter-mapping>
        <filter-name>NakamuraAuthenticationFilter</filter-name>
				<url-pattern>/container</url-pattern>
    </filter-mapping>

<!-- 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.sysu.edu.cn/cas/login</param-value> 
        </init-param> 

        <init-param> 
            <param-name>serverName</param-name> 
            <param-value>http://localhost:8080/portal</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.sysu.edu.cn/cas</param-value> 
        </init-param> 

        <init-param> 
            <param-name>serverName</param-name> 
          <param-value>http://localhost:8080/portal</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>
	<filter-name>CAS Assertion Thread Local Filter</filter-name>
	<filter-class>org.jasig.cas.client.util.AssertionThreadLocalFilter</filter-class>
</filter>
<filter-mapping>
	<filter-name>CAS Assertion Thread Local Filter</filter-name>
	<url-pattern>/*</url-pattern>
</filter-mapping>

    <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>
        <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>

	<!-- 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>
	
	<listener>
        <listener-class>org.sakaiproject.util.ToolListener</listener-class>
    </listener>
	
</web-app>

--------------
  
wendy lee


More information about the sakai-dev mailing list