Веб-сервис SOAP с доменом безопасности на основе токенов с использованием keycloak - PullRequest
0 голосов
/ 17 октября 2018

Я пытаюсь использовать токен 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?

Другой способ - написать пользовательский модуль входа в систему, я не знаючто-нибудь об этом:)

...