154

私はJACCプロバイダーを書いています。

途中で、これはPolicyConfiguration.

PolicyConfiguration、どの権限がどの役割に付与されるかなど、アプリケーション サーバーから構成情報を受け入れる役割を果たします。これは、現在のユーザーとそのユーザーが何をしようとしているのかについての情報Policyを渡されたときに、後で承認の決定を下せるようにするためです。

ただし、PolicyConfiguration役割とその権限の間のマッピングを維持し、Principalsそれらの役割に割り当てられることは、の (凶悪な) 契約の一部ではありません。

通常、常に、実際には、アプリケーション サーバーがこのマッピングを格納します。たとえば、Glassfish では、Java EE モジュールで などをsun-web.xml提供することによって、このマッピングに影響を与えます。(これらのベンダー固有のファイルは、たとえば、のアプリケーション ロールが割り当てられるグループであるsun-ejb-jar.xmlなどの責任を負います。)superusersadmins

これらのファイルが提供する機能を再利用したいと考えており、できるだけ多くのアプリケーション サーバーで再利用したいと考えています。

これは、完全に恣意的に、この問題に対する IBM の見解であり、私がやりたいことは本質的に不可能であるという私の疑いを裏付けているようです。(この特定の Java EE コントラクトは、それが印刷されている紙の価値がないという私のケースに対する追加の弾薬です。)

私の質問:このプリンシパルからロールへのマッピング情報を、まず、Glassfish および JBoss 内から取得するにはどうすればよいPolicyConfigurationですか? 私が気付いていない標準的な方法があれば、私はすべて耳にします。

4

1 に答える 1

3

簡単に言えば、それを行うための標準的な方法はありません。

Glassfish と JBoss はプリンシパルからロールへのマッピングをサポートしていますが、JACC はすべてのコンテナーがサポートしているとは想定していないため、これらのマッピングを保持する責任を JACC プロバイダーの実装に委任します。ドキュメントから(PolicyConfiguration.addToRoleメソッドを参照):

ロールに追加されたすべてのアクセス許可が「ロールにマップされた」プリンシパルに付与されるようにするのは、ポリシー プロバイダーの仕事です。

つまり、コンテナごとに JACC プロバイダ内に自分で実装する必要があります。たとえば、JBoss の場合、 のサブクラスの 1 つを使用できますAbstractRolesMappingProvider

于 2013-10-30T23:15:58.173 に答える