SOAPMessage soapMessage = MessageFactory.newInstance().createMessage(null, new ByteArrayInputStream(soapRequest.getBytes())); FileInputStream is = new FileInputStream(keyStore); KeyPair keypair = null; KeyStore keystore = KeyStore.getInstance(KeyStore.getDefaultType()); keystore.load(is, keyStorePwd.toCharArray()); Certificate cert = null; Key key = keystore.getKey(alias, keyStorePwd.toCharArray()); if (key instanceof PrivateKey) { cert = keystore.getCertificate(alias); PublicKey publicKey = cert.getPublicKey(); keypair = new KeyPair(publicKey, (PrivateKey) key); } Properties properties = new Properties(); properties.setProperty("org.apache.ws.security.crypto.provider", "org.apache.ws.security.components.crypto.Merlin"); Crypto crypto = CryptoFactory.getInstance(properties); keystore.setKeyEntry(alias, keypair.getPrivate(), keyStorePwd.toCharArray(), new Certificate[]{cert}); ((Merlin) crypto).setKeyStore(keystore); crypto.loadCertificate(new ByteArrayInputStream(cert.getEncoded())); WSSecurityEngine engine = new WSSecurityEngine(); WSSConfig config = WSSConfig.getNewInstance(); config.setWsiBSPCompliant(false); engine.setWssConfig(config); List<WSSecurityEngineResult> res = engine.processSecurityHeader(toDocument(soapMessage), null, null, crypto); for (WSSecurityEngineResult ers : res) { LOG.trace("Details of security header after validation {}" , ers.toString()); } LOG.debug("Validation code executed");
/** * We use this method to prevent the singleton behavior of WSSConfig * @return WSSConfig object with the latest settings. */ public static WSSConfig getWSSConfigInstance() { WSSConfig defaultWssConfig = WSSConfig.getNewInstance(); WSSConfig wssConfig = WSSConfig.getNewInstance(); wssConfig.setEnableSignatureConfirmation(defaultWssConfig.isEnableSignatureConfirmation()); wssConfig.setTimeStampStrict(defaultWssConfig.isTimeStampStrict()); wssConfig.setWsiBSPCompliant(defaultWssConfig.isWsiBSPCompliant()); wssConfig.setPrecisionInMilliSeconds(defaultWssConfig.isPrecisionInMilliSeconds()); return wssConfig; }
this.certificate); WSSConfig wssConfig = new WSSConfig(); wssConfig.setWsiBSPCompliant(false); WSSecSignature sign = new WSSecSignature(wssConfig); sign.setKeyIdentifierType(WSConstants.BST_DIRECT_REFERENCE);
wssConfig.setWsiBSPCompliant(false); WSSecSignature sign = new WSSecSignature(wssConfig); sign.setKeyIdentifierType(WSConstants.BST_DIRECT_REFERENCE);
WSSecurityUtil.getSOAPConstants(doc.getDocumentElement()) ); wssConfig.setWsiBSPCompliant(decodeBSPCompliance(reqData));
WSSecurityUtil.getSOAPConstants(doc.getDocumentElement()) ); wssConfig.setWsiBSPCompliant(decodeBSPCompliance(reqData));
wssConfig.setWsiBSPCompliant(decodeBSPCompliance(reqData)); reqData.setWssConfig(wssConfig);
wssConfig.setWsiBSPCompliant(decodeBSPCompliance(reqData)); reqData.setWssConfig(wssConfig);