public class Test implements Runnable { @Override public void run() { RequestData requestData = new RequestData(); System.out.println("Thread ID: Setting requestData with hash code:" + requestData.hashCode()); RequestDataHolder.setRequestData(requestData); Thread child = new Thread(new Runnable() { @Override public void run() { RequestData requestData = RequestDataHolder.getRequestData(); System.out.println("Thread ID: Retrieved requestData with hash code:" + requestData.hashCode()); } }); child.start(); } public static void main(String[] args) { Thread thread = new Thread(new Test()); thread.start(); } }
/** Verifies the trust of a certificate. * @param result*/ protected void verifyCertificateTrust(WSHandlerResult result) throws WSSecurityException { List<WSSecurityEngineResult> results = result.getActionResults().get(WSConstants.SIGN); if (!CollectionUtils.isEmpty(results)) { WSSecurityEngineResult actionResult = results.get(0); X509Certificate returnCert = (X509Certificate) actionResult.get(WSSecurityEngineResult.TAG_X509_CERTIFICATE); Credential credential = new Credential(); credential.setCertificates(new X509Certificate[] { returnCert}); RequestData requestData = new RequestData(); requestData.setSigVerCrypto(validationSignatureCrypto); requestData.setEnableRevocation(enableRevocation); SignatureTrustValidator validator = new SignatureTrustValidator(); validator.validate(credential, requestData); } }
/** Verifies the trust of a certificate. * @param result*/ protected void verifyCertificateTrust(WSHandlerResult result) throws WSSecurityException { List<WSSecurityEngineResult> results = result.getActionResults().get(WSConstants.SIGN); if (!CollectionUtils.isEmpty(results)) { WSSecurityEngineResult actionResult = results.get(0); X509Certificate returnCert = (X509Certificate) actionResult.get(WSSecurityEngineResult.TAG_X509_CERTIFICATE); Credential credential = new Credential(); credential.setCertificates(new X509Certificate[] { returnCert}); RequestData requestData = new RequestData(); requestData.setSigVerCrypto(validationSignatureCrypto); requestData.setEnableRevocation(enableRevocation); SignatureTrustValidator validator = new SignatureTrustValidator(); validator.validate(credential, requestData); } }
/** Verifies the trust of a certificate. * @param result*/ protected void verifyCertificateTrust(WSHandlerResult result) throws WSSecurityException { List<WSSecurityEngineResult> results = result.getActionResults().get(WSConstants.SIGN); if (!CollectionUtils.isEmpty(results)) { WSSecurityEngineResult actionResult = results.get(0); X509Certificate returnCert = (X509Certificate) actionResult.get(WSSecurityEngineResult.TAG_X509_CERTIFICATE); Credential credential = new Credential(); credential.setCertificates(new X509Certificate[] { returnCert}); RequestData requestData = new RequestData(); requestData.setSigVerCrypto(validationSignatureCrypto); requestData.setEnableRevocation(enableRevocation); SignatureTrustValidator validator = new SignatureTrustValidator(); validator.validate(credential, requestData); } }
/** Verifies the timestamp. * @param result*/ protected void verifyTimestamp(WSHandlerResult result) throws WSSecurityException { List<WSSecurityEngineResult> results = result.getActionResults().get(WSConstants.TS); if (!CollectionUtils.isEmpty(results)) { WSSecurityEngineResult actionResult = results.get(0); Timestamp timestamp = (Timestamp) actionResult.get(WSSecurityEngineResult.TAG_TIMESTAMP); if (timestamp != null && timestampStrict) { Credential credential = new Credential(); credential.setTimestamp(timestamp); RequestData requestData = new RequestData(); requestData.setWssConfig(WSSConfig.getNewInstance()); requestData.setTimeStampTTL(validationTimeToLive); requestData.setTimeStampStrict(timestampStrict); requestData.setTimeStampFutureTTL(futureTimeToLive); TimestampValidator validator = new TimestampValidator(); validator.validate(credential, requestData); } } }
/** Verifies the timestamp. * @param result*/ protected void verifyTimestamp(WSHandlerResult result) throws WSSecurityException { List<WSSecurityEngineResult> results = result.getActionResults().get(WSConstants.TS); if (!CollectionUtils.isEmpty(results)) { WSSecurityEngineResult actionResult = results.get(0); Timestamp timestamp = (Timestamp) actionResult.get(WSSecurityEngineResult.TAG_TIMESTAMP); if (timestamp != null && timestampStrict) { Credential credential = new Credential(); credential.setTimestamp(timestamp); RequestData requestData = new RequestData(); requestData.setWssConfig(WSSConfig.getNewInstance()); requestData.setTimeStampTTL(validationTimeToLive); requestData.setTimeStampStrict(timestampStrict); requestData.setTimeStampFutureTTL(futureTimeToLive); TimestampValidator validator = new TimestampValidator(); validator.validate(credential, requestData); } } }
/** Verifies the timestamp. * @param result*/ protected void verifyTimestamp(WSHandlerResult result) throws WSSecurityException { List<WSSecurityEngineResult> results = result.getActionResults().get(WSConstants.TS); if (!CollectionUtils.isEmpty(results)) { WSSecurityEngineResult actionResult = results.get(0); Timestamp timestamp = (Timestamp) actionResult.get(WSSecurityEngineResult.TAG_TIMESTAMP); if (timestamp != null && timestampStrict) { Credential credential = new Credential(); credential.setTimestamp(timestamp); RequestData requestData = new RequestData(); requestData.setWssConfig(WSSConfig.getNewInstance()); requestData.setTimeStampTTL(validationTimeToLive); requestData.setTimeStampStrict(timestampStrict); requestData.setTimeStampFutureTTL(futureTimeToLive); TimestampValidator validator = new TimestampValidator(); validator.validate(credential, requestData); } } }
public void validateTrust(Crypto crypto, X509Certificate cert, PublicKey publicKey, Collection<Pattern> subjectCertConstraints) throws WSSecurityException { SignatureTrustValidator validator = new SignatureTrustValidator(); RequestData data = new RequestData(); data.setSigVerCrypto(crypto); data.setSubjectCertConstraints(subjectCertConstraints); Credential trustCredential = new Credential(); trustCredential.setPublicKey(publicKey); if (cert != null) { trustCredential.setCertificates(new X509Certificate[]{cert}); } validator.validate(trustCredential, data); } }
public void validateTrust(Crypto crypto, X509Certificate cert, PublicKey publicKey, Collection<Pattern> subjectCertConstraints) throws WSSecurityException { SignatureTrustValidator validator = new SignatureTrustValidator(); RequestData data = new RequestData(); data.setSigVerCrypto(crypto); data.setSubjectCertConstraints(subjectCertConstraints); Credential trustCredential = new Credential(); trustCredential.setPublicKey(publicKey); if (cert != null) { trustCredential.setCertificates(new X509Certificate[]{cert}); } validator.validate(trustCredential, data); } }
RequestData requestData = new RequestData(); requestData.setMsgContext(messageContext);
RequestData requestData = new RequestData(); requestData.setMsgContext(messageContext);
RequestData requestData = new RequestData(); requestData.setMsgContext(messageContext);
/** * Creates and initializes a request data for the given message context. * * @param messageContext the message context * @return the request data */ protected RequestData initializeValidationRequestData(MessageContext messageContext) { RequestData requestData = new RequestData(); requestData.setMsgContext(messageContext); requestData.setWssConfig(wssConfig); requestData.setDecCrypto(validationDecryptionCrypto); requestData.setSigVerCrypto(validationSignatureCrypto); requestData.setCallbackHandler(validationCallbackHandler); messageContext.setProperty(WSHandlerConstants.TTL_TIMESTAMP, Integer.toString(validationTimeToLive)); requestData.setAllowRSA15KeyTransportAlgorithm(allowRSA15KeyTransportAlgorithm); requestData.setDisableBSPEnforcement(!bspCompliant); if (requestData.getBSPEnforcer() != null) { requestData.getBSPEnforcer().setDisableBSPRules(!bspCompliant); } // allow for qualified password types for .Net interoperability requestData.setAllowNamespaceQualifiedPasswordTypes(true); return requestData; }
/** * Creates and initializes a request data for the given message context. * * @param messageContext the message context * @return the request data */ protected RequestData initializeValidationRequestData(MessageContext messageContext) { RequestData requestData = new RequestData(); requestData.setMsgContext(messageContext); requestData.setWssConfig(wssConfig); requestData.setDecCrypto(validationDecryptionCrypto); requestData.setSigVerCrypto(validationSignatureCrypto); requestData.setCallbackHandler(validationCallbackHandler); messageContext.setProperty(WSHandlerConstants.TTL_TIMESTAMP, Integer.toString(validationTimeToLive)); requestData.setAllowRSA15KeyTransportAlgorithm(allowRSA15KeyTransportAlgorithm); requestData.setDisableBSPEnforcement(!bspCompliant); if (requestData.getBSPEnforcer() != null) { requestData.getBSPEnforcer().setDisableBSPRules(!bspCompliant); } // allow for qualified password types for .Net interoperability requestData.setAllowNamespaceQualifiedPasswordTypes(true); return requestData; }
/** * Creates and initializes a request data for the given message context. * * @param messageContext the message context * @return the request data */ protected RequestData initializeValidationRequestData(MessageContext messageContext) { RequestData requestData = new RequestData(); requestData.setMsgContext(messageContext); requestData.setWssConfig(wssConfig); requestData.setDecCrypto(validationDecryptionCrypto); requestData.setSigVerCrypto(validationSignatureCrypto); requestData.setCallbackHandler(validationCallbackHandler); messageContext.setProperty(WSHandlerConstants.TTL_TIMESTAMP, Integer.toString(validationTimeToLive)); requestData.setAllowRSA15KeyTransportAlgorithm(allowRSA15KeyTransportAlgorithm); requestData.setDisableBSPEnforcement(!bspCompliant); if (requestData.getBSPEnforcer() != null) { requestData.getBSPEnforcer().setDisableBSPRules(!bspCompliant); } // allow for qualified password types for .Net interoperability requestData.setAllowNamespaceQualifiedPasswordTypes(true); return requestData; }
EncryptedKeyProcessor proc = new EncryptedKeyProcessor(); WSDocInfo docInfo = new WSDocInfo(child.getOwnerDocument()); RequestData data = new RequestData(); data.setWssConfig(WSSConfig.getNewInstance()); data.setDecCrypto(createCrypto(true));
EncryptedKeyProcessor proc = new EncryptedKeyProcessor(); WSDocInfo docInfo = new WSDocInfo(child.getOwnerDocument()); RequestData data = new RequestData(); data.setWssConfig(WSSConfig.getNewInstance()); data.setDecCrypto(createCrypto(true));
protected void validate(Message message) throws WSSecurityException { AuthorizationPolicy policy = message.get(AuthorizationPolicy.class); if (policy == null || policy.getUserName() == null || policy.getPassword() == null) { String name = null; if (policy != null) { name = policy.getUserName(); } String errorMsg = "No user name and/or password is available, name: " + name; LOG.warning(errorMsg); throw new SecurityException(errorMsg); } UsernameToken token = convertPolicyToToken(policy); Credential credential = new Credential(); credential.setUsernametoken(token); RequestData data = new RequestData(); data.setMsgContext(message); data.setCallbackHandler(callbackHandler); credential = getValidator().validate(credential, data); // Create a Principal/SecurityContext SecurityContext sc = null; if (credential != null && credential.getPrincipal() != null) { sc = createSecurityContext(message, credential); } else { Principal p = new WSUsernameTokenPrincipalImpl(policy.getUserName(), false); ((WSUsernameTokenPrincipalImpl)p).setPassword(policy.getPassword()); sc = createSecurityContext(p); } message.put(SecurityContext.class, sc); }
public void validateSignature(Signature signature, Document doc) throws SignatureException { RequestData requestData = new RequestData(); requestData.setWsDocInfo(new WSDocInfo(doc)); requestData.setSigVerCrypto(crypto.getSignatureCrypto());
@Override public UserSubject createSubject(Client client, String user, String pass) { Document doc = DOMUtils.getEmptyDocument(); UsernameToken token = new UsernameToken(false, doc, WSS4JConstants.PASSWORD_TEXT); token.setName(user); token.setPassword(pass); Credential credential = new Credential(); credential.setUsernametoken(token); RequestData data = new RequestData(); data.setMsgContext(PhaseInterceptorChain.getCurrentMessage()); data.setCallbackHandler(callbackHandler); UsernameTokenValidator validator = new UsernameTokenValidator(); try { credential = validator.validate(credential, data); UserSubject subject = new UserSubject(); subject.setLogin(user); return subject; } catch (Exception ex) { throw ExceptionUtils.toInternalServerErrorException(ex, null); } }