2017-06-26 9 views
2

おはよう 私は一定の役割によって実行されるように固定されている私のセッションBeanのメソッドがありますのWebLogic 10認証さuesrの役割は何ですか - Javaの

にEJB2(古いアプリケーション)を使用しています。
私は多分、いくつかの異なる役割のユーザーによって実行されるいくつかのメソッドので

`@ejb.permission role-name="role1, role2"` 

に注釈を付ける私のEJBインタフェース方式のそれぞれ、どのように私は、メソッドを実行する役割を伝えることができますか?

私は

Principal principal = ctx.getCallerPrincipal() ; 
boolean isRole = ctx.isCallerInRole("role2") ; 

「呼び出し側が一定の役割である」しかし、実際の発信者の役割を取得する方法があるかどうかを知る方法を知っていますか? 「getCallerRole()」などのようなもの?私はこれらの役割のそれぞれがの「WebLogicセキュリティロールでLDAPにマップされ、その後

<security-role> 
<role-name>role1</role-name> 
<role-name>role2</role-name> 
</security-role> 

役割は、アプリケーションドメイン内にあるものを指定するXMLファイル「のejb-セキュリティroles.xml」で

-assignment.xml "

<security-role-assignment> 
    <role-name>role1</role-name> 
    <principal-name>Role1User</principal-name> 
</security-role-assignment> 
<security-role-assignment> 
    <role-name>role2</role-name> 
    <principal-name>Role2User</principal-name> 
</security-role-assignment>` 

誰も助けて、思考の正しい道を教えてくれますか?

答えて

1

ちょうどそれは、ユーザーの役割を確認するための唯一の方法であるオラクルAccessing an Enterprise Bean Caller’s Security Context、 によるif (ctx.isCallerInRole("role2")) {

を使用しています。

+0

問題は、最終的には2〜3のように多くの役割が追加される可能性がありますが、10-12です。コードが複雑になる...私はデータベースの列に書き込むためにこれらの役割にアクセスする必要があります - 事件の作成のようなもの:( –

+1

はい、私はあなたが他のセキュリティ管理ライブラリ、例えばspring-security https://projects.spring.io/spring-security/ –

+0

さて、将来の移行と更新プロジェクトのためのものです。私は、いくつかの役割のためにisCallerInRole()の方法をチェックすることで対処できます今ある –

関連する問題