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、怎么查看一个网站是用什么语言编写的等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)