SpringSecurity 中 ,tohen 过期了然后页面就显示403,然后使他跳转到登陆页面
时间: 2024-02-11 18:08:35 浏览: 100
Vue利用路由钩子token过期后跳转到登录页的实例
5星 · 资源好评率100%
当 token 过期时,Spring Security 会默认返回 403 错误码。为了让用户能够重新登录,需要在 Spring Security 的配置中添加一个 `AuthenticationEntryPoint`。在这个 `AuthenticationEntryPoint` 中,可以自定义处理过期 token 的逻辑,例如重定向到登录页面。
以下是一个简单的示例代码:
```java
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
private RestAuthenticationEntryPoint restAuthenticationEntryPoint;
@Override
protected void configure(HttpSecurity http) throws Exception {
http.csrf().disable()
.authorizeRequests()
.anyRequest().authenticated()
.and()
.exceptionHandling()
.authenticationEntryPoint(restAuthenticationEntryPoint);
}
}
@Component
public class RestAuthenticationEntryPoint implements AuthenticationEntryPoint {
@Override
public void commence(HttpServletRequest request, HttpServletResponse response,
AuthenticationException authException) throws IOException, ServletException {
response.sendRedirect("/login"); // 重定向到登录页面
}
}
```
在上面的代码中,我们创建了一个 `RestAuthenticationEntryPoint` 类来处理过期 token 的情况。在 `SecurityConfig` 中,我们将这个 `RestAuthenticationEntryPoint` 配置为 `AuthenticationEntryPoint`,这样当 token 过期时,Spring Security 就会调用这个类中的 `commence` 方法,然后重定向到登录页面。
阅读全文