2

我尝试通过在HTTP标头中发送凭证来对我的Spring应用程序进行身份验证(基本身份验证)。在Spring中处理HTTP基本授权标头

我已经受保护,例如,资源

http://localhost:8080/app/home 

未认证用户重定向到

http://localhost:8080/app/login.jsp 

现在,我发送一个GET请求到localhost:8080 /应用/家庭与编码

Authorization: Basic c2VjcmV0dXNlcjpzZWNyZXRwd2Q= 

我使用“高级REST客户端”浏览器插件:在HTTP头这样的凭据发送请求,所以我很确定标题发送正确。但是服务器回复并重定向到login.jsp页面。

看来Spring没有采用Authorization标头。我是否需要配置Spring应用程序以接受“Authorization:Basic”HTTP标头?

这是我的安全-config.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> 

回答

2

您需要添加HTTP标签内的HTTP的基本标签。添加领域名称。

<http realm="My application name" ...> 
    <http-basic /> 
    ... 
</http> 
+0

真棒,作品! – Mirko