Spring安全性如何处理http基本身份验证?

时间:2014-12-10 11:41:01

标签: java spring spring-security

我以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;?

1 个答案:

答案 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,您将成功通过身份验证,会话将立即关闭。因此,您不会对以下请求进行身份验证。