Spring安全无状态配置

Din*_* Tw 5 java spring spring-security

我正在尝试通过遵循文档来实现Spring的无状态身份验证,http://static.springsource.org/spring-security/site/docs/3.1.x/reference/security-filter-chain.html#filter-chains -with-NS

所以在我的spring-security.xml中,我有

<!-- Stateless RESTful service using Basic authentication -->  
<http pattern="/restful/**" create-session="stateless">  
  <intercept-url pattern='/**' access='ROLE_REMOTE' />  
  <http-basic />  
</http>
Run Code Online (Sandbox Code Playgroud)

当我使用浏览器测试它时,需要对第一个请求进行身份验证.但随后不是.根据我的理解,我应该看到用户登录提示.有什么我想念的吗?

axt*_*avt 4

不会。如果是基本身份验证,浏览器会记住您输入的凭据,并自动将其与后续请求一起发送。

为了确保您的配置确实是无状态的,您可以尝试使用命令行工具(wgetcurl)发出一些请求(带或不带身份验证)。

  • 我想我现在知道它是如何工作的了。当不使用create-session =“stateless”时,我将能够使用curl选项--cookie-jar cookie.txt将会话保存在cookie中,然后使用curl选项--cookie cookies.txt使用保存在cookie中的会话以通过认证。但是,当使用 create-session="stateless" 时,会话将无法工作,我必须为每个请求提供用户名和密码。 (3认同)