Wildfly Elytron: Принципал недоступен в SimpleSecurityManager - PullRequest
0 голосов
/ 07 июня 2018

Я реализовал механизм аутентификации, аналогичный CustomHeaderHttpAuthenticationMechanism в https://github.com/wildfly-security-incubator/elytron-examples/tree/master/simple-http-mechanism,, используя PasswordGuessEvidence, а также другие обратные вызовы, упомянутые в примере.Причиной использования специального механизма является то, что помимо простой проверки учетных данных нам также необходимо проверить больше ограничений, чтобы проверить, проверен ли пользователь.

Пройдя через этот механизм проверки подлинности, выглядит довольно хорошо, вызывается метод authenticationComplete, а такжеauthorizeCallback успешно.Однако при доступе к EJB через конечную точку восстановления (EJB аннотируется с помощью @SecurityDomain и @RolesAllowed ...) метод SimpleSecurityManager.authorize завершается ошибкой, поскольку метод securityContext.getUtil не предоставляет принципала или чего-то еще.Если доступ к методу, аннотированному @PermitAll, успешен.

Я полагаю, что принципал должен быть создан ServerAuthenticationContext при работе через различные обратные вызовы, верно?

Как мне управлять этим SimpleSecurityManagerможет распознать принципал, нужно ли мне создать его в механизме аутентификации и как?

1 Ответ

0 голосов
/ 12 сентября 2018

В этом случае кажется, что ваше развертывание EJB не было сопоставлено с доменом безопасности WildFly Elytron, поэтому все еще использует защиту PicketBox на уровне EJB, поэтому вы не видите, что удостоверение уже установлено.

В подсистеме EJB вы также можете добавить сопоставление домена безопасности приложения для сопоставления с доменом безопасности, указанным при развертывании, с доменом безопасности WildFly Elytron.

К вашему сведению в какой-то момент в будущем, когда мыготовые к удалению PicketBox с сервера, эти дополнительные сопоставления больше не требуются, они просто, к сожалению, необходимы на данный момент, пока у нас есть оба решения параллельно.

...