0

我的大部分 Spring 应用程序都使用常规的 Spring Security。但是,对于某些页面有一个(不可协商的)要求,以供嵌入式系统访问,该嵌入式系统专门通过 POST 正文中的 XML 进行通信。也就是说,它无法传递 'JSESSIONID=xxx' 或接收 cookie,而是希望在登录时通过 xml 接收 sessionid,然后在以后的请求中重复返回。

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

<username>user</username><password>password</password>

http://example.com/xml_login的帖子正文中并期望

<sessionid>xxxxxx</sessionid>

作为回应。然后所有后续请求将重复<sessionid>标签的内容作为其主体的一部分。

有什么想法可以让 Spring Security 使用它吗?

我的第一次尝试是尝试编写一个过滤器来提取 sessionid 和撬棒一个 JSESSION= 到正文中,但结果为时已晚(当我有一个请求对象从中获取正文时,spring security 已经建立会话,我看不到任何做任何事情的方法,比如'request.setSession(id)')。我能想到的唯一另一件事是在 spring 安全性之外编写我自己的会话处理,但如果我不必这样做会很好。

谢谢

4

0 回答 0