java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > springsecurity跳转登录界面

springsecurity记住我登录时访问无权限接口跳转登录界面的处理方案

作者:星梦客

这篇文章主要介绍了springsecurity记住我登录时访问无权限接口跳转登录界面的处理方案,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧

贴一下springsecurity无权限时异常处理的逻辑

这就是springsecurity对于记住我的处理逻辑,我想要通过记住我登录的时候,访问无权限接口依然调用AccessDeniedHandler抛出无权限,下面是我的处理方案。

1.在自定义AuthenticationEntryPoint 指出authException instanceof InsufficientAuthenticationException异常返回无权限。

@Component
@Slf4j
public class MyAuthenticationEntryPoint implements AuthenticationEntryPoint {
    @Autowired
    ObjectMapper objectMapper;
    @Override
    public void commence(HttpServletRequest request, HttpServletResponse response,
                         AuthenticationException authException) throws IOException {
        response.setContentType("text/html;charset=UTF-8");
        log.warn("", authException);
        if (authException instanceof InsufficientAuthenticationException) {
            response.getWriter().write(objectMapper.writeValueAsString(R.error().code(HttpStatus.FORBIDDEN.value()).message("无权限!")));
        }else {
            response.getWriter().write(objectMapper.writeValueAsString(R.error().code(HttpStatus.UNAUTHORIZED.value()).message("未登录!")));
        }
    }
}

2.在配置类里定义http.anonymous().disable()//禁止匿名用户,防止未通过身份认证的用户进行鉴权,从而抛出InsufficientAuthenticationException。

到此这篇关于springsecurity记住我登录时访问无权限接口,跳转登录界面的文章就介绍到这了,更多相关springsecurity跳转登录界面内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文