我尝试通过在 HTTP 标头中发送凭据来对我的 Spring 应用程序进行身份验证(基本身份验证)。
我已经保护了资源
http://localhost:8080/app/home
未经身份验证的用户被重定向到
http://localhost:8080/app/login.jsp
现在我使用 HTTP 标头中的编码凭据向 localhost:8080/app/home 发送一个 GET 请求,如下所示:
Authorization: Basic c2VjcmV0dXNlcjpzZWNyZXRwd2Q=
我使用“Advanced Rest Client”Chrome 插件发送请求,所以我很确定标头已正确发送。但是服务器通过重定向到 login.jsp 页面来回答。
似乎 Spring 不采用 Authorization 标头。我是否需要配置我的 Spring 应用程序以接受“授权:基本”HTTP 标头?
这是我的安全配置.xml:
<http use-expressions="true" access-denied-page="/login.jsp?authorization_error=true" xmlns="http://www.springframework.org/schema/security">
<intercept-url pattern="/login.jsp" access="permitAll" />
<intercept-url pattern="/**" access="hasRole('ROLE_USER')" />
<form-login authentication-failure-url="/login.jsp?authentication_error=true" default-target-url="/home"
login-page="/login.jsp" login-processing-url="/login.do" />
<logout logout-success-url="/index.jsp" logout-url="/logout.do" />
<anonymous />
</http>