Я пытаюсь использовать токен jwt для управления ролями в домене безопасности.
@WebService
(
endpointInterface = "pro.eekeycloak.soap.Send",
portName = "SendPort",
name = "SendService",
serviceName = "SendService",
targetNamespace = "http://eekeycloak.pro/",
wsdlLocation = "META-INF/wsdl/cat.wsdl"
)
@Stateless
@SecurityDomain("keycloak")
public class SendPort implements Send {
@WebMethod
@RolesAllowed("user")
public Cat getCat(){
Cat cat = new Cat();
cat.setName("Vasia");
return cat;
}
}
Во-первых, я обнаружил, что это мыльный заголовок BinaryToken, и это не работает, после чего я попытался использовать InInterceptor.После этого я вставил токен в мыльный заголовок и смог получить его пользователя и роль после декодирования с открытым ключом.И наконец: как заставить wildfly узнать о текущих пользователях (роль) и выполнить метод доступа или запретить, аннотированный с помощью AllowRole («роль») в InInterceptor?
Другой способ - написать пользовательский модуль входа в систему, я не знаючто-нибудь об этом:)