- - PR -
JAAS プロンプトを表示させないでログイン
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2008-08-18 11:19
jdk1.4
現在、既存のログインシステムにJAASを組み込みたいと考えています。 このときに制限がありまして、既存ログイン画面で入力されたID/PWで認証を行わなければなりません(ログインの際に新規プロンプトを表示させたくない) 下記サイトを参考にしているのですが、CallbackHandlerを使うと独自のプロンプトよりID/PWを取得しているように感じます。 そうではなくて、既存のログイン画面から取得済みのID/PWを使いたいのですが(プログラム上で渡されたID/PWを使いたい)、方法がわかりません。 ご存じの方がいらっしゃいましたら、ご教示いただきますよう宜しくお願いします。 http://72.5.124.55/javase/ja/6/docs/ja/technotes/guides/security/jaas/tutorials/SampleAcn.java | ||||||||
|
投稿日時: 2008-08-18 12:06
既存のログイン画面で入力されたID/PWを返すCallbackHandlerを作ればいいだけでは?
必ずしもCallbackHandlerでプロンプトを出す必要はありませんよ。 | ||||||||
|
投稿日時: 2008-08-18 13:15
あしゅ様
ご返答ありがとうございます。 >既存のログイン画面で入力されたID/PWを返すCallbackHandlerを作ればいいだけでは? >必ずしもCallbackHandlerでプロンプトを出す必要はありませんよ。 申し訳ないのですが、CallbackHandlerを実装すれば良いということは理解したのですが、実装方法がわかりません。 詳しく御説明させていただくと、handleメソッドで引数のCallback[]にID/PWを格納する方法がわかりません。 NameCallbackと、PasswordCallbackに値を格納したいのですが、インスタンス化するときに、プロンプトを指定するような記述がありました。 どうすればいいのか、検討がついていません。 何かヒントでもかまいませんので、ご教示願います。 参考サイト http://sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ja/api/javax/security/auth/callback/CallbackHandler.html http://sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ja/api/javax/security/auth/callback/Callback.html http://sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ja/api/javax/security/auth/callback/NameCallback.html http://sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ja/api/javax/security/auth/callback/PasswordCallback.html | ||||||||
|
投稿日時: 2008-08-18 15:22
まったく詳しくないのですが、
MyCallbackHandler内の標準・エラー入出力を全てコメントアウトして nc.setName( username ); pc.setPassword( password ); とStringで渡して設定するではできないのですか? | ||||||||
|
投稿日時: 2008-08-18 16:18
progman様
ご回答ありがとうございます。 >MyCallbackHandler内の標準・エラー入出力を全てコメントアウトして >nc.setName( username ); >pc.setPassword( password ); >とStringで渡して設定するではできないのですか? いまいち解っていないのですが、MyCallbackHandlerがnewされると、handleメソッドが自動で呼ばれる感覚なのでしょうか?(デフォルトコンストラクタでhandleメソッドを読んでいる?) そのときの引数Callback[]は何もセットされていないのでNULLのように思ってしまうのですが、あっていますか? もし、あっているとすると、callbacks.lengthは0になるような・・・・ ちぐはぐなことを言っていたらごめんなさい。 | ||||||||
|
投稿日時: 2008-08-18 18:13
MyCallbackHandlerの実相を除いたログイン処理は、 極限まで端折るとこのようになるのはわかりますか? MyCallbackHandler#handle()メソッドは、lc.login()の実装を経由して、 定義ファイルにより構成されたLoginModule群が呼び出すことになります。 また、どんなCallback[]が渡ってくるかはLoginModuleの実装次第です。 | ||||||||
|
投稿日時: 2008-08-20 11:38
あしゅ様
ご返答ありがとうございます。 >MyCallbackHandler#handle()メソッドは、lc.login()の実装を経由して、 >定義ファイルにより構成されたLoginModule群が呼び出すことになります。 >また、どんなCallback[]が渡ってくるかはLoginModuleの実装次第です。 恥ずかしながら、初めて知りました。 LoginModule次第なのですね。 残念ながら、時間がないためJAASを使用することをあきらめました。 ご丁寧に回答してくださった皆様、大変ありがとうございました。 このスレッドを終了させてください。 |
1