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