CAS实战のclient自定义过滤器

  我们在配置cas client肯定写过如下代码:

 <filter>  
        <filter-name>CASFilter</filter-name>  
        <filter-class>org.jasig.cas.client.authentication.AuthenticationFilter</filter-class>
        <filter-class>com.founder.ec.sso.filter.CASFilter</filter-class>
        <init-param>  
            <param-name>casServerLoginUrl</param-name>  
            <param-value>http://localhost:8082/cas/login</param-value>
        </init-param>  
        <init-param>  
            <param-name>serverName</param-name>  
            <param-value>http://localhost:8008/</param-value>
        </init-param>  
    </filter>  
    <filter-mapping>  
        <filter-name>CASFilter</filter-name>  
        <url-pattern>/*</url-pattern>  
    </filter-mapping>

  在自定义过滤器的时候,只需要将默认的CASFilter对应的类路径改为自定义的过滤器类。

  CASFilter必须继承AbstractCasFilter,覆盖里面除isRequestUrlExcluded外的所有方法,另重写isRequestUrlExcluded方法。

 private boolean isRequestUrlExcluded(final HttpServletRequest request,final HttpServletResponse response) {
        boolean flag = false;
        String pathInfo = "";
        String servletPath = request.getServletPath();
        if (request.getPathInfo()!=null) pathInfo = request.getPathInfo();
        if (
                servletPath.equals("/testSend.jsp") ||
                pathInfo.equals("/ds/getDataXMLInStr") ||
                
           ){
            flag = true;
        }else if(servletPath.indexOf("login.jsp")>-1){
            flag = false;
      }
        return flag;
    }

  将需要放行的请求置为flag为true的条件中即可。

posted @ 2015-06-18 09:59  有志竟成  阅读(3912)  评论(0编辑  收藏  举报