springsecurity记住我登录时访问无权限接口,跳转登录界面

这篇具有很好参考价值的文章主要介绍了springsecurity记住我登录时访问无权限接口,跳转登录界面。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

springsecurity记住我登录时访问无权限接口,跳转登录界面,SpringSecurity,java,spring

  1. 未登录状态:如果用户尝试访问需要认证的资源但未登录,即未经过认证,在这种情况下应该跳转到登录页面或者返回登录提示,让用户进行身份验证。通过调用 AuthenticationEntryPoint 可以统一处理未登录状态下的跳转逻辑,确保用户体验一致性。

  2. 记住我状态:用户可能选择了“记住我”功能,在记住我状态下,用户的会话仍然有效,但并没有进行实际的身份验证。如果用户在记住我状态下访问需要认证的资源,也应该跳转到登录页面进行实际的身份验证,而不是直接拒绝访问。通过调用 AuthenticationEntryPoint 可以统一处理记住我状态下的跳转逻辑,提高系统的安全性和用户体验。

这就是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。文章来源地址https://www.toymoban.com/news/detail-831448.html

到了这里,关于springsecurity记住我登录时访问无权限接口,跳转登录界面的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • QT:当登录成功时,关闭登录界面,跳转到新的界面中

    1 继续完善登录框,当登录成功时,关闭登录界面,跳转到新的界面中 widget.h 2 新建一个工程文件,将默认提供的代码加上注释信息 工程管理文件.pro 3 思维导图  

    2024年02月15日
    浏览(44)
  • pyQt界面制作(登录+跳转页面)

    首先打开Qt-D esigner,选择Widget,它和Main Window的区别在于:Main Window有工具栏菜单栏状态栏等,而Widget就适合做个简单的登录界面。如下图:   首先如下列图,在这里可以设置标题为登录,然后插入一个logo图片,也可以给字体标题设置大小样式等。 接下来输入框都是用Line Edit,

    2024年01月23日
    浏览(39)
  • PyQt5登录界面跳转

    目录 1、设计ui界面 2、设计逻辑代码,实现登录界面跳转 3、结果 1、设计ui界面 设计后的ui界面 在这里可以设置密码不显示 这里可以设置快捷键 最后将ui界面转为py文件后获得的逻辑代码为:(文件名为 Login.py ) 2、设计逻辑代码,实现登录界面跳转 这里登录后,我们转到

    2024年02月12日
    浏览(43)
  • 使用PYQT5设计登录界面并实现界面跳转

    目录   1 UI登录界面的布局 2 UI登录界面布局对应的代码 3 登录界面和界面跳转完整代码 4 跳转界面代码函数和优化界面代码 5 最终效果        其中, 欢迎使用 XXXX 软件管理员密码 使用的是左边功能的 label 类、 登录 使用的是左边功能的 Push Button 类、 管理员和密码的输入

    2024年02月02日
    浏览(52)
  • Android学习(一)--用户登录注册界面(界面跳转+背景音乐)

    目录 1.功能要求 2.功能实现流程图 3.功能演示 4.界面与功能  4.1登录界面 4.1.1界面展示 4.1.2登录界面功能简介 4.1.3界面代码 4.1.4登录按钮点击事件 4.1.5退出按钮点击事件  4.1.6背景音乐点击事件 4.1.7记住密码 5.Java源码 (1)三个界面布局,体现文本框、编辑框、单选按钮、复

    2024年02月05日
    浏览(49)
  • QTday2(登录界面+跳转——小黄人篇)

    1.完成登录框的按钮操作,并在登录成功后进行界面跳转 form.h: widget.h: form.cpp: main.cpp: widget.cpp:

    2024年02月10日
    浏览(29)
  • 用Android Studio编写一个登录界面和注册界面并可以跳转

    下面是使用 Android Studio 编写一个简单的登录界面和注册界面,并实现跳转的示例代码。 首先,在 res/layout 目录下创建一个名为 activity_login.xml 的布局文件,作为登录界面的布局: 接下来,在 res/layout 目录下创建一个名为 activity_register.xml 的布局文件,作为注册界面的布局:

    2024年04月09日
    浏览(86)
  • Android Studio 制作微信,登入界面,输入密码界面,跳转手机登录界面,以及聊天界面

    2.打开Android Studio。 3.选择 \\\"Create New Project\\\"。 4.在 \\\"Create New Project\\\" 对话框中,输入项目名称、选择存储位置等信息。 5.选择最低支持的Android版本,并选择一个适合的活动模板(例如,Empty Activity)。 6.点击 \\\"Finish\\\" 创建新的Android项目。 8.打开 \\\"activity_main.xml\\\" 文件,该文件用于定

    2024年02月07日
    浏览(44)
  • 小米手机连接校园网无法跳转到登录界面

    问题: 小米手机 MIUI12 系统,在连接校园网后显示需要登录,但是无法跳转到登录界面。连接其他wifi是没有问题的,但凡是需要登录的wifi就不行,会出现 net:ERR_CONNECTION_RESET... 试过很多方法,感觉这可能是个玄学,但是都试一试,或许哪个就可以了呢ahh 1. 一试就可以成功跳

    2024年02月10日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包