Я пытаюсь настроить JAX-RS-службу в виде thorntail с аутентификацией JWT.Все работает нормально (я могу ввести Principal
и пользователь правильно настроен), за исключением того, что в случае неудачной аутентификации, ответ по-прежнему отправляется без 401-HTTP-заголовка.Я сделал следующее:
- Добавил
@LoginConfig(authMethod = "MP-JWT", realmName = "my-domain")
в мой Application
-класс Настроил домен безопасности
security:
security-domains:
my-domain:
jaspi-authentication:
login-module-stacks:
roles-token-stack:
login-modules:
jwt-jaspi-login-module:
code: org.wildfly.swarm.microprofile.jwtauth.deployment.auth.jaas.JWTLoginModule
flag: required
auth-modules:
http:
code: org.wildfly.extension.undertow.security.jaspi.modules.HTTPSchemeServerAuthModule
module: org.wildfly.extension.undertow
flag: required
login-module-stack-ref: roles-token-stack
Сконфигурированные JWT-специфичные вещи (кажется, работают, поэтому я пропускаю это здесь)
Что еще мне нужно сделать, чтобы это работало правильно?Нужно ли добавлять какие-либо аннотации к моей конечной точке?Как я уже сказал, я хочу вернуть 401 в случае неудачной аутентификации.
То, что я обнаружил до сих пор: JASPICAuthenticationMechanism.isMandatory
должно возвращать true, чтобы это работало.В этом случае JWTAuthMechanism.sendChallenge
запускается после сбоя JWTAuthMechanism.authenticate
, и поэтому 401 отправляется клиенту.Но я понятия не имею, в каких случаях isMandatory
возвращает true.
Спасибо за любую помощь в этом случае!