Webアプリケーションの認証/承認にSpringSecurityを使用することを検討しています(これはJDBCベースになります)。
しかし、私の観点からはコアコンポーネントが省略されているようです。新しいユーザーを登録/作成するにはどうすればよいですか?そのためのすぐに使えるAPIはありますか?
ユーザーの登録と管理を最初から作成する必要がありますか?私がする必要があることは次のとおりです。-新しいユーザーの登録-パスワードのリセット-アカウントをアクティブ化するためのユーザーへの電子メール-アカウントをリセットするためのユーザーへの電子メール。
前もって感謝します。
プロジェクトで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();
}
私の知る限り、SpringSecurityには新規ユーザーの作成と登録のサポートが組み込まれていません。これは自分で管理する必要があります。ただし、電子メールによるサポートはあります。詳細については、 ここ を確認してください。
私の答えを見てください ここ 。
「このユースケース用にJavaプロジェクトを実装しました。これはSpring-Securityに基づくオープンソースです。リリースバージョンはMaven-Centralにあるため、コンパイルする必要はありません。しかし、代わりに、プロジェクトへのMaven依存関係としてフェッチできます!」
<dependency>
<groupId>com.ohadr</groupId>
<artifactId>authentication-flows</artifactId>
<version>1.5.0-RELEASE</version>
</dependency>