Проверка сертификата Apache CXF / WSS4J - PullRequest
1 голос
/ 30 января 2012

Похоже, что единственный способ проверки сертификата (X509) заключается в следующем: если запрос к серверу содержит сертификат, который уже находится в хранилище ключей сервера, обрабатывает запрос (и то же самое с ответом сервера).

Не могли бы вы, пожалуйста, предложить способ проверки сертификата CRL и корневым сертификатом?

Как насчет использования Spring Security и CXF <jaxws:inInterceptors>?Пока не могу найти учебник

PROGRESS Попытка написать собственный перехватчик:

public class MyInInterceptor extends AbstractPhaseInterceptor<Message> {
Logger logger = Logger.getLogger(MyInInterceptor.class);

public MyInInterceptor() {
    super(Phase.PRE_PROTOCOL);

    addAfter(WSS4JInInterceptor.class.getName());
}

private SOAPMessage getSOAPMessage(SoapMessage msg) {
    SAAJInInterceptor.INSTANCE.handleMessage(msg);
    return msg.getContent(SOAPMessage.class);
}

@Override
public void handleMessage(Message message) throws Fault {
    logger.info("custom handleMessage method");

    logger.info("getting a certificate");
    HashMap engine = (HashMap) message.get("wss4j.signature.result");
    X509Certificate certificate = (X509Certificate) engine.get("x509-certificate");

    logger.info("parsing certificate");

}

На данный момент проблема заключается в проверке сертификата любым возможным способом,скажи чистую джаву ..

1 Ответ

1 голос
/ 25 февраля 2012

Решение состоит в том, чтобы разработать собственный перехватчик:

/** 
 * Constructor
*/ 
public SecurityInInterceptor() {
   super(Phase.PRE_PROTOCOL);
   getAfter().add(SAAJInInterceptor.class.getName());
}

Сложность решения: это и это ответы.

...