请求正文xml中的Spring sessionid而不是JSSessionID cookie
我的大多数Spring应用程序都使用常规的Spring安全性。但是,有一个(不可协商的)要求,即某些页面必须由一个嵌入式系统访问,该嵌入式系统只能通过POST正文中的XML进行通信。也就是说,它不能传递'JSESSIONID=xxx'或接收cookie,而是希望在登录时通过xml接收会话ID,然后在将来的请求中重复 所以,在登录时(我在这里简化了),它会发送请求正文xml中的Spring sessionid而不是JSSessionID cookie,spring,spring-security,Spring,Spring Security,我的大多数Spring应用程序都使用常规的Spring安全性。但是,有一个(不可协商的)要求,即某些页面必须由一个嵌入式系统访问,该嵌入式系统只能通过POST正文中的XML进行通信。也就是说,它不能传递'JSESSIONID=xxx'或接收cookie,而是希望在登录时通过xml接收会话ID,然后在将来的请求中重复 所以,在登录时(我在这里简化了),它会发送 <username>user</username><password>password</pas
<username>user</username><password>password</password>
userpassword
在一篇文章中,作者希望
<sessionid>xxxxxx</sessionid>
xxxxxx
作为回应。然后,所有后续请求将重复
标记的内容作为其主体的一部分
有没有办法让spring security使用它
我的第一次尝试是尝试编写一个过滤器,将sessionid和crowbar a JSESSION=提取到主体中,但结果为时已晚(当我有一个请求对象从中获取主体时,spring security已经建立了会话,我看不到任何类似“request.setSession(id)”的方法)。我唯一能想到的另一件事是在SpringSecurity之外编写自己的会话处理,但如果我不必这样做那就太好了
谢谢为什么不能重用Spring Security创建的会话的会话id?啊,有一个想法-我可以使用Spring Security的sessionid进行初始握手,将其配置为不为非登录页面的页面请求创建新会话,并让所有其他控制器根据数据库中的sessionid条目手动设置用户。唯一的缺点是我仍然无法使用会话变量,除非有人知道我可以通过id获取会话变量的方法。。。?