19

Web アプリケーションの認証/承認に Spring Security を使用することを検討しています (これは JDBC ベースになります)。

ただし、私の観点からは、コア コンポーネントが除外されているようです。新しいユーザーを登録/作成するにはどうすればよいですか? そのためのすぐに使える API はありますか?

ユーザー登録と管理をゼロから書く必要がありますか? 私がしなければならないことは次のとおりです。 - 新しいユーザーの登録 - パスワードのリセット - アカウントを有効にするためにユーザーにメールを送信 - アカウントをリセットするためにユーザーにメールを送信

前もって感謝します。

4

3 に答える 3

9

プロジェクトでSpring Securityを使用しています。あなたが尋ねたように、フレームワークにはユーザーの作成または登録のためのAPIがありません。Spring Security を汎用化し、複数のフレームワークで使用できるようにするためには、カスタム コードを作成する必要が生じるまでにかかる時間は限られています。使用するフレームワークやツールについて、より具体的な回答を得ることはできません。この時点では、とにかく既に使用しているフレームワークを使用するだけだからです。

データベースでユーザーとロールを使用するように設定した場合、データ アクセス レイヤーからユーザー テーブルにレコードを作成するか、そのレコードのパスワード (できればハッシュとして保存) を更新します。Aravind が言ったように、Spring は電子メール サポートを提供します。

本当に 1 つの方法を確認したい場合: 私は Spring MVC、JSP、および Hibernate を使用しています。JSP で Spring のフォーム タグを使用して新しいユーザー フォームを Person オブジェクトにバインドし、コントローラー メソッドがその Person オブジェクトを Dao に渡して永続化します。

コントローラーメソッドのシグネチャは次のようになります...

@RequestMapping(value = "/newUser", method = RequestMethod.POST)
public ModelAndView createNewUser(final @Valid @ModelAttribute Person user,
                                  final BindingResult result,
                                  final SessionStatus status,
                                  final @RequestParam(value = "unencodedPassword", required = true) String password) {
        ...
        user.getRoles().add(new Role(user, Role.APPLICATION_ROLE.ROLE_USER));
        userDao.createNewUser(user);
        ...
}

私のPersonDaoは、Hibernateを使用してユーザーを永続化します

@Transactional
public void createNewUser(Person user)
{
    Session session = sessionFactory.getCurrentSession();
    session.save(user);
    session.flush();
}
于 2011-12-22T13:09:02.190 に答える
1

私の知る限り、Spring Security には新しいユーザーの作成と登録のサポートが組み込まれていません。これは自分で管理する必要があります。ただし、メールサポートはあります。詳細については、こちらをご覧ください。

于 2011-12-22T06:38:56.473 に答える
1

ここで私の答えを見てください。

「このユースケースのためにJAVAプロジェクトを実装しました。これはSpring-Securityに基づいたオープンソースです。リリース版はMaven-Centralにあるので、コンパイルする必要はありませんが、代わりにmaven-として取得できます。あなたのプロジェクトへの依存!」

<dependency>
     <groupId>com.ohadr</groupId>
     <artifactId>authentication-flows</artifactId>
     <version>1.5.0-RELEASE</version> 
</dependency>
于 2014-05-21T20:10:41.980 に答える