我以RESTful方式公开了一些web服务。在我的第一个表单中,用户需要登录并以下列方式在Authorization标头中发送登录凭据:
Authorization :Basic adajajffjfksal
现在在我的security-context.xml中,我已通过以下方式保护URL:
<http pattern="/login" create-session="stateless">
<intercept-url pattern="/**" access="ROLE_AUTHENTICATED" />
<http-basic />
</http>
成功登录后,我有另一个表格,一些参数将代表用户传递给服务器。会话会被创建吗?我是否必须再次在Authorization标头中传递用户凭据?这个登录请求是否会由于&#39; create-session =&#34;无状态&#34;&#39;?
答案 0 :(得分:1)
这段security-context.xml几乎没有任何意义
<http pattern="/login" create-session="stateless">
<intercept-url pattern="/**" access="ROLE_AUTHENTICATED" />
<http-basic />
</http>
它包含pattern="/login"
,因此整个块仅由spring security /login
的spring security考虑。换句话说,任何其他网址都会被忽略。
它包含create-session="stateless"
,因此不会创建任何会话。
结果是,如果您明确地使用正确的基本身份验证标头调用/login
URL,您将成功通过身份验证,会话将立即关闭。因此,您不会对以下请求进行身份验证。