Пользователь журнала Glassfish, который не прошел проверку разрешения

Я хочу увидеть, какой пользователь пытался получить доступ к методам EJB, которые не разрешены для его соответствующей роли (с помощью аннотации @RolesAllowed). Кажется, я вижу только то, что в журнале произошла проверка с ошибкой разрешения (+ для какого компонента, какого метода и метки времени), но не ВОЗ пыталась вызвать ее:

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

Есть ли способ настроить Glassfish так, чтобы он регистрировал принципала вызывающего пользователя или, по крайней мере, какой-то идентификатор сеанса, который я затем мог бы сопоставить с конкретным пользователем? Он регистрирует пользователя для каждого допустимого вызова метода, но почему-то не для запрещенных.

1 ответ

Я тоже встречался с этим вопросом. Это может быть вызвано: вы копируете файл jar/class непосредственно в папку приложения Glassfish. Вам необходимо повторно развернуть приложение (war/ear), тогда эта проблема исчезнет.

Удачи!

Другие вопросы по тегам