2017-01-03 5 views
0

Ich möchte sehen, welcher Benutzer versucht, auf EJB-Methoden zuzugreifen, die für seine jeweilige Rolle nicht erlaubt sind (über @RolesAllowed Annotation). Es scheint, ich nur, dass ein Ausfallen Permission Check in dem Protokoll ist aufgetreten (+ auf dem Bean, welche Methode und der Zeitstempel) sehen kann, aber nicht, wer versuchte, es zu nennen:Glassfish Protokoll Benutzer, die Berechtigungsprüfung fehlgeschlagen

[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()]] 

Gibt es eine Möglichkeit zu konfigurieren Glassfish, damit es den Principal des anrufenden Benutzers oder zumindest irgendeine Art von Sitzungs-ID protokolliert, die ich dann einem bestimmten Benutzer zuordnen kann? Es protokolliert den Benutzer für jeden gültigen Methodenaufruf, aber irgendwie nicht für die abgelehnten.

Antwort

0

Ich traf dieses Problem auch. Dies kann folgende Ursachen haben: Sie kopieren die jar/class-Datei direkt in den glassfish-Anwendungsordner. Sie müssen die Anwendung erneut implementieren (Krieg/Ohr), dann verschwindet dieses Problem.

Viel Glück!

Verwandte Themen