2021-04-06 SpringSecurity登录 跨域JSESSIONID失效

2021-04-06 SpringSecurity登录 跨域JSESSIONID失效,第1张

SpringBoot + SpringSecurity + 前后端分离 (前端 127001:8848,后端 localhost:8998)

登录和其他请求的JSESSIONID(存入cookie内)不同,导致其他请求给后端的JSESSIONID为未登录的无效SESSIONID,提示未登录。

顺序:登录(/login) ---> 组织结构(/depts) ---> 个人信息(/staff/getOne/wld)

登录:响应Cookie

组织结构:响应Cookie

个人信息:请求Cookie

后端

顺序:登录(/login) ---> 个人信息(/staff/getOne/wld) ---> 组织结构(/depts)

登录:响应Cookie

个人信息:无Cookie

组织结构:响应Cookie

后端

A、B两次的测试登录和其他的 *** 作Cookie都不同,说明后端响应请求成功,但响应JSESSIONID并没有存入到本地,以致后序的 *** 作拿不到Cookie中的JSESSIONID,能获取后端传来JSESSIONID的拿到了一个新的JSESSIONID(A中组织结构),不能获取后端传来JSESSIONID的也没有请求Cookie(B中个人信息)。

开启withCredentials后,服务器才能拿到你的cookie。当然后端服务器也要设置允许你获取你开启了才有用(之前有设置)

loginhtml(登录):没有开启

show-informhtml(个人信息):开启

struct-treehtml(组织结构):开启 (但是dataType没有指定,所以在A、B测试中其均有响应Cookie)

SpringSecurity中登录的过滤器

其他请求的过滤器

1、每次调试前,浏览器缓存、cookie啥的清除干净,方便查找问题

2、改动要完整,要清楚是干什么的(前端loginhtml没有开启withCredentials是这次的主要问题)

javascript 假如:服务器返回的结果为data (json格式)//服务器返回的data 是json 格式的字符串 需加入下面注释的代码 //① data=eval(data); //② data=JSONparse(data); for(var key in data) { alert("key:"+key+"--> value:"+data[key])

一般的情况看页面的后缀名:

Server Side Includes 技术,拓展名为shtml或html或htm

PHP技术,拓展名为php

JSP技术,拓展名为jsp或jsf(JSF技术是JSP技术的拓展)

ASPNET技术,拓展名为aspx (x 代表extension)

ASP技术,拓展名为asp

ColdFusion技术,拓展名为cfc

好点的网站,一般用资源转向功能(就向JSP中webxml定义的名字,把HOME转向到homejsp,就隐藏了拓展名)。或者用Apache有一个URL Rewriting的Module,PHP网站的拓展名改变,就常用这个URL Rewriting,可以把php拓展名改成任意名字。

方法(1):

查看该网站的开发开放平台。

比如:GOOGLE有个Google Code,里面提供GOOGLE各种Search Engine API,还有Google AJAX。那么GOOGLE提供的API全是JAVA的(全无PHP,ASP等),由此可以判断GOOGLE必定就是JSP。

再比如:去维基百科,当你点到某些提交信息的按钮时候,IE的状态栏(下方)会马上呈现php

的拓展名。正常在地址栏上看不到php的原因是,Wikipedia会把你提交信息后,转到另一个html

页面,而不会直接显示那个php页面。

方法(2):

学习JSP,PHP等相关技术,就能了解用这些技术开发的网站的特点,根据结构就可以判断。

比如:校内网,他们在招聘开发者只要求回JSP,Struts(JSP MVC的结构之一)。而且校内大部分开放平台开发的游戏都是JSP写的,由此断定,校内就是用JSP的(其实校内拓展名do是典型的JSPStruts)。

比如:百度,从它贴吧,知道上提交模式,以及百度大部分拓展名都被隐藏(PHP网站经常用apache里的功能来隐藏拓展名)来看,百度就是用PHP的。

方法(3):

在该网站的招聘要求中,看看应聘网站后台程序员,需要会什么语言。 校内网的招聘网页,就是个好例子。

方法(4) //个别情况

用IE打开>

1在WebBrowser中获取Cookie

CookieContainer myCookieContainer = new CookieContainer();

string cookieStr = webBrowser1DocumentCookie;

string[] cookstr = cookieStrSplit(';');

foreach (string str in cookstr)

{

string[] cookieNameValue = strSplit('=');

Cookie ck = new Cookie(cookieNameValue[0]Trim ()ToString(), cookieNameValue[1]Trim ()ToString());

ckDomain = "信息传给>

以上就是关于2021-04-06 SpringSecurity登录 跨域JSESSIONID失效全部的内容,包括:2021-04-06 SpringSecurity登录 跨域JSESSIONID失效、java 怎么获取uri的jsessionid、怎么查看一个网站是用什么语言编写的等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9315916.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存