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的条件中即可。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步