springboot登陆拦截器Java代码
时间: 2023-06-28 18:05:48 浏览: 102
SpringBoot 自定义拦截器 的 源代码
5星 · 资源好评率100%
下面是一个简单的 Spring Boot 登录拦截器的示例代码:
```java
@Component
public class LoginInterceptor implements HandlerInterceptor {
@Autowired
private RedisTemplate<String, Object> redisTemplate;
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
// 判断用户是否已经登录
String token = request.getHeader("token");
if (StringUtils.isEmpty(token)) {
throw new RuntimeException("用户未登录,请先登录!");
}
Object user = redisTemplate.opsForValue().get(token);
if (user == null) {
throw new RuntimeException("用户未登录,请先登录!");
}
return true;
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
}
}
```
在上面的代码中,我们使用了 Redis 存储用户的登录信息。在实际的项目中,你可能会使用其他的存储方案,例如 JWT、Session 等,但是拦截器的实现思路都是类似的。通过拦截器,我们可以在用户访问受保护的资源之前,先判断用户是否已经登录,如果没有登录,则抛出异常并返回给前端。
阅读全文