背景
自定义注解标注受保护的资源访问,当要访问的url被标注了@LoginRequied的时候就变成了一个受保护的资源,需要用户登录或者更进一步需要用户拥有某个权限才能操作。本项目使用的springboot2.0
话不多说直接上代码。
实现过程
注解类:LoginRequired
//省略import
/**
* 拦截声明
*/
@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
public @interface LoginRequired {
boolean value() default true;
}
现在有了我们想要使用的注解 下一步就是怎么去实现它,因为要对http请求进行拦截所以我们在这可以直接设置一个拦截器拦截所有的请求,当看到被拦截的请求有@LoginRequired注解的时候,我们再去判断是否符合条件。
下面我们来实现这个拦截器。
//省略import
/**
* 自定义的一个登录拦截器
*/
public class LoginInterceptor extends HandlerInterceptorAdapter {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
if