Springsecurity使用浏览器登录失败返回302(跨域问题),前后端分离

Spring Security登录成功后报302 关于securityFilterChain的代码似乎没有什么问题,在排查后续代码中发现,我在LoginSuccessHandler和LoginFailureHandler中设置了客户端响应编码格式。@RestController:@Controller和@ResponseBody的结合体,两个标注合并起来的作用。上网查了很多文章,从spring security原理到302的原理应用与解决办法,我也跟着审视了一通代码。但是我的后来控制器中,由于是mybatisplus代码自动生成的。 阅读详情

问题:
在使用Springsecurity时使用postman访问登录失败能得到自定义错误信息401,但是使用浏览器访问的时候,当登录成功时能正常进入自定义配置类,但是失败是直接给浏览器返回一个状态码302,并且通过查看断点并不能进入配置类

原因:
springsecurity对未认证的访问会默认重定向一个接口,因前后端分离,所以不能实现前端自定义跳转到登陆页面的逻辑,实际修改方案就是后台修改springsecurity框架默认的302执行逻辑。

解决方法:
实现AuthenticationEntryPoint接口,覆写commence方法,修改返回状态值为401,修改配置。让前端去获取状态码执行前端的逻辑。

public class CustomAuthenticationEntryPoint implements AuthenticationEntryPoint {
    @Override
    public void commence(HttpServletRequest request, HttpServletResponse response,
                         AuthenticationException authException) throws IOException, ServletException {
        response.setStatus(HttpStatus.UNAUTHORIZED.value());
    }
}
 

@Configuration
public class BrowserSecurityConfig extends AbstractChannelSecurityConfig {
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        applyPasswordAuthenticationConfig(http);
        http.apply(validateCodeSecurityConfig)
        .and()
        .apply(smsCodeAuthenticationSecurityConfig)
        .and()
        .apply(imoocSocialSecurityConfig)
        .and()
        .sessionManagement()
        .invalidSessionStrategy(invalidSessionStrategy)
        .maximumSessions(securityProperties.getBrowser().getSession().getMaximumSessions())
        .maxSessionsPreventsLogin(securityProperties.getBrowser().getSession()
        .isMaxSessionsPreventsLogin())
        .expiredSessionStrategy(sessionInformationExpiredStrategy)
        .and()
        .and()
        .logout()
        .logoutSuccessHandler(onstepLogoutSuccessHandler)
        .deleteCookies("JSESSIONID")
        .and()
        .authorizeRequests()
        .antMatchers(
        securityProperties.getBrowser().getLoginPage(),
        securityProperties.getBrowser().getSignUpUrl())
        .permitAll()
        .anyRequest()
        .authenticated()
        .and()
        .cors()
        .and()
        .csrf().disable()
        .exceptionHandling().authenticationEntryPoint(new CustomAuthenticationEntryPoint());
    }
}

主要注意的代码:

1.response.setStatus(HttpStatus.UNAUTHORIZED.value());
2..exceptionHandling().authenticationEntryPoint(new CustomAuthenticationEntryPoint());
Spring boot+Spring security跨域返回302 问题: 前后端分离,后端使用的spring boot+spring security,调试过程中前端需要跨域访问后端的接口获取数据,尝试了网上提供的N种跨域方案都是返回302,其中一种方案如下: 调试发现,登录拦截器这边获取不到用户的登录信息,所以一直重定向到登录页面。 解决办法: 暂时还未解决,先取消登录拦截器进行调试工作,待续… ... 阅读详情

相关推荐

Spring Security 前后端分离登录,非法请求直接返回 JSON(1)

看完上述知识点如果你深感Java基础不够扎实,或者刷题刷的不够、知识不全面小编专门为你量身定制了一套针对知识面不够,也莫慌!还有一整套的,可以瞬间查漏补缺全都是一丢一丢的收集整理纯手打出来的。

2401_84024576的博客 710

关于SpringSecurity登陆成功出现302状态码

今天在重新整合SpringSecurity时候登陆成功一直出现302的问题:经过分析,原因是首先我访问的就是index.html页面:SpringSecurity默认的是登陆成功后继续跳转到你之前的页面,意思就是,比如现在访问一个需要登陆认证的页面,如果你没有登陆,SpringSecurity会先让你去登陆,如果你没有配置就进入的是SpringSecurity默认的那个登陆页,如果配置了就会访问你...

【欢迎关注公众号:冬瓜白】 1万+

别再问CAS能不能前后端分离了!手把手教你用SpringSecurity + Vue搞定单点登录

本文详细解析了如何在前后端分离架构下实现SpringSecurity与CAS单点登录的集成方案。通过重构CAS流程、定制SpringSecurity组件及Vue前端实现,解决了传统CAS无法适配RESTful风格的技术难题,并提供了完整的代码示例和优化建议,帮助开发者高效构建安全的单点登录系统。

weixin_33724046的博客 371

关于SpringSecurity配置中的一些问题解决(登录页面不跳转,报错302)

1.为何在自定义的登录页面中登录完页面不跳转? 在SpringSecurity 4 之后,其csrf默认是开启的,在配置中将其关闭就可以解决。 这行代码写在webSecurityConfig方法中最上边。(写在最后自测也可以) 2.formLogin表单登录的配置 其中loginPage()中的路径就是自定义的登录页面 后面的loginProcessingUrl("/login/...

mengmeng_sleep的博客 1万+

高分思路!挑战7天完成一篇网状meta DAY1-7

PASSION!继续析挑战,7天完成一篇网状meta分!

MR_SCI_help的博客 786

Petalinux 2021.1 + Vivado 2021 实战:手把手教你为Zynq板卡移植Linux并搞定AXI DMA驱动

本文详细介绍了基于Petalinux 2021.1和Vivado 2021工具链,为Zynq开发板移植Linux系统并开发AXI DMA驱动的全流程。从环境配置、硬件设计到驱动适配与性能优化,提供了实战避坑技巧和版本特异性问题的解决方案,帮助开发者快速构建高速数据传输系统。

weixin_42641741的博客 387

Spring Security 前后端分离登录,非法请求直接返回 JSON

and()这里有两个比较重要的属性:loginProcessingUrl:这个表示配置处理登录请求的接口地址,例如你是表单登录,那么 form 表单中 action 的值就是这里填的值。loginPage:这个表示登录页的地址,例如当你访问一个需要登录后才能访问的资源时,系统就会自动给你通过重定向跳转到这个页面上来。这种配置在前后端不分的登录中是没有问题的,在前后端分离的登录中,这种配置就有问题了。我举个简单的例子,例如我想访问/hello。

2401_84010784的博客 1114

AI Pika 生成进击的巨人动漫分镜案例

AI Pika 生成进击的巨人动漫分镜案例 Pika 是一个使用AI生成和编辑视频的平台。

独立开发,substack顶级编辑 2574

Spring Security前后端分离认证及记住我踩坑

Spring Security前后端分离认证 前言:Spring Security是spring提供的一个安全框架,提供了登录认证、密码保护、自动登录等。这是我目前学习到的功能,当然它的强大之处远不止这些了。Spring Security处理登录功能时使用的 form表单,底层获取参数使用的request.getParamter的形式获取的。但是前后端分离模式使用的是异步请求,所以在前后端分离模式下会出现很多问题。以下记录了我出现过的问题。 这里后端使用的是springboot+spring secur

互联网编程爱好者 2525

机器视觉应用工程师职位深度解析与面试指南

广东奥普特科技招聘机器视觉应用工程师,要求大专以上理工科专业背景,熟悉C/C++或PLC编程,具备自动化设备调试经验。岗位职责包括视觉项目方案评估、系统安装调试、售后技术支持及异常处理,需接受外派出差。该职位面向专业对口的应届生或实习生,强调动手能力、沟通技巧和吃苦耐劳精神。机器视觉工程师需掌握图像处理算法、硬件配置等核心技术,在工业自动化领域具有良好发展前景。求职者应注重编程能力和实践经验的积累,以胜任这一技术密集型岗位。

郑伟强dev的专栏 433

【使用FPGA实现MIPI DSI接口】——如何使用FPGA实现MIPI DSI接口?这是一个让许多开发者都感到困扰的问题。本文将介绍如何使用FPGA设计和实现...

【使用FPGA实现MIPI DSI接口】——如何使用FPGA实现MIPI DSI接口?MIPI DSI(移动产业处理器接口 - 显示串行接口)是一种用于在移动设备中传输视频数据的标准接口,它是目前大部分智能手机和平板电脑所采用的显示接口。首先,我们需要实现MIPI DSI的物理层接口。在实现MIPI DSI接口后,我们还需要编写驱动程序来控制MIPI DSI显示屏显示图像。这里只是提供了MIPI DSI接口的物理层代码示例,完整的MIPI DSI接口实现需要包括控制器和驱动程序等更多内容。

uote_e的博客 1998

springsecurity前后端分离登录认证_Spring Security 简单教程以及实现完全前后端分离...

Java后端,选择 技术博文,及时送达来自:ming-question链接:cnblogs.com/ming-question/p/11165775.htmlSpring Security是spring家的一个安全框架,入门简单。对比shiro,它自带登录页面,自动完成登录操作。权限过滤时支持http方法过滤。在新手入门使用时,只需要简单的配置,即可实现登录以及权限的管理,无需自己写功能逻辑代码。...

weixin_39877050的博客 3405

PLC如何控制电子膨胀阀(暖通空调/制冷系统)

电子膨胀在冷水机空调系统里广泛采用,大部分空调系统都会有电子膨胀阀,但是电子膨胀阀的控制接口和普通电磁阀完全不同,所以想要PLC直接控制电子膨胀阀,还是比较麻烦的,电子膨胀阀可以理解为一个简易步进电机,体积非常小,线圈和转子部分可以分离。下面我们看下PLC如何控制电子膨胀阀。

RXXW_Dor的博客 4761

前后端分离中关于springSecurity使用的坑

# 前后端分离中关于springSecurity使用的坑 1.问题抛出:当前后端未分离的时候,我们经常通过后端同时返回数据和页面给前端,但是当前后端分离的时候,我们只能通过Json数据来进行前后端的交互,例如登录授权过程,下面我来给大家讲一个之前踩过的坑: 2.问题出现:前后端分离的登录过程中,我们可以自定义拓展后端security框架内容实现根据不同的登录情况进行不同的数据响应,例如登录成功后我...

weixin_41406940的博客 806

[QMT量化交易小白入门]-四十九、中小盘策略是否还有未来,市值再平衡策略,年化收益率124%

该策略旨在通过定期再平衡持仓,保持投资组合中股票数量恒定(),并优先持有市值较小的股票。具体来说,策略每两天(period = 2)进行一次再平衡,根据当前市值对持仓进行调整,以实现微盘股的投资目标。中小市值策略对资金量要求有限制,资金量太大由于流动性不足,滑点可能较大,资金量太小,可能不能达到10-20只持仓,来分散风险,10-100w可能是比较理想的,后续可以根据波动率动态调仓,或波动率大于一定值时触发再平衡加入ROE或其他财务指标,或者研发投入强度大的专精特新企业,进行组合优化。

木头大左的博客 1184

RK3588 部署 YOLO26 目标检测:从环境搭建到 NPU 推理

采集图像(500+ 张,覆盖不同光照和角度)→ 筛选(删除模糊、无目标的图像)→ LabelImg 标注(选择 YOLO 格式)→ 划分 train:val:test = 7:2:1labelImg├── train/├── val/nc: 3类别顺序必须与 LabelImg 标注时一致。YOLO26 在 RK3588 上的部署流程是 PC 端训练 → ONNX 导出(opset=11)→ RKNN 转换(INT8 量化)→ 板端推理。

LXY_LOVE36的博客 418

java登陆302请求,【Java】spring security 前端登录后,请求后台api报302

问题描述我在spring boot项目中引入有了spring security来做登录验证这样的事情.因为是前后端分离的项目,所以,我的前端有个这样的登录请求function login(){$.ajax({useDefaultXhrHeader: false,type:"post",url:"http://127.0.0.1:8080/user/login",data:{"userName": ...

weixin_31755771的博客 1843

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

spring security前后端分离方案

1、spring security默认配置下仍然不是前后端分离,当登录成功、失败、访问未登录页面时都会302重定向到另一个页面。显然与我们想要的不同,我们需要返回json 2、spring security如何加入验证码校验 3、配置spring security使用redis存取session信息,符合分布式的规范 添加maven依赖 <dependency> <groupId>org.springframework.boot</gro

shuangyueliao的专栏 2498

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Spring Security 简单教程以及实现完全前后端分离

点击上方 "程序员小乐"关注公众号,星标或置顶一起成长每天凌晨00点00分,第一时间与你相约每日英文Leave all your unhappiness to yes...

吧主 628

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

springsecurity前后端分离登录认证_spring security简单教程以及实现完全前后端分离...

精品推荐国内稀缺优秀Java全栈课程-Vue+SpringBoot通讯录系统全新发布!作者:ming-questionhttps://www.cnblogs.com/ming-question/p/11165775.htmlspring security是spring家族的一个安全框架,入门简单。对比shiro,它自带登录页面,自动完成登录操作。权限过滤时支持http方法过滤。在新手入门...

weixin_39759881的博客 205

spring security简单教程以及实现完全前后端分离

spring security是spring家族的一个安全框架,入门简单。对比shiro,它自带登录页面,自动完成登录操作。权限过滤时支持http方法过滤。 在新手入门使用时,只需要简单的配置,即可实现登录以及权限的管理,无需自己写功能逻辑代码。 但是对于现在大部分前后端分离的web程序,尤其是前端普遍使用ajax请求时,spring security自带的登录系统就有一些不满足需求了。 因...

乔治大哥的博客 1045

认证和授权:前后端分离状态下使用Spring Security实现安全访问控制

而在前后端分离项目中,前后端是通过json数据进行交互,前端通过ajax请求和后端进行交互,ajax是无法处理302跳转的,所以我们希望不管是未登录还是登录成功,spring security都给前端返回json数据,而前端自己根据返回结果进行逻辑控制。默认情况下,spring security登录成功或失败,都会返回一个302跳转。按上边这样配置后,前端向先请求发token的接口获取一个token,然后在每次访问后端时都在请求头中带上这个token,后端验证了这个token后就会放行请求。

m0_71777195的博客 2204

Spring Security配置访问权限在登录页循环并报错302

spring security登录时陷入登录页面的循环,返回302状态码的问题。

个人学习笔记库,一篇一篇记录成长的足迹 2675

SpringBoot3整合SpringSecurity6+JWT实现前后端分离认证授权实战

在前后端分离架构下,身份认证与权限控制是保障接口安全的核心环节。传统基于Session的认证方式在分布式、多端场景中逐渐暴露出扩展性瓶颈,而JWT凭借无状态、跨域友好等特性,成为现代Web应用的主流方案。SpringSecurity作为Spring生态的安全框架,通过过滤器链机制提供完整的认证授权能力,在SpringBoot3中其配置方式发生了显著变化,如SecurityFilterChain组件化注册与requestMatchers的引入。本文从技术原理出发,剖析SpringSecurity6在无状态会话

weixin_34343308的博客 818
上一篇: 这些springCloud的问题你知道吗?
下一篇: spring bean 循环依赖问题
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值