2

Spring Security 3.1は新しい便利なPasswordEncoderと実装StardardPasswordEncoderを提供するので、私はそれらを現在のプロジェクトに実装しようとしています。ただし、ユーザーパスワードを保存/確認するときにPasswordEncoderがどのように機能するかについては疑問があります。新しいPasswordEncoderのコードは次のとおりです。

    private static final String SALT_AS_TOP_SECRET = "mysalt"; 
    private static final PasswordEncoder encoder = new StandardPasswordEncoder(
        SALT_AS_TOP_SECRET);

    public static String encrypt(String rawPassword) {
        return encoder.encode(rawPassword);
    }

    public static boolean match(String rawPassword, String password) {
        return encoder.matches(rawPassword, password);
    }

私のアプリケーションはSpringwithJPAであるため、パスワードの基本的なゲッター/セッターを使用してUserDetailsを実装するUserエンティティがあり、サービスレイヤーにUserDetailServiceを実装するサービスクラスもあります。

UserDetailServiceが必要とするのは、loadUserByUsernameパスワードをチェックしないメソッドだけであることに混乱しています。だからここに他の質問があります:

  1. matchPasswordEncoderのメソッドはどこに配置しますか?
  2. サービスクラスに別のインターフェイスを実装しますか?
  3. パスワードを設定するときに、ユーザーエンティティ内にロジックを指定しますか?
  4. 新しいPasswordEncoderインターフェースは他のセキュリティパッケージから独立しているので、xmlからBeanを開始/注入する必要はないと思いますか?私は、外部ストレージではなく、クラス内でソルトをpuするようにしています。

よろしくお願いします。

4

0 に答える 0