2017-01-03 14 views
0

@RolesAllowedアノテーションを使用して、それぞれの役割に許可されていないEJBメソッドにアクセスしようとしたユーザーを確認したいと考えています。 は、それは私が唯一の失敗パーミッションチェックがログに発生したことを見ることができそうです(+れている豆は、どのような方法およびタイムスタンプ)しようとしたが、ありませんが、それを呼び出すために:権限チェックに失敗したGlassfishログユーザー

[2016-12-15T17:48:36.061+0100] [glassfish 4.1] [INFO] [] [javax.enterprise.system.core.security] [tid: _ThreadID=96 _ThreadName=http-listener-1(4)] [timeMillis: 1481820516061] [levelValue: 800] [[ 
JACC Policy Provider: Failed Permission Check, context(SecuredAccess/SecuredAccess_EJB_jar)- permission(("javax.security.jacc.EJBMethodPermission" "WorkBean" "administrationTask,Local,"))]] 

[2016-12-15T17:48:36.061+0100] [glassfish 4.1] [WARNING] [AS-EJB-00056] [javax.enterprise.ejb.container] [tid: _ThreadID=96 _ThreadName=http-listener-1(4)] [timeMillis: 1481820516061] [levelValue: 900] [[ 
A system exception occurred during an invocation on EJB WorkBean, method: public java.lang.String work.WorkBean.administrationTask()]] 

設定するには、どのような方法がありますグラスフィッシュは呼び出し元のプリンシパルをログに記録するか、少なくともある種のセッションIDを記録してから、特定のユーザーにマップできますか?これは、有効なメソッド呼び出しごとにユーザーを記録しますが、何らかの理由で拒否されたものについては記録しません。

答えて

0

私もこの問題に遭遇しました。これは、jar/classファイルをglassfishアプリケーションフォルダに直接コピーすることによって発生する可能性があります。アプリケーション(戦争/耳)を再展開する必要がある場合、この問題は消えます。

幸運を祈る!

関連する問題