私が使用しているWeblogic 10.3にカスタム認証プロバイダがあり、問題があります。JMX-RMI/T3接続により、CallbackHandlerがContextHandlerCallbackで例外をスローします。
ユーザーがHTTP経由で接続して認証すると、すべて正常に機能します。ただし、接続がJMX-RMI/T3接続の場合は、javax.security.auth.callback.CallbackHandler.handle
への呼び出しがスローされます。 ContextHandlerCallback
デフォルトのコンストラクタが使用され、ユーザ名とパスワードのコールバックを使用してコールバックの配列に渡されます。
javax.security.auth.callback.UnsupportedCallbackException: [Security:090175]Unrecognized Callback
at weblogic.security.SimpleCallbackHandler.handle(SimpleCallbackHandler.java:71)
at com.bea.common.security.internal.service.CallbackHandlerWrapper.handle(CallbackHandlerWrapper.java:76)
at weblogic.security.service.internal.WLSJAASLoginServiceImpl$CallbackHandlerWrapper.handle(WLSJAASLoginServiceImpl.java:156)
at javax.security.auth.login.LoginContext$SecureCallbackHandler$1.run(LoginContext.java:955)
at javax.security.auth.login.LoginContext$SecureCallbackHandler.handle(LoginContext.java:951)
そして、ここで私たちがしている別の例外トレースです:下記のたcallbackHandlerがここjavax.security.auth.callback.CallbackHandler
callbacks = new Callback[2];
callbacks[0] = new NameCallback("username: ");
callbacks[1] = new PasswordCallback("password: ", false);
callbacks[2] = new ContextHandlerCallback();
callbackHandler.handle(callbacks);
でコードがexcetptionの上部には、上からcallbackHandler.handle(callbacks)
のポイントにスローされています同様に見て:
javax.security.auth.callback.UnsupportedCallbackException: Unrecognized Callback
at weblogic.management.mbeanservers.internal.JMXAuthenticator$JMXCallbackHandler.handle(JMXAuthenticator.java:130)
at com.bea.common.security.internal.service.CallbackHandlerWrapper.handle(CallbackHandlerWrapper.java:76)
at weblogic.security.service.internal.WLSJAASLoginServiceImpl$CallbackHandlerWrapper.handle(WLSJAASLoginServiceImpl.java:156)
at javax.security.auth.login.LoginContext$SecureCallbackHandler$1.run(LoginContext.java:955)
at javax.security.auth.login.LoginContext$SecureCallbackHandler.handle(LoginContext.java:951)
それは、ユーザーがJMX/T3接続を介して認証するが、している場合は、この例外がスローされていることは注目に値しますHTTPうまく動作します。
私たちが達成しようとしているのは、要求が発信されたIPアドレスなどの認証に関する情報を取得することです。そのためにContextHandlerCallback
が必要です。 JMX-RMI/T3接続からHttpServletRequest
を取得しようとすると問題が発生する可能性がありますが、javax.security.auth.callback.CallbackHandler.handle()の間に例外がスローされています。
関連性があるかもしれないし、そうでないかもしれない情報がいくつかありますが、私はそれをすべて含んでいませんか?
- アプリケーションではWSコールと同じようにフォームベース認証が使用されていますが、JMX-RMI/T3コールではそうではありません。
- 認証時にCallbackHandlerに使用する実装を定義できるかどうか不明です。現在、カスタムLoginModuleを定義していますが、カスタムCallbackHandlerは定義していません。
- ContextHandlerCallbackの外に、LoginModule内の呼び出し元のIPアドレスにアクセスする方法がある場合は、適切な回避策が提供されます。
私はそれが1つのプロトコルで動作し、他のプロトコルでは動作しない理由が混乱しています。誰もこの種の行動を見たり、これを処理する方法を知っていますか?
おかげでは、WebLogicで トッド
私はコードと例外スタックトレースを見ることができましたか? –
コードセクションとリンクが追加されました。最初から省略して申し訳ありません。見ていただきありがとうございます。 –