1

<remember-me/>Spring Security の認証を利用しようとしています。セキュリティ コンテキストの行は次のようになります。

 <security:remember-me key="89dqj219dn910lsAc12" user-service-ref="jpaUserDetailsService"/>

私はUserDetailsService(テスト済みで動作中の)独自の実装を使用していますが、同じ問題が発生しているデフォルトのものでも試しました。これは次のとおりです。

  1. 「remember-me」チェックボックスをオンにしてログインすると、期待どおりに Cookie が生成されます。

    名前: SPRING_SECURITY_REMEMBER_ME_COOKIE; 値: c2FzczoxMjg1NTIxOTI1NzY4OmIxODQ5YTE2ZDY1MDVmZDFhNWRlN2Y2NzFlMzc1MmI0; ホスト: ローカルホスト; パス: /webapp; 安全: いいえ; 有効期限: 2010 年 9 月 26 日 (日) 17:25:25 GMT)

  2. ブラウザが再起動しました

  3. クッキーはまだある

  4. 保護されたページにアクセスしようとすると、「アクセスが拒否されました」というエラーが発生します。

    org.springframework.security.access.AccessDeniedException: アクセスが拒否されました

    文字列としての認証オブジェクト: org.springframework.security.authentication.RememberMeAuthenticationToken@ffcaab94: プリンシパル: de.myapp.businessobjects.AppUser@35c12e: ユーザー名: ユーザー名; 守られたパスワード]; 有効: true; AccountNonExpired: 真; credentialsNonExpired: true; AccountNonLocked: 真; 個人情報: 32768; ; 資格情報: [保護]; 認証済み: true; 詳細: org.springframework.security.web.authentication.WebAuthenticationDetails@957e: RemoteIpAddress: 127.0.0.1; セッション ID: null; いかなる権限も付与されていません

何が問題なのか、どこからデバッグを開始すればよいのかわからず、混乱しています。助けてください?

4

1 に答える 1

1

ユーザーは正常に認証されたようですが、何らかの理由で権限 (ロール) がありません。そのため、 から返されたユーザーの詳細がUserDetailsServiceから適切な権限を返すことを確認してくださいUserDetails.getAuthorities()

于 2010-09-12T18:04:46.727 に答える