3

HTTP基本認証を必要とするSpringWebサービスがあり、Javascriptを介してアクセスしようとしています。

私のSpringセキュリティ構成には次の定義があります。

<security:http create-session="stateless"> 
    <security:http-basic />
    <security:intercept-url pattern="/item/**"
        access="ROLE_ADMIN,ROLE_USER" />
</security:http>

    <security:authentication-manager>
    <security:authentication-provider>
        <security:user-service>
            <security:user name="Aladdin" password="open sesame"
                authorities="ROLE_USER, ROLE_ADMIN" />
        </security:user-service>
    </security:authentication-provider>
</security:authentication-manager>

そして、私のJavascriptクライアントはそれに応じてAuthenticationヘッダーを設定しています。ただし、応答に対して常に401を取得します。

Request URL:http://localhost:8080/item
Request Method:GET
Status Code:401 Full authentication is required to access this resource

Request
Accept:application/json, text/javascript, */*; q=0.01
Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8
Authorization:BASIC QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Cache-Control:no-cache
Connection:keep-alive
Cookie:JSESSIONID=x8foxdzzuc8g1cqnhxj34u4tv
Host:localhost:8080
Pragma:no-cache
Referer:http://localhost:8080/index.html
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.56 Safari/536.5
X-Requested-With:XMLHttpRequest

Response:
Cache-Control:must-revalidate,no-cache,no-store
Content-Length:1461
Content-Type:text/html;charset=ISO-8859-1
Server:Jetty(8.1.3.v20120416)
WWW-Authenticate:Basic realm="Spring Security Application"

私のリクエストに欠けているものはありますか?ウィキペディアのユーザー/パスワードの例を使用して、エンコーディングが混乱していないことを確認しました。これは、ここの例と一致します。

4

1 に答える 1

1

問題は思ったより単純で、Authorization ヘッダーには「BASIC」ではなく「Basic」と表示されているはずです。それを変更するだけで、すべてが修正されました。

于 2012-06-26T06:47:38.870 に答える