2010-04-22 140 views
7

我想用Spring Security做一個非常簡單的基本認證。我已經正確配置了名稱空間,並且服務器中沒有任何異常。在我的「servlet.xml中」我已經拿到了下一個春季安全:春季安全HTTP基本認證

<security:http> 
    <security:http-basic></security:http-basic> 
    <security:intercept-url method="POST" pattern="/**" access="ROLE_USER" /> 
</security:http> 


<security:authentication-manager alias="authenticationManager"> 
    <security:authentication-provider> 
     <security:user-service> 
      <security:user name="cucu" password="tas" authorities="ROLE_USER" /> 
      <security:user name="bob" password="bobspassword" authorities="ROLE_USER" /> 
     </security:user-service> 
    </security:authentication-provider> 
</security:authentication-manager> 

它幾乎一切都完美:不屬於POST不提示任何登錄表單的方法,以及POST方法提醒。問題是,那也不cucu,既不bob可以在那裏登錄。任何人都可以看到我做錯了什麼?

在此先感謝! ;-)

+0

你使用的是什麼版本的Spring Security? – Gandalf 2010-04-22 14:33:12

+0

對不起,我忘了,Spring Security 3 – raspayu 2010-04-22 15:38:59

+0

你可以發佈實際錯誤的堆棧跟蹤/輸出嗎? – Gandalf 2010-04-22 16:19:20

回答

23

自動應答

T_T兩個打我的頭靠在這個代碼的日子......

看起來是不是有問題代碼。我正在使用Weblogic,Weblogic使用「授權」頭來捕獲請求,所以它無法訪問我的驗證管理器。我用glassfish嘗試過,它完美地工作。

搜索一些信息,我發現在未來的博客中有用的條目: http://yplakosh.blogspot.com/2009/05/how-to-fix-basic-authentication-issue.html

添加在config.xml中的下一行,從我的Weblogic服務器(<security-configuration>部分):

<enforce-valid-basic-auth-credentials>false</enforce-valid-basic-auth-credentials>

Weblogic不會再次捕獲基本身份驗證憑證,因此它將成爲您的身份驗證管理員來處理它。

我希望它可以節省一些時間給任何人:-)

+4

非常感謝您發佈此解決方案。我剛開始遇到這個問題,並在搜索Goolgle後找到您的帖子。 – 2010-11-17 16:08:02

+0

嘿嘿,我真的很高興幫助你節省了一些時間;-) – raspayu 2010-11-18 13:20:25

1

嘗試:

<http auto-config="true> 
    <security:intercept-url method="POST" pattern="/**" access="ROLE_USER" /> 
    <http-basic /> 
</http> 
+0

感謝您的建議。我也嘗試過使用auto-config,但我想我錯過了其他的東西......但不知道是什麼。我認爲我的代碼非常簡單,應該不會有問題。 – raspayu 2010-04-22 15:38:32