8

Spring Security で次の Java Config を使用しています。

protected void configure(HttpSecurity http) throws Exception {
    http
        .authorizeRequests()
            .anyRequest().authenticated()
            .and()
        .httpBasic();
}

この構成に基づいて、すべての要求が認証されます。認証されずにコントローラをヒットするAnonymousAuthenticationFilterと、 は で Authentication オブジェクトを作成しますusername=anonymousUser, role=ROLE_ANONYMOUS

特定のコントローラーメソッドへの匿名アクセスを提供しようとしており、次のそれぞれを使用しようとしました:

  1. @Secured("ROLE_ANONYMOUS")
  2. @Secured("IS_AUTHENTICATED_ANONYMOUSLY")

コントローラ メソッドが呼び出されると、「HTTP ステータス 401 - このリソースにアクセスするには完全な認証が必要です」という応答が返されます。

ROLE_ANONYMOUSこのメッセージが表示される理由と、IS_AUTHENTICATED_ANONYMOUSLYこの構成を使用して動作しないように見える理由を理解するのに誰か助けてもらえますか?

ありがとう、
JP

4

1 に答える 1

3

セキュリティ構成により、認証されていないすべてのリクエストがブロックされています。コントローラーへのアクセスを許可する必要があります

.antMatchers("/mycontroller").permitAll()

以下も参照してください。

于 2014-03-13T17:32:01.370 に答える