
机器没有,也无法保留饼干.所以我无法通过JSESSIONID使用会话数据.我只有在Bar中找到的sessionId.我的系统应该在第一次请求时授予此sessionId.那是,
第1步:机器向我发送会话请求
步骤2:Web应用程序创建会话,然后向计算机发送会话类型响应,然后在该计算机中保存并在后续请求中使用.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <Foo version="2.0" xmlns="http://www.example.com/ns"> <Bar sessionId="2" /> <Session quux="Monitor" seq="123"> ... </Session> </Foo>第3步:机器和Web应用程序之间的通信现在使用sessionId.
问题:
> Spring Security是否可以根据sessionId为会话分配会话?在这种情况下,XML中的sessionId就像cookie JSESSIONID一样.我是否可以配置Spring Security,以便从XML而不是HTTP标头或URL中检索sessionID?
>我想知道其他系统是否存在这类问题,以及我可以谷歌更多地研究这类问题.
在请求之间保存令牌的组件是org.springframework.security.web.context.SecurityContextRepository的实现. Spring Security提供的一个开箱即用的实现使用HTTP Session作为令牌的存储区域.
同样,在每个请求上检查令牌的组件是org.springframework.security.authentication.AuthenticationProvider的实现.至少,您需要实现这两者的实现,以便在HTTP会话之外的每个请求上强制执行用于存储和检查身份验证令牌的自定义策略.
您可以查看my sample app以获取基于REST的应用程序的此策略的工作示例.我建议您在HTTP标头而不是请求正文中传递会话信息.它将减少您的实施工作并显着简化解决方案.
转载注明原文:java – 不使用cookie的Spring Security会话 - 乐贴网