Search in sources :

Example 1 with SecurityToken

use of org.apache.xml.security.stax.securityToken.SecurityToken in project cxf by apache.

the class XmlSecInInterceptor method checkSignatureTrust.

private void checkSignatureTrust(Crypto sigCrypto, Message msg, TokenSecurityEvent<?> event) throws XMLSecurityException {
    SecurityToken token = event.getSecurityToken();
    if (token != null) {
        X509Certificate[] certs = token.getX509Certificates();
        if (certs == null && token.getPublicKey() == null && token instanceof KeyNameSecurityToken) {
            certs = getX509CertificatesForKeyName(sigCrypto, msg, (KeyNameSecurityToken) token);
        }
        PublicKey publicKey = token.getPublicKey();
        X509Certificate cert = null;
        if (certs != null && certs.length > 0) {
            cert = certs[0];
        }
        // validate trust
        try {
            new TrustValidator().validateTrust(sigCrypto, cert, publicKey, getSubjectContraints(msg));
        } catch (WSSecurityException e) {
            String error = "Signature validation failed";
            throw new XMLSecurityException("empty", new Object[] { error });
        }
        if (persistSignature) {
            msg.setContent(X509Certificate.class, cert);
        }
    }
}
Also used : SecurityToken(org.apache.xml.security.stax.securityToken.SecurityToken) KeyNameSecurityToken(org.apache.xml.security.stax.impl.securityToken.KeyNameSecurityToken) TrustValidator(org.apache.cxf.rs.security.common.TrustValidator) PublicKey(java.security.PublicKey) WSSecurityException(org.apache.wss4j.common.ext.WSSecurityException) KeyNameSecurityToken(org.apache.xml.security.stax.impl.securityToken.KeyNameSecurityToken) X509Certificate(java.security.cert.X509Certificate) XMLSecurityException(org.apache.xml.security.exceptions.XMLSecurityException)

Aggregations

PublicKey (java.security.PublicKey)1 X509Certificate (java.security.cert.X509Certificate)1 TrustValidator (org.apache.cxf.rs.security.common.TrustValidator)1 WSSecurityException (org.apache.wss4j.common.ext.WSSecurityException)1 XMLSecurityException (org.apache.xml.security.exceptions.XMLSecurityException)1 KeyNameSecurityToken (org.apache.xml.security.stax.impl.securityToken.KeyNameSecurityToken)1 SecurityToken (org.apache.xml.security.stax.securityToken.SecurityToken)1