jboss 用のカスタム ログイン モジュールが実装されたエンタープライズ アプリケーションに取り組んでいます。ユーザーがユーザー名とパスワードを提供するフォームベースのセキュリティログインがあります。ログインモジュールでは、資格情報がデータベースに対してチェックされ、いくつかの追加チェックが行われます。ここで、ユーザーがワンタイム トークン (例: EF223222131 などのハッシュ文字列) を介してログインできるようにしたいと考えていますapplicationServer:8080/myApplication/login2.jsp?hash=EF223222131
。このページlogin2.jsp
には、フォーム ベース認証用の同じフォームがあり、ユーザー名とパスワードを空白のままにして、フィールド ハッシュを追加します。すべてのフィールドが非表示になり、JavaScript がページの読み込み時にフォーム送信を開始します。ログインモジュールで、ハッシュを取得できました:
HttpServletRequest httpRequest =
(HttpServletRequest)PolicyContext.getContext("javax.servlet.http.HttpServletRequest");
String hashV = httpRequest.getParameter("hashValue");
次に、データベース セット ID とロールからユーザーを取得loginOk = true;
しcommitOk = true;
、それぞれのメソッドで取得します。しかし、私の Web アプリケーションのユーザー名は空のままです。
httpRequest.getUserPrincipal().getName()
空の文字列を返します。また、EJB を呼び出すと、から空の文字列が取得され sessionContext.getCallerPrincipal().getName()
ます。
Login モジュールからこれらの値を設定する方法はありますか? または、URL のトークンを介してログインする別の方法はありますか?
jboss 4.0.3SP1 と Java 1.4.2 を使用していますが、新しい構成と同じである必要があると思います。