2

HTTP ヘッダーで資格情報を送信することにより、Spring アプリケーションに対して認証 (基本認証) を試みます。

私は、例えば、リソースを保護しました

http://localhost:8080/app/home

認証されていないユーザーはリダイレクトされます

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

ここで、次のように HTTP ヘッダーにエンコードされた資格情報を含む GET 要求を localhost:8080/app/home に送信します。

Authorization: Basic c2VjcmV0dXNlcjpzZWNyZXRwd2Q=

「Advanced Rest Client」Chrome プラグインを使用してリクエストを送信するので、ヘッダーが正しく送信されると確信しています。しかし、サーバーは login.jsp ページへのリダイレクトで応答します。

Spring は Authorization ヘッダーを取らないようです。「Authorization: Basic」HTTP ヘッダーを受け入れるように Spring アプリケーションを構成する必要がありますか?

これは私の security-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>
4

1 に答える 1

2

http タグ内に http-basic タグを追加する必要があります。レルム名も追加します。

<http realm="My application name" ...>
  <http-basic />
  ...
</http>
于 2013-05-31T07:07:59.227 に答える