写一个springboot的拦截器用来检验不同token访问不同的页面权限
时间: 2024-03-17 12:47:38 浏览: 13
好的,以下是一个简单的实现思路:
1. 创建一个自定义的拦截器类,并实现 HandlerInterceptor 接口。
2. 在 preHandle 方法中获取请求中的 token 参数,并根据不同的 token 值进行页面权限的判断,如果没有权限则返回 false,否则返回 true。
3. 在 Spring Boot 中配置拦截器,可以通过继承 WebMvcConfigurerAdapter 类并重写 addInterceptors 方法,将自定义拦截器添加到拦截器链中。另外,需要注意拦截器的顺序,因为多个拦截器的执行顺序是按照添加的顺序来的。
以下是一个简单的代码实现,仅供参考:
```java
public class TokenInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
String token = request.getParameter("token");
// 根据不同的 token 值进行页面权限的判断,如果没有权限则返回 false,否则返回 true。
if ("adminToken".equals(token)) {
return true;
} else if ("userToken".equals(token)) {
String uri = request.getRequestURI();
if ("/admin".equals(uri)) {
response.getWriter().write("该页面需要管理员权限!");
return false;
}
return true;
} else {
response.getWriter().write("token 无效!");
return false;
}
}
}
@Configuration
public class WebMvcConfig extends WebMvcConfigurerAdapter {
@Autowired
private TokenInterceptor tokenInterceptor;
@Override
public void addInterceptors(InterceptorRegistry registry) {
// 将自定义拦截器添加到拦截器链中,并指定拦截的路径
registry.addInterceptor(tokenInterceptor).addPathPatterns("/**");
}
}
```