1

GlassFish の認証メカニズムを使用して JavaEE 7 アプリケーションを開発しています。ユーザーを登録するには、リンク付きの電子メールを生成する簡単な登録フォームが必要です。そのリンクをクリックすると、ユーザーはログインしてユーザー プロファイルを入力できるようになります。私の質問は次のとおりです。リンクをクリックすると、ユーザーのパスワード (クリア テキスト) にアクセスできませんが、これはもちろん正しいことです。パスワードなしでユーザーをログインしたいのですが、これはグラスフィッシュでプログラム的に可能ですか? それとも、セキュリティ レルム (JDBC レルムの修正バージョン) を変更する必要がありますか?

「パスワードを忘れた」メカニズムには、まったく同じ要件があります。

4

1 に答える 1

3

具体的にご質問いただいた内容については、次のとおりです。

  1. カスタム ログイン モジュールまたはカスタム レルムを記述します (既存のものを変更するクラウド)ドキュメント.
  2. サーブレットを作成し、確認 URL のみにマップします。
  3. サーブレットで、URL の関連部分を抽出します。
  4. URL の関連部分をユーザー名として渡してHttpServletRequest#login()を呼び出します。
  5. リダイレクトを送信してお楽しみください!

レルムは、「通常の」ログインとリンク サーブレットからのログインを区別できる必要があることに注意してください。これは、UUID を使用するか、null パスワードに基づいて行うことができます。

ただし、通常、確認リンクは、基になるデータソースを変更してユーザーを有効にし、それ以上のアクセスからリンクを無効にする登録プロセスの最終ステップを意味するのではないでしょうか?

この場合、サーブレットはおそらく、EJB、JPA、またはその他のものを使用してデータソースを直接変更し、アカウントが有効になっていることをユーザーに通知して、ログイン フォームに送信する必要があります。

于 2013-08-13T02:24:13.123 に答える