/** * Dereferences and decodes encrypted data elements. * * @param elem contains the <code>ReferenceList</code> to the encrypted * data elements */ private List<WSDataRef> handleReferenceList( Element elem, RequestData data ) throws WSSecurityException { List<WSDataRef> dataRefs = new ArrayList<>(); for (Node node = elem.getFirstChild(); node != null; node = node.getNextSibling() ) { if (Node.ELEMENT_NODE == node.getNodeType() && WSConstants.ENC_NS.equals(node.getNamespaceURI()) && "DataReference".equals(node.getLocalName())) { String dataRefURI = ((Element) node).getAttributeNS(null, "URI"); dataRefURI = XMLUtils.getIDFromReference(dataRefURI); // See whether we have already processed the encrypted node if (!data.getWsDocInfo().hasResult(WSConstants.ENCR, dataRefURI)) { WSDataRef dataRef = decryptDataRefEmbedded(elem.getOwnerDocument(), dataRefURI, data); dataRefs.add(dataRef); } } } return dataRefs; }
public List<WSSecurityEngineResult> handleToken( Element elem, RequestData data ) throws WSSecurityException { LOG.debug("Found reference list element"); List<WSDataRef> dataRefs = handleReferenceList(elem, data); WSSecurityEngineResult result = new WSSecurityEngineResult(WSConstants.ENCR, dataRefs); String tokenId = elem.getAttributeNS(null, "Id"); if (!"".equals(tokenId)) { result.put(WSSecurityEngineResult.TAG_ID, tokenId); } data.getWsDocInfo().addTokenElement(elem); data.getWsDocInfo().addResult(result); return Collections.singletonList(result); }
public List<WSSecurityEngineResult> handleToken( Element elem, RequestData data ) throws WSSecurityException { LOG.debug("Found SignatureConfirmation list element"); // // Decode SignatureConfirmation, just store in result // SignatureConfirmation sigConf = new SignatureConfirmation(elem, data.getBSPEnforcer()); WSSecurityEngineResult result = new WSSecurityEngineResult(WSConstants.SC, sigConf); String tokenId = sigConf.getID(); if (!"".equals(tokenId)) { result.put(WSSecurityEngineResult.TAG_ID, tokenId); } data.getWsDocInfo().addResult(result); data.getWsDocInfo().addTokenElement(elem); return java.util.Collections.singletonList(result); }
String keyIdentifierValue = secRef.getKeyIdentifierValue(); String type = secRef.getKeyIdentifierValueType(); WSSecurityEngineResult result = request.getWsDocInfo().getResult(keyIdentifierValue); token = findProcessedTokenElement( strElement.getOwnerDocument(), request.getWsDocInfo(), request.getCallbackHandler(), keyIdentifierValue, type ); strElement.getOwnerDocument(), request.getWsDocInfo(), request.getCallbackHandler(), keyIdentifierValue, type );
public List<WSSecurityEngineResult> handleToken( Element elem, RequestData data ) throws WSSecurityException { LOG.debug("Found Timestamp list element"); // // Decode Timestamp, add the found time (created/expiry) to result // Timestamp timestamp = new Timestamp(elem, data.getBSPEnforcer()); Credential credential = new Credential(); credential.setTimestamp(timestamp); WSSecurityEngineResult result = new WSSecurityEngineResult(WSConstants.TS, timestamp); String tokenId = timestamp.getID(); if (!"".equals(tokenId)) { result.put(WSSecurityEngineResult.TAG_ID, tokenId); } Validator validator = data.getValidator(WSConstants.TIMESTAMP); if (validator != null) { validator.validate(credential, data); result.put(WSSecurityEngineResult.TAG_VALIDATED_TOKEN, Boolean.TRUE); } data.getWsDocInfo().addTokenElement(elem); data.getWsDocInfo().addResult(result); return java.util.Collections.singletonList(result); }
Element foundElement = data.getWsDocInfo().getTokenElement(id); if (elem.equals(foundElement)) { WSSecurityEngineResult result = data.getWsDocInfo().getResult(id); return java.util.Collections.singletonList(result); } else if (foundElement != null) { data.getWsDocInfo().addTokenElement(elem); WSSecurityEngineResult result = null; if (samlAssertion.isSigned()) { data.getWsDocInfo().addResult(result); return java.util.Collections.singletonList(result);
Element foundElement = data.getWsDocInfo().getTokenElement(id); if (elem.equals(foundElement)) { WSSecurityEngineResult result = data.getWsDocInfo().getResult(id); return java.util.Collections.singletonList(result); } else if (foundElement != null) { data.getWsDocInfo().addTokenElement(elem); if (!"".equals(id)) { result.put(WSSecurityEngineResult.TAG_ID, id); data.getWsDocInfo().addResult(result); return java.util.Collections.singletonList(result);
wsc.setWsDocInfo(reqData.getWsDocInfo()); wsc.setExpandXopInclude(reqData.isExpandXopInclude()); SignatureActionToken signatureToken = (SignatureActionToken)actionToken;
data.getWsDocInfo().addTokenElement(elem); data.getWsDocInfo().addResult(result); return java.util.Collections.singletonList(result);
Element foundElement = data.getWsDocInfo().getTokenElement(id); if (elem.equals(foundElement)) { WSSecurityEngineResult result = data.getWsDocInfo().getResult(id); return java.util.Collections.singletonList(result); } else if (foundElement != null) { data.getWsDocInfo().addTokenElement(elem); data.getWsDocInfo().addResult(result); return java.util.Collections.singletonList(result);
if (parameters == null || parameters.getData() == null || parameters.getData().getWsDocInfo() == null || parameters.getStrElement() == null) { throw new WSSecurityException( WSSecurityEngineResult result = parameters.getData().getWsDocInfo().getResult(uri); if (result != null) { return processPreviousResult(result, secRef, parameters);
/** * Parse a SecurityTokenReference element and extract credentials. * * @param parameters The parameters to parse * @return the STRParserResult Object containing the parsing results * @throws WSSecurityException */ public STRParserResult parseSecurityTokenReference(STRParserParameters parameters) throws WSSecurityException { if (parameters == null || parameters.getData() == null || parameters.getData().getWsDocInfo() == null || parameters.getStrElement() == null) { throw new WSSecurityException( WSSecurityException.ErrorCode.FAILURE, "invalidSTRParserParameter" ); } SecurityTokenReference secRef = new SecurityTokenReference(parameters.getStrElement(), parameters.getData().getBSPEnforcer()); String uri = null; if (secRef.getReference() != null) { uri = secRef.getReference().getURI(); uri = XMLUtils.getIDFromReference(uri); } else if (secRef.containsKeyIdentifier()) { uri = secRef.getKeyIdentifierValue(); } WSSecurityEngineResult result = parameters.getData().getWsDocInfo().getResult(uri); if (result != null) { return processPreviousResult(result, secRef, parameters); } return processSTR(secRef, uri, parameters); }
/** * Parse a SecurityTokenReference element and extract credentials. * * @param parameters The parameters to parse * @return the STRParserResult Object containing the parsing results * @throws WSSecurityException */ public STRParserResult parseSecurityTokenReference(STRParserParameters parameters) throws WSSecurityException { if (parameters == null || parameters.getData() == null || parameters.getData().getWsDocInfo() == null || parameters.getStrElement() == null) { throw new WSSecurityException( WSSecurityException.ErrorCode.FAILURE, "invalidSTRParserParameter" ); } SecurityTokenReference secRef = new SecurityTokenReference(parameters.getStrElement(), parameters.getData().getBSPEnforcer()); String uri = null; if (secRef.getReference() != null) { uri = secRef.getReference().getURI(); uri = XMLUtils.getIDFromReference(uri); } else if (secRef.containsKeyIdentifier()) { uri = secRef.getKeyIdentifierValue(); } WSSecurityEngineResult result = parameters.getData().getWsDocInfo().getResult(uri); if (result != null) { return processPreviousResult(result, secRef, parameters); } return processSTR(secRef, parameters); }
/** * Parse a SecurityTokenReference element and extract credentials. * * @param parameters The parameters to parse * @return the STRParserResult Object containing the parsing results * @throws WSSecurityException */ public STRParserResult parseSecurityTokenReference(STRParserParameters parameters) throws WSSecurityException { if (parameters == null || parameters.getData() == null || parameters.getData().getWsDocInfo() == null || parameters.getStrElement() == null) { throw new WSSecurityException( WSSecurityException.ErrorCode.FAILURE, "invalidSTRParserParameter" ); } SecurityTokenReference secRef = new SecurityTokenReference(parameters.getStrElement(), parameters.getData().getBSPEnforcer()); String uri = null; if (secRef.getReference() != null) { uri = secRef.getReference().getURI(); uri = XMLUtils.getIDFromReference(uri); } else if (secRef.containsKeyIdentifier()) { uri = secRef.getKeyIdentifierValue(); } WSSecurityEngineResult result = parameters.getData().getWsDocInfo().getResult(uri); if (result != null) { return processPreviousResult(result, secRef, uri, parameters); } return processSTR(secRef, uri, parameters); }
WSSecurityEngineResult result = new WSSecurityEngineResult(WSConstants.DKT, null, keyBytes, null); data.getWsDocInfo().addTokenElement(elem); String tokenId = dkt.getID(); if (!"".equals(tokenId)) { result.put(WSSecurityEngineResult.TAG_SECRET, secret); result.put(WSSecurityEngineResult.TAG_TOKEN_ELEMENT, dkt.getElement()); data.getWsDocInfo().addResult(result); return Collections.singletonList(result);
public void execute(WSHandler handler, SecurityActionToken actionToken, RequestData reqData) throws WSSecurityException { // // add the Timestamp to the SOAP Envelope // WSSecTimestamp timeStampBuilder = new WSSecTimestamp(reqData.getSecHeader()); timeStampBuilder.setIdAllocator(reqData.getWssConfig().getIdAllocator()); timeStampBuilder.setPrecisionInMilliSeconds(reqData.isPrecisionInMilliSeconds()); timeStampBuilder.setTimeToLive(reqData.getTimeStampTTL()); timeStampBuilder.setWsTimeSource(reqData.getWssConfig().getCurrentTime()); timeStampBuilder.setWsDocInfo(reqData.getWsDocInfo()); timeStampBuilder.setExpandXopInclude(reqData.isExpandXopInclude()); timeStampBuilder.build(); } }
RequestData data = parameters.getData(); Element strElement = parameters.getStrElement(); WSDocInfo wsDocInfo = data.getWsDocInfo(); Crypto crypto = data.getDecCrypto();
byte[] keyBytes = secRef.getSKIBytes(); List<WSSecurityEngineResult> resultsList = data.getWsDocInfo().getResultsByTag(WSConstants.BST); for (WSSecurityEngineResult bstResult : resultsList) { BinarySecurity bstToken =
WSSecSAMLToken builder = new WSSecSAMLToken(reqData.getSecHeader()); builder.setIdAllocator(reqData.getWssConfig().getIdAllocator()); builder.setWsDocInfo(reqData.getWsDocInfo()); builder.setExpandXopInclude(reqData.isExpandXopInclude());
builder.setPasswordsAreEncoded(reqData.isEncodePasswords()); builder.setUserInfo(username, password); builder.setWsDocInfo(reqData.getWsDocInfo()); builder.setExpandXopInclude(reqData.isExpandXopInclude());