我的大多数Spring应用程序都使用常规弹簧安全性。但是,对于某些页面有一个(不可协商的)要求,嵌入式系统只能通过POST体内的XML进行通信。也就是说,它不能传递'JSESSIONID = xxx'或接收cookie,而是希望在登录时通过xml接收一个sessionid,然后在将来的请求中重复它。
因此,在登录时(我已在此处简化),它会发送
<username>user</username><password>password</password>
在帖子正文中http://example.com/xml_login并期待
<sessionid>xxxxxx</sessionid>
在回应中。然后,所有后续请求都将重复<sessionid>
标记的内容作为其正文的一部分。
任何想法如何让弹簧安全使用它?
我的第一次尝试是尝试编写一个过滤器来提取sessionid并将一个JSESSION =撬到身体中,但结果却太晚了(当我有一个请求对象来获取身体时,弹簧安全性已经建立了会话,我看不到做任何像'request.setSession(id)'这样的事情。我能想到的唯一另一件事就是在spring security之外编写自己的会话处理,但如果我不必这样做就很好。
感谢