私はショッピングカートのプロパティを持つカスタムUserDetails
の実装を持っています。私は、匿名ユーザーがあまりにもMyUserDetailsのインスタンスになりたいスプリングセキュリティのゲストユーザ
class MyUserDetails implement UserDetails {
private Cart cart;
// getters & setters + other properties....
}
、これまでのところ、私はそれ以外の作業それを得ているが、すべてanonymousUsersは同じショッピングカートを持っています!
@Override
protected void configure(HttpSecurity http) throws Exception {
MyUserDetails anonymousUser = new MyUserDetails();
anonymousUser.setUsername("anonymousUser");
http.anonymous().principal(anonymousUser);
...
}
どのように私は、各セッションの匿名ユーザーためMyUserDetailsの新しいインスタンスを返すことができるのでしょうか?
私はあなたのセッションでショッピングカートを持っていると書いています。あなたの認証はショッピングカートを必要としません。 'UserDetails'はコアユーザ情報のみを含むべきです。 – dur
@durショッピングカートはユーザーに属していると思います。たとえば、登録ユーザーのショッピングカートをログイン間や別のデバイス間に保存したい場合などです。 – Mico
もちろん、それはユーザの一部ですが、それが 'UserDetails'の一部であることを意味するものではありません。ショッピングカートをセッションに入れたり、データベースからロードすることができます。これは 'UserDetails'とは関係ありません。 – dur