Apache WSS4J не удалось инициализировать - PullRequest
0 голосов
/ 27 июня 2019

Я пытаюсь заставить библиотеку Apache WSS4J работать для проверки BinarySecurityToken в веб-сервисе Spring Boot. Мы можем нормально запустить службу, но когда мы отправляем SOAP-запрос, мы получаем следующую ошибку:

No message with ID "invalidSAMLsecurity" found in resource bundle "org/apache/xml/security/resource/xmlsecurity"; nested exception is org.apache.wss4j.common.ext.WSSecurityException: No message with ID "invalidSAMLsecurity" found in resource bundle "org/apache/xml/security/resource/xmlsecurity"

Теперь, насколько я понимаю, это происходит, когда вы еще не вызвали метод WSSec.init(). Однако единственный класс WSSec в Apache WSS4J находится в пакете org.apache.wss4j.stax, и, похоже, использование Maven для загрузки WSS4J 2.2.3 не дает вам доступа к пакету stax.

Я вполне уверен, что просто смотрю в неправильных местах, но текущий API Apache WSS4J предназначен для 2.3.0-SNAPSHOT, поэтому я даже не уверен, имеет ли используемая версия доступ к этим пакетам, и я не могу найти API для версии 2.2.3.

Я уверен, что это просто вопрос поиска правильных инициализаций, я просто не уверен, где эти инициализации будут настроены.

1 Ответ

0 голосов
/ 28 июня 2019

Чтобы иметь возможность проверить подписанный xml, используя binarySecurityToken, который присутствует в заголовке - вам нужно убедиться, что xml подписан с использованием

"WSHandlerConstants.SIG_KEY_ID" = "DirectReference "

 List<WSSecurityEngineResult> res = engine.processSecurityHeader(signedDoc, null, null, crypto); 

signatureDoc - конверт SOAP в качестве документа

Используйте этот метод для проверки подписи.Кроме того, настройте экземпляр Crypto, как показано ниже.

Crypto crypto = CryptoFactory.getInstance ("validator.properties");

Попробуйте приведенный ниже Mavenзависимости (это из рабочего примера, который у меня есть)

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
        <version>2.1.5.RELEASE</version>
    </dependency>

    <dependency>
        <groupId>org.apache.wss4j</groupId>
        <type>pom</type>
        <artifactId>wss4j</artifactId>
        <version>2.0.0</version>
    </dependency>
    <dependency>
        <groupId>org.apache.wss4j</groupId>
        <artifactId>wss4j-ws-security-dom</artifactId>
        <version>2.0.0</version>
        <type>jar</type>
    </dependency>
    <dependency>
        <groupId>commons-io</groupId>
        <artifactId>commons-io</artifactId>
        <version>2.4</version>
        <type>jar</type>
    </dependency>

    <dependency>
        <groupId>org.apache.axis</groupId>
        <artifactId>axis</artifactId>
        <version>1.4</version>
    </dependency>

    <dependency>
        <groupId>org.apache.ws.security</groupId>
        <artifactId>wss4j</artifactId>
        <version>1.6.19</version>
    </dependency>

    <dependency>
        <groupId>org.apache.wss4j</groupId>
        <artifactId>wss4j-ws-security-common</artifactId>
        <version>2.0.2</version>
    </dependency>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...