社区
Java EE
帖子详情
后端springboot集成shiro+前端vue,前后端分离项目,sessionid拿不到问题、跨域问题。
很搞笑的在打麻将
2019-09-26 02:36:16
后端springboot集成shiro之后,shiro框架会在浏览器端存一个 JSESSIONID ,
之前传统项目中页面每次请求都会带上JSESSIONID 到后台在进行权限验证操作等等,
可是现在是前后端分离,用户是访问前端项目,前端再访问服务端,那么这个JSESSIONID 就存不到用户浏览器中,
还会出现跨域问题,不知各位大佬都是如何解决的。
...全文
1871
3
打赏
收藏
后端springboot集成shiro+前端vue,前后端分离项目,sessionid拿不到问题、跨域问题。
后端springboot集成shiro之后,shiro框架会在浏览器端存一个 JSESSIONID , 之前传统项目中页面每次请求都会带上JSESSIONID 到后台在进行权限验证操作等等, 可是现在是前后端分离,用户是访问前端项目,前端再访问服务端,那么这个JSESSIONID 就存不到用户浏览器中, 还会出现跨域问题,不知各位大佬都是如何解决的。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
很搞笑的在打麻将
2019-09-29
打赏
举报
回复
跨域问题已经很轻易的 得到解决了 ,加了个spring注解即可,@CrossOrigin;
sessionid问题,最终个人解决方案是,用户登陆成功后,接口就返回给他sessionid,然后前端进行保存,后面每次请求都要在请求头上加上该值, AUTHORIZATION:0c82beaf-d2fa-424c-b6bb-5d6eff21a236
,后端需要修改一下shiro获取sessionid方式,具体如下:
1.首先自定义sessionManager会话管理bean;
2.修改获取sessionid方法;
如有异议欢迎下面坐,谢谢各位见解!
丁公子
2019-09-28
打赏
举报
回复
思路挺多的, 简单说几个吧 首先要说的是 JSESSIONID 是tomcat写到浏览器的, 跟shiro没什么关系, 有时候也叫SESSIONID, 这个具体跟你服务器有关, 也可以自定义名称, 在后端可以通过 request.getSession()拿到, 也可以通过 CookieUtils.getCookie("JESESSIONID")这种拿cookie的方式取到 1. 前后端分离,但部署时仍使用同一域名, 这样就不会存在跨域问题, 无论是前端静态代码, 还是前端node服务, 同一用nginx进行处理, 同理, 如果是2级域名,虽然域名不同, 也能做到cookie共享, 这样也可以拿到sessionid 2. 部署如果无法使用同一域名, 那么跨域问题就难免了, 需要跟前端共同研究下如何有效解决跨域问题, 后端其实加一些spring注解即可, 查下spring跨域即可 3. 其实说到底, shiro只不过是要取当前登录信息, 你可以不用 SESSION 实现登录, 可以用token, 这样相当于账号系统独立出来了, 跟域就没什么关系了
BUG收集者
2019-09-26
打赏
举报
回复
main.js axios.defaults.withCredentials=true; 拦截器 response.setHeader("Access-Control-Allow-Origin", "*"); response.addHeader("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS"); response.setHeader("Access-Control-Allow-Headers", "Authorization, Accept, Origin, X-Requested-With, Content-Type, Last-Modified"); response.setHeader("Access-Control-Allow-Credentials", "true");
springboot
集成
shiro
+
前端
vue
,
前
后端
分离
项目
遇到跨域以及
sessionid
拿
不到
等
问题
近期在写
前
后端
分离
的
项目
,由于
前
后端
分离
导致原来使用的
shiro
配置无法满足现有系统要求。同时在
前
后端
分离
项目
中存在的一些
问题
。例如,一些用户信息需要存储在
后端
方便进行安全性判断,但这些存储在
后端
的session
前端
却获取
不到
(特别奇怪),以及浏览器访问
后端
接口出现的
跨域
问题
。
springboot
+
shiro
+
vue
前
后端
分离
跨域
问题
工程为
前
后端
分离
模式,
后端
为
springboot
+
shiro
、
前端
为
vue
;
前端
部署在nginx中; 在此前提条件为
项目
正常,配置正常,不再赘述。
前端
调用
后端
接口服务时报
跨域
问题
:Response to preflight request doesn’t pass access control check: Redirect is not allowed for a preflight request. 解决方案: @Configuration public class CorsConfig implem
在
前
后端
分离
的
SpringBoot
项目
中
集成
Shiro
权限框架
项目
背景 公司在几年前就采用了
前
后端
分离
的开发模式,
前端
所有请求都使用ajax。这样的
项目
结构在与CAS单点登录等权限管理框架
集成
时遇到了很多
问题
,使得权限部分的代码冗长丑陋,CAS的各种重定向也使得用户体验很差,在
前端
使用
vue
-router管理页面跳转时,
问题
更加尖锐。于是我就在寻找一个解决方案,这个方案应该对代码的侵入较少,开发速度快,实现优雅。最近无意中看到springbo...
【
SpringBoot
·
Vue
·
Shiro
·
前
后端
分离
】关于登录认证后isAuthenticated依旧为false的
问题
1 前 言 最近在使用
SpringBoot
+
Vue
+
Shiro
练习,但写到登录模块时,却遇到了 session 无法保存的
问题
,也就是
前端
提交登录请求后,后台通过 subject.login(usernamePasswordToken) 登录认证完响应给
前端
,但是
前端
想再请求后台判断是否登录时 (登录响应时我没有使用
Vue
x 保存登录响应的数据) subject.isAuthenticated() 一直为 false。 提示: 若你所遇到的情况与上述类似,请查看一下
前端
Vue
组件是否配置以下代码,
vue
:跨域以及
sessionId
不一致
问题
解决方法
情景: 使用
Vue
和
SpringBoot
做
前
后端
分离
项目
,出现
跨域
问题
,因为
前端
访问调用
后端
3个接口, 第一:session校验 ,第二:登录 ,第三:查询接口 但是将session分别获取,然后打印出来,发现
sessionid
不一致,导致访问第三个查询数据接口而失败。
后端
springboot
处理: 拦截器preHandle中加入如下 代码: public boolean ...
Java EE
67,535
社区成员
225,849
社区内容
发帖
与我相关
我的任务
Java EE
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
复制链接
扫一扫
分享
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章