网上自定义Filter的实现很多,这里我提供一种Springboot在代码中的实现。
Shiro提供的Filter我这里不一一介绍了,一般基于web会话的都是使用authc(这是FormAuthenticationFilter)。根据我无状态的登陆需求,选择了AccessControlFilter,网上也有说这个是最被广泛使用的,具体还是看自己需求吧。
Filter代码:
/**
* @author Created by pangkunkun on 2017/11/18.
*/
public class MyAccessControlFilter extends AccessControlFilter {
private static final Logger log= LoggerFactory.getLogger(MyAccessControlFilter.class);
/**
*
* 表示是否允许访问;mappedValue就是[urls]配置中拦截器参数部分,如果允许访问返回true,否则false;
* (感觉这里应该是对白名单(不需要登录的接口)放行的)
* 如果isAccessAllowed返回true则onAccessDenied方法不会继续执行
* 这里可以用来判断一些不被通过的链接(个人备注)
* * 表示是否允许访问 ,如果允许访问返回true,否则false;
* @param servletRequest
* @param servletResponse
* @param object 表示写在拦截器中括号里面的字符串 mappedValue 就是 [urls] 配置中拦截器参数部分
* @return
* @throws Exception
* */
@Override