WSO2 ESB — класс обратного вызова пароля Rampart — WSPasswordCallback не может быть приведен

Я хочу вызвать защищенную серверную службу в WSO2 ESB 5.0.0 с конфигурацией валов и Класс обратного вызова пароля

package com.yenlo.wso2.services;
import org.apache.ws.security.WSPasswordCallback;
import javax.security.auth.callback.Callback;
import javax.security.auth.callback.CallbackHandler;
import javax.security.auth.callback.UnsupportedCallbackException;
import java.io.IOException;

public class PWCBHandler implements CallbackHandler {

public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException {
    WSPasswordCallback pc = (WSPasswordCallback) callbacks[0]; 

    // set the password for our message.
    pc.setPassword("YENLO_TEST");       

   }
}

Когда я вызываю прокси-сервис, возникает эта ошибка:

org.apache.ws.security.WSPasswordCallback cannot be cast to org.apache.ws.security.WSPasswordCallback

Я скомпилировал свой исходный код с помощью wss4j 1.6.17 и 1.5.12. Ничего не изменилось.


person siavash fd    schedule 25.12.2018    source источник


Ответы (2)


Я создал новый проект callbackhandler с нуля и заставил его работать с несколькими боковыми узлами: - Я использовал следующую зависимость в основном файле pom.xml:

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

Я поместил полученный '.jar' в репозиторий/components/lib. Также я удалил .jar из репозитория/компонентов/дропов при повторном развертывании, чтобы быть уверенным (ESB создает там файл во время запуска при обработке .jar)

Я разместил весь проект здесь. Соберите с помощью «чистого пакета mvn».

Удачи! Я хотел бы услышать обратно, если вы преуспели!

person Jan    schedule 09.01.2019

Посмотрите доступную версию wss4j в папке «wso2esb-5.0.0/repository/components/plugins». Похоже, вы используете другую версию во время компиляции, что может привести к такой проблеме.

Попробуйте использовать wss4j со следующей версией зависимостей при компиляции.

version=1.5.11.wso2v14
groupId=org.apache.ws.security.wso2
artifactId=wss4j
person Rans    schedule 25.12.2018
comment
Ничего не изменилось. Я скачал wss4j-1.5.11.wso2v14.jar из mvnrepository.com/artifact/org.apache.ws.security.wso2/wss4j/ - person siavash fd; 26.12.2018
comment
Как вы компилируете исходники? Вы используете maven или другой метод? Какая у вас версия java? - person Rans; 26.12.2018
comment
Я использовал мавен. моя версия Java 1.8.0_181 - person siavash fd; 26.12.2018
comment
мой файл pom: ‹dependencies› ‹dependency› ‹groupId›org.apache.ws.security.wso2‹/groupId› ‹artifactId›wss4j‹/artifactId› ‹version›1.5.11.wso2v14‹/version› ‹/dependency› ‹/dependencies› ‹repositories› ‹repository› ‹id›wso2-public‹/id› ‹url›maven.wso2.org/nexus/content/repositories/public‹/url› ‹/repository› ‹/repositories› - person siavash fd; 26.12.2018