web-dev-qa-db-ja.com

Spring Securityのユーザーアカウントの登録、作成、管理

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

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

ユーザーの登録と管理を最初から作成する必要がありますか?私がする必要があることは次のとおりです。-新しいユーザーの登録-パスワードのリセット-アカウントをアクティブ化するためのユーザーへの電子メール-アカウントをリセットするためのユーザーへの電子メール。

前もって感謝します。

19
Mo .

プロジェクトでSpringSecurityを使用しています。フレームワークには、ユーザーが作成または登録するための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();
}
9
Jay

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

1
Aravind A

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

「このユースケース用にJavaプロジェクトを実装しました。これはSpring-Securityに基づくオープンソースです。リリースバージョンはMaven-Centralにあるため、コンパイルする必要はありません。しかし、代わりに、プロジェクトへのMaven依存関係としてフェッチできます!」

<dependency>
     <groupId>com.ohadr</groupId>
     <artifactId>authentication-flows</artifactId>
     <version>1.5.0-RELEASE</version> 
</dependency>
1
OhadR