8

SpringSecurityを使用して非常に単純な基本認証を実行しようとしています。名前空間を適切に構成しましたが、サーバーに例外はありません。私の「servlet.xml」には、SpringSecurityの次のものがあります。

<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そこにログインできないことです。誰かが私が間違っていることを見ることができますか?

前もって感謝します!;-)

4

2 に答える 2

26

自動応答

T_Tこのためのコードに頭をぶつけてから2日...

コードの問題ではないようです。Weblogicを使用していましたが、Weblogicは「authorization」ヘッダーを使用してリクエストをキャプチャするため、authentication-managerに到達しません。Glassfishで試してみましたが、問題なく動作します。

いくつかの情報を検索して、次のブログで役立つエントリを見つけました:http: //yplakosh.blogspot.com/2009/05/how-to-fix-basic-authentication-issue.html

Weblogicサーバー(<security-configuration>セクション)からconfig.xmlに次の行を追加します。

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

Weblogicは基本認証クレデンシャルを再度取得しないため、それを処理するのは認証マネージャになります。

私はそれが誰にとっても時間を節約できることを願っています:-)

于 2010-04-23T08:30:45.140 に答える
1

試す:

<http auto-config="true>
   <security:intercept-url method="POST" pattern="/**" access="ROLE_USER" />
   <http-basic />
</http>
于 2010-04-22T14:35:53.760 に答える