Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
请求正文xml中的Spring sessionid而不是JSSessionID cookie_Spring_Spring Security - Fatal编程技术网

请求正文xml中的Spring sessionid而不是JSSessionID cookie

请求正文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

我的大多数Spring应用程序都使用常规的Spring安全性。但是,有一个(不可协商的)要求,即某些页面必须由一个嵌入式系统访问,该嵌入式系统只能通过POST正文中的XML进行通信。也就是说,它不能传递'JSESSIONID=xxx'或接收cookie,而是希望在登录时通过xml接收会话ID,然后在将来的请求中重复

所以,在登录时(我在这里简化了),它会发送

<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获取会话变量的方法。。。?