2017-05-08 30 views
1

異なるJNDIを持つPayaraサーバーに複数のレルムを作成しました。私は同じ構造(ユーザーとグループ)を持つ複数のデータベースを持っており、実行時に領域名を取得/設定することによって認証/承認を取得したいと考えます。実行時にどのようにJDBCRealmの名前を取得するのか分かりません。動的にJDBCRealmを選択

私はで取得しようとしていた:リソースを検索するために使用されているので、私は動作しません

 Context iniCtx = new InitialContext(); 
     DataSource ddsa = (DataSource) iniCtx.lookup("java:app/multi2jndi"); 
     DatabaseMetaData mdd; 

+0

Nayanからこの質問(http://stackoverflow.com/questions/5104185/how-to-inject-persistence-context-to-different-data-source-programmatically)と回答を確認してください。 – D00de

+0

@ D00deこれはdatasourceの呼び出しについてですが、私の質問は実行時に領域名を取得しようとしています。 –

+0

レルムがweb.xmlファイル内でどこに設定されていますか? – D00de

答えて

1

2日間の苦労の末、コンテナ管理のセキュリティ/レルムを直接ハックすることができないことがわかりました。独自のカスタムセキュリティモジュールを作成する方法や、JASPIC(JSR196)を使用して別の方法で変更する方法などがあります。私はJASPICでさらに進んでいます。