2011-12-21 5 views
1

私は自分のJCA-> EISアダプターをレガシーシステム用に作成しました。古いシステムに接続しているときに認証に問題があります。GlassFishでは、JCAアダプタを作成する際に、匿名ユーザーをEISユーザーにマップする方法はありますか?

これは説明するのがかなり難しいです。 GlassFish v3.1.1では、独自のJCAアダプタを作成してインストールした後、「Work Security Maps」というタブがあります。これは、EISシステムのユーザー名/パスワードを入力する唯一の場所と思われます。匿名(認証されていない)ユーザーでEJBを実行したいのですが、EISパスワードを記入するには、グループまたはユーザーのマッピングを指定する必要があります。

JCAアダプタのすべての呼び出しで同じユーザー名/パスワードを使用してEISシステムにヒットする方法はありますか?

目的の動作は、JDBCの動作と似ています。私のデータベースには1つのユーザー名/パスワードがあります。私のアプリケーションにはデータソースが注入されていますが、現在のユーザをデータベースユーザにマッピングする必要はありません。

EDIT: 最初の回答で説明したように、これはconfig-propertiesで実装できます。しかし、私はこれがJCA仕様に従ってこれを行う正しい方法だとは思わない。 Websphereでは、JAAS信任状を「コンポーネント管理認証別名」として割り当てることができます。

GlassFishでこれを行うことはできません。 Subject.getPrivateCredentials(PasswordCredential.class)を呼び出すと、空の文字列を含む資格情報が返されます。

答えて

1

JDBC RA(または最近使用したActiveMQ RA)では、リソースアダプタのプロパティ(ra.xmlのconfig-property)でユーザー名とパスワードを設定します。リソースアダプタで同様の方法で実装したいと思う可能性があります。

+0

、我々は最初にそのルートを下って行った:

私はバグを取得しようとしているが、これを詳述のGlassFish JIRAでオーバーログイン。ただし、パスワードはクリアテキストで保存されます。 –

+0

これは私が望む解決策ではありませんが、私たちが実装したものです。 GlassFishは、コンソールのレゾルシのデフォルトのプリンシパルを設定する方法がないようです。あなたはあなたの戦争/耳にコンパイルされたバインディングファイルで指定することができます。 –

0

これは、ra.xmlのconfig-propertyを使用せずに行うことができます。トリックは、ejb-jar.xmlを使用する必要があります。 PureアノテーションベースのEJBがコンテナベースの認証を使用しないGlassFishにはバグがあるようです。はい、それはオプションですhttp://java.net/jira/browse/GLASSFISH-18096

+0

私は正しいと分かりました!バグレポートは受け入れられ、GlassFish 3.1.2および4.0で修正される予定です –

関連する問題