Spring Securityでセキュリティの側面を実装しているうちに、Authentication
とUserDetails
の両方にgetAuthorities
,などの重複したメソッドがあることに気付きました。なぜ、SpringはAuthenticationとUserDetailsのフィールドを重複していますか?
この背景には何がありますか?私には無用な冗長性のようだ。
編集:人々は署名をチェックするのが面倒です。両方のインタフェースには同じメソッドがあります。私はそのことを言及していないとgetCredentials
とgetAuthorities
は同じです。なぜその地元の人々はその仮定を作るのですか?
私もこのことに驚いています。私は良い説明はありません。私はカスタムのAuthenticationProviderを実装し、 'authenticate()'メソッドを実装しました。これは返さなければなりません: 'new new UsernamePasswordAuthenticationToken(新しいユーザ(ユーザ名、パスワード、AUTHORITIES)、パスワード、AUTHORITIES);' – MarcFasel
春のセキュリティのいくつかの試験の後、私はこれを次のように考えます: 'Authentication'はSpring Securityだけが使用します。 'UserDetails'はクライアントコードのみを対象としています。異なるコーディング日付のために、それらは幾分交差する。だから、 'Authentication'はあなたのためではないことに留意してください。うまくいけば、彼らはSpring Security 3.0でそれを取り除くことを望みます。 –