首先,spring boot需要添加web的依赖,因为是基于web的拦截(拦截controller):
自定义权限注解:
package com.hf.mypractice.annocation;
import java.lang.annotation.*;
/**
* @Description: 定义权限注解
* @Date: 2019/1/11
* @Auther: wm yu
*/
@Target({ElementType.METHOD,ElementType.TYPE}) //ElementType.METHOD:注解作用在方法 ElementType.TYPE:作用于类、接口、枚举,但不能是注解
@Retention(RetentionPolicy.RUNTIME)
@Inherited //可以被继承 ,作用在父类上面,其子类有该注解的作用
@Documented //将此注解包含在 javadoc 中 ,它代表着此注解会被javadoc工具提取成文档。在doc文档中的内容会因为此注解的信息内容不同而不同。
public @interface UserAuthority {
String name() default "yu";
String password();
}
自定义拦截器:
package com.hf.mypractice.intercept;
import com.hf.mypractice.annocation.UserAuthority;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.web.method.HandlerMethod;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* @Description: 权限校验拦截器
* @Date: 2019/1/11
* @Auther: wm yu
*/
@Slf4j
public class UserAuthorityInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServ