我现在已经做好所有,也能实现CAS的SSO单点登陆,但是我现在很不想让CAS拦截我所有的URL
因为我认为一个站点,应该是有很多页面都不需要登陆就可以浏览的,现在的情况是我只要一打开站点,首页都没看到就跳转到CAS的登陆页面去了。
我的配置如下:
<!--  用于单点登录 -->
<filter>
<filter-name>CAS Filter</filter-name>
<filter-class>
edu.yale.its.tp.cas.client.filter.CASFilter
</filter-class>
<!-- 下面两个为验证地址,即cas server的地址,如果使用https验证,地址为https://hostname:8443字样 --> <init-param>
<param-name>
edu.yale.its.tp.cas.client.filter.loginUrl
</param-name>
<param-value>
https://NB-ZHENGKAI-DU:8443/login
</param-value>
</init-param>
<init-param>
<param-name>
edu.yale.its.tp.cas.client.filter.validateUrl
</param-name>
<param-value>
https://NB-ZHENGKAI-DU:8443/serviceValidate
</param-value>
</init-param>
<!-- 本工程的URL,被拦截的地址 -->
<init-param>
<param-name>
edu.yale.its.tp.cas.client.filter.serverName
</param-name>
<param-value>www.test.com</param-value>
</init-param>
</filter> <filter-mapping>
<filter-name>CAS Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
后来我就CAS的配置进行修改
  第一种<filter-mapping>
<filter-name>CAS Filter</filter-name>
<url-pattern>/ssojump/*</url-pattern>
</filter-mapping>第二种<filter-mapping>
<filter-name>CAS Filter</filter-name>
<url-pattern>/login.jsp</url-pattern>
</filter-mapping>
第三种<filter-mapping>
<filter-name>CAS Filter</filter-name>
<url-pattern>/ssojump/login.jsp</url-pattern>
</filter-mapping>改成以上三种时CAS就都没有任何反映了,不拦截我的任何地址第四种<filter-mapping>
<filter-name>CAS Filter</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>
我改成第四种,CAS就拦截了我的所有*.do的请求我现在只想让他在我的程序需要用户进行登陆的时候,进行拦截。比如跳转到login.jsp。有哪位之前做过,请解答,将不胜感激!

解决方案 »

  1.   

    改成这个
    <filter-mapping>
    <filter-name>CAS Filter</filter-name>
    <url-pattern>/login.do</url-pattern>
    </filter-mapping>
      

  2.   

    edu.yale.its.tp.cas.client.filter.CASFilter
    这个类是不是你写的,如果是你写的,你可以在这个类中处理,用request.getServletPath()得到访问的url地址,然后把不要的去掉就行了。
      

  3.   

    直接配一个 * 肯定不行
    你可以配多个
    *.do
    还有一些特殊的你需要拦截的例如你说的 login.jsp<filter-name>CAS Filter</filter-name>
    <url-pattern>*.do</url-pattern>
    </filter-mapping>
    <filter-name>CAS Filter</filter-name>
    <url-pattern>/logn.jsp</url-pattern>
    </filter-mapping>