我们有REST API的应用程序。它基于Spring,也使用Spring安全性。 例如,我们配置了一些基于角色的限制:如何使基于Spring的应用程序使用jsessionid URL参数工作
<sec:http auto-config="true" access-decision-manager-ref="accessDecisionManager">
<sec:intercept-url pattern="/auth/authenticate" access="IS_AUTHENTICATED_ANONYMOUSLY"/>
<sec:intercept-url pattern="/auth/logout" access="IS_AUTHENTICATED_FULLY"/>
<sec:intercept-url pattern="https://stackoverflow.com/users/**" access="USER"/>
</sec:http>
它正常工作与饼干,但现在我们需要启用的可能性,通过JSESSIONID作为URL PARAM代替饼干。我认为我们不需要在我们的代码中改变任何东西,但出现了一些问题。 我请求/登录方法并从响应复制jsessionid。从那以后,我尝试请求 /用户; JSESSIONID = *并得到了401状态码,这意味着应用程序没认出我。为了使这种方法有效,我们应该改变什么?
如果您在浏览器中禁用Cookie,然后登录会发生什么? – Ralph 2012-02-20 12:08:02
我得到了正确的JSON响应,例如{“result”:{“status”:“SUCCESS”,“message”:“Request Succeeded”,“timestamp”:1329740163355},“data”:{“email”:“user @ **。com“,”roles“:[”USER“]}}和标题来设置jsessionid cookies – Mikhail 2012-02-20 12:11:37
让我总结一下:JSessionID在浏览器中工作,但不在您的休息客户端中? – Ralph 2012-02-20 12:12:44