2012-01-30 4 views
1

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

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

Как насчет использования весенней безопасности и cxf's <jaxws:inInterceptors>? Не удается найти учебник еще

ПРОГРЕСС Попытка написать свой собственный перехватчик:

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

решение заключается в разработке пользовательского перехватчик:

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

Твердая золя Ответ: this и this ответов.

Смежные вопросы