我们在配置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的条件中即可。
时间: 2024-10-13 12:43:40