WSSecUsernameToken utBuilder = new WSSecUsernameToken(doc); utBuilder.setIdAllocator(wssConfig.getIdAllocator()); utBuilder.setWsTimeSource(wssConfig.getCurrentTime()); utBuilder.setUserInfo(userName, null); utBuilder.setPasswordType(null); return utBuilder; WSSecUsernameToken utBuilder = new WSSecUsernameToken(doc); utBuilder.setIdAllocator(wssConfig.getIdAllocator()); utBuilder.setWsTimeSource(wssConfig.getCurrentTime()); if (token.getPasswordType() == UsernameToken.PasswordType.HashPassword) { utBuilder.setPasswordType(WSS4JConstants.PASSWORD_DIGEST); } else { utBuilder.setPasswordType(WSS4JConstants.PASSWORD_TEXT); utBuilder.addCreated(); utBuilder.addNonce(); utBuilder.setUserInfo(userName, password); return utBuilder;
WSSecUsernameToken builder = new WSSecUsernameToken(reqData.getSecHeader()); builder.setIdAllocator(reqData.getWssConfig().getIdAllocator()); builder.setPrecisionInMilliSeconds(reqData.isPrecisionInMilliSeconds()); builder.setWsTimeSource(reqData.getWssConfig().getCurrentTime()); builder.setPasswordType(reqData.getPwType()); builder.setPasswordsAreEncoded(reqData.isEncodePasswords()); builder.setUserInfo(username, password); builder.setWsDocInfo(reqData.getWsDocInfo()); builder.setExpandXopInclude(reqData.isExpandXopInclude()); builder.addNonce(); builder.addCreated(); builder.build();
private String setupUTDerivedKey(UsernameToken sigToken) throws WSSecurityException { boolean useMac = hasSignedPartsOrElements(); WSSecUsernameToken usernameToken = addDKUsernameToken(sigToken, useMac); String id = usernameToken.getId(); byte[] secret = usernameToken.getDerivedKey(); Instant created = Instant.now(); Instant expires = created.plusSeconds(WSS4JUtils.getSecurityTokenLifetime(message) / 1000L); SecurityToken tempTok = new SecurityToken(id, usernameToken.getUsernameTokenElement(), created, expires); tempTok.setSecret(secret); tokenStore.add(tempTok); return id; }
/** * Adds a new <code>UsernameToken</code> to a soap envelope. * * Before calling <code>build()</code> all parameters such as user, * password, passwordType etc. must be set. A complete * <code>UsernameToken</code> is constructed and added to the * <code>wsse:Security</code> header. * * @return Document with UsernameToken added */ public Document build() { LOG.debug("Begin add username token..."); prepare(); prependToHeader(); return getDocument(); }
WSSecUsernameToken builder = new WSSecUsernameToken(); builder.setPasswordType(WSConstants.PASSWORD_TEXT); // set user name an password builder.setUserInfo("wernerd", "verySecret"); // create a sample soap message Document doc = SOAPUtil.toSOAPPart(SOAPUtil.SAMPLE_SOAP_MSG); WSSecHeader secHeader = new WSSecHeader(doc); secHeader.insertSecurityHeader(); // create the soap message with WSS headers Document signedDoc = builder.build(doc, secHeader); // simply print the result System.out.println(XMLUtils.prettyDocumentToString(signedDoc));
WSSecUsernameToken builder = new WSSecUsernameToken(reqData.getSecHeader()); builder.setIdAllocator(reqData.getWssConfig().getIdAllocator()); builder.setPrecisionInMilliSeconds(reqData.isPrecisionInMilliSeconds()); builder.setWsTimeSource(reqData.getWssConfig().getCurrentTime()); builder.setWsDocInfo(reqData.getWsDocInfo()); builder.setExpandXopInclude(reqData.isExpandXopInclude()); builder.addDerivedKey(useMac, null, iterations); builder.setUserInfo(reqData.getUsername(), passwordCallback.getPassword()); builder.addCreated(); builder.addNonce(); builder.prepare(); sign.setCustomTokenId(builder.getId()); sign.setSecretKey(builder.getDerivedKey()); sign.setKeyIdentifierType(WSConstants.CUSTOM_SYMM_SIGNING); if (signatureToken.getDigestAlgorithm() != null) { ); builder.prependToHeader();
protected WSSecUsernameToken addDKUsernameToken(UsernameToken token, boolean useMac) { assertToken(token); if (!isTokenRequired(token.getIncludeTokenType())) { return null; } String userName = (String)SecurityUtils.getSecurityPropertyValue(SecurityConstants.USERNAME, message); if (!StringUtils.isEmpty(userName)) { WSSecUsernameToken utBuilder = new WSSecUsernameToken(secHeader); utBuilder.setIdAllocator(wssConfig.getIdAllocator()); utBuilder.setWsTimeSource(wssConfig.getCurrentTime()); String password = (String)SecurityUtils.getSecurityPropertyValue(SecurityConstants.PASSWORD, message); if (StringUtils.isEmpty(password)) { password = getPassword(userName, token, WSPasswordCallback.USERNAME_TOKEN); } if (!StringUtils.isEmpty(password)) { // If the password is available then build the token utBuilder.setUserInfo(userName, password); utBuilder.addDerivedKey(useMac, null, 1000); utBuilder.prepare(); } else { unassertPolicy(token, "No password available"); return null; } return utBuilder; } unassertPolicy(token, "No username available"); return null; }
WSSecUsernameToken utBuilder = addDKUsernameToken(token, true); if (utBuilder != null) { utBuilder.prepare(); addSupportingElement(utBuilder.getUsernameTokenElement()); ret.add(new SupportingToken(token, utBuilder, null)); if (encryptedToken) { WSEncryptionPart part = new WSEncryptionPart(utBuilder.getId(), "Element"); part.setElement(utBuilder.getUsernameTokenElement()); encryptedTokensList.add(part); WSSecUsernameToken utBuilder = addUsernameToken(token); if (utBuilder != null) { utBuilder.prepare(); addSupportingElement(utBuilder.getUsernameTokenElement()); ret.add(new SupportingToken(token, utBuilder, null)); SecurityConstants.ALWAYS_ENCRYPT_UT, true)) { WSEncryptionPart part = new WSEncryptionPart(utBuilder.getId(), "Element"); part.setElement(utBuilder.getUsernameTokenElement()); encryptedTokensList.add(part);
protected void addToken(SoapMessage message) { UsernameToken tok = assertTokens(message); Header h = findSecurityHeader(message, true); Element el = (Element)h.getObject(); Document doc = el.getOwnerDocument(); WSSecUsernameToken utBuilder = addUsernameToken(message, doc, tok); if (utBuilder == null) { AssertionInfoMap aim = message.get(AssertionInfoMap.class); Collection<AssertionInfo> ais = PolicyUtils.getAllAssertionsByLocalname(aim, SPConstants.USERNAME_TOKEN); for (AssertionInfo ai : ais) { if (ai.isAsserted()) { ai.setAsserted(false); } } return; } utBuilder.prepare(); el.appendChild(utBuilder.getUsernameTokenElement()); }
WSSecUsernameToken utBuilder = addUsernameToken((UsernameToken)token); if (utBuilder != null) { utBuilder.prepare(); utBuilder.appendToHeader();
part = new WSEncryptionPart(unt.getId()); part.setElement(unt.getUsernameTokenElement()); } else if (tempTok instanceof BinarySecurity) { BinarySecurity bst = (BinarySecurity)tempTok;
SOAPPart soappart = message.getSOAPPart(); SOAPEnvelope envelope = soappart.getEnvelope(); SOAPHeader header = envelope.getHeader(); WSSecHeader wsheader = new WSSecHeader(); wsheader.insertSecurityHeader(soappart); WSSecUsernameToken token = new WSSecUsernameToken(); token.setPasswordType(WSConstants.PASSWORD_DIGEST); token.setUserInfo("myuser", "mypass"); token.build(soappart, wsheader);
protected WSSecUsernameToken addDKUsernameToken(UsernameToken token, boolean useMac) { assertToken(token); if (!isTokenRequired(token.getIncludeTokenType())) { return null; } String userName = (String)SecurityUtils.getSecurityPropertyValue(SecurityConstants.USERNAME, message); if (!StringUtils.isEmpty(userName)) { WSSecUsernameToken utBuilder = new WSSecUsernameToken(secHeader); utBuilder.setIdAllocator(wssConfig.getIdAllocator()); utBuilder.setWsTimeSource(wssConfig.getCurrentTime()); String password = (String)SecurityUtils.getSecurityPropertyValue(SecurityConstants.PASSWORD, message); if (StringUtils.isEmpty(password)) { password = getPassword(userName, token, WSPasswordCallback.USERNAME_TOKEN); } if (!StringUtils.isEmpty(password)) { // If the password is available then build the token utBuilder.setUserInfo(userName, password); utBuilder.addDerivedKey(useMac, null, 1000); utBuilder.prepare(); } else { unassertPolicy(token, "No password available"); return null; } return utBuilder; } unassertPolicy(token, "No username available"); return null; }
WSSecUsernameToken utBuilder = addDKUsernameToken(token, true); if (utBuilder != null) { utBuilder.prepare(); addSupportingElement(utBuilder.getUsernameTokenElement()); ret.add(new SupportingToken(token, utBuilder, null)); if (encryptedToken) { WSEncryptionPart part = new WSEncryptionPart(utBuilder.getId(), "Element"); part.setElement(utBuilder.getUsernameTokenElement()); encryptedTokensList.add(part); WSSecUsernameToken utBuilder = addUsernameToken(token); if (utBuilder != null) { utBuilder.prepare(); addSupportingElement(utBuilder.getUsernameTokenElement()); ret.add(new SupportingToken(token, utBuilder, null)); SecurityConstants.ALWAYS_ENCRYPT_UT, true)) { WSEncryptionPart part = new WSEncryptionPart(utBuilder.getId(), "Element"); part.setElement(utBuilder.getUsernameTokenElement()); encryptedTokensList.add(part);
protected void addToken(SoapMessage message) { UsernameToken tok = assertTokens(message); Header h = findSecurityHeader(message, true); Element el = (Element)h.getObject(); Document doc = el.getOwnerDocument(); WSSecUsernameToken utBuilder = addUsernameToken(message, doc, tok); if (utBuilder == null) { AssertionInfoMap aim = message.get(AssertionInfoMap.class); Collection<AssertionInfo> ais = PolicyUtils.getAllAssertionsByLocalname(aim, SPConstants.USERNAME_TOKEN); for (AssertionInfo ai : ais) { if (ai.isAsserted()) { ai.setAsserted(false); } } return; } utBuilder.prepare(); el.appendChild(utBuilder.getUsernameTokenElement()); }
WSSecUsernameToken utBuilder = addUsernameToken((UsernameToken)token); if (utBuilder != null) { utBuilder.prepare(); utBuilder.appendToHeader();
part = new WSEncryptionPart(unt.getId()); part.setElement(unt.getUsernameTokenElement()); } else if (tempTok instanceof BinarySecurity) { BinarySecurity bst = (BinarySecurity)tempTok;
WSSecUsernameToken utBuilder = new WSSecUsernameToken(doc); utBuilder.setIdAllocator(wssConfig.getIdAllocator()); utBuilder.setWsTimeSource(wssConfig.getCurrentTime()); utBuilder.setUserInfo(userName, null); utBuilder.setPasswordType(null); return utBuilder; WSSecUsernameToken utBuilder = new WSSecUsernameToken(doc); utBuilder.setIdAllocator(wssConfig.getIdAllocator()); utBuilder.setWsTimeSource(wssConfig.getCurrentTime()); if (token.getPasswordType() == UsernameToken.PasswordType.HashPassword) { utBuilder.setPasswordType(WSS4JConstants.PASSWORD_DIGEST); } else { utBuilder.setPasswordType(WSS4JConstants.PASSWORD_TEXT); utBuilder.addCreated(); utBuilder.addNonce(); utBuilder.setUserInfo(userName, password); return utBuilder;
public Node buildSecurityHeader(String username, String password) throws WSSecurityException, ParserConfigurationException, SAXException, IOException{ //XML Document builder with a root node DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); factory.setNamespaceAware(true); DocumentBuilder builder = factory.newDocumentBuilder(); InputSource inStream = new InputSource(); inStream.setCharacterStream(new StringReader("<root></root>")); Document document = builder.parse(inStream); //<wsse:UsernameToken> WSSecUsernameToken usernametoken = new WSSecUsernameToken(); usernametoken.setPasswordType(WSConstants.PASSWORD_DIGEST); usernametoken.setUserInfo(username, password); //<wsse:Security> WSSecHeader secHeader = new WSSecHeader(document); secHeader.insertSecurityHeader(); //Generates the Document with <root><Header><wsse:Security>... usernametoken.build(document, secHeader); //Extract the desired node Node securityNode = document.getElementsByTagName("wsse:Security").item(0); return securityNode; }
private String setupUTDerivedKey(UsernameToken sigToken) throws WSSecurityException { boolean useMac = hasSignedPartsOrElements(); WSSecUsernameToken usernameToken = addDKUsernameToken(sigToken, useMac); String id = usernameToken.getId(); byte[] secret = usernameToken.getDerivedKey(); Instant created = Instant.now(); Instant expires = created.plusSeconds(WSS4JUtils.getSecurityTokenLifetime(message) / 1000L); SecurityToken tempTok = new SecurityToken(id, usernameToken.getUsernameTokenElement(), created, expires); tempTok.setSecret(secret); tokenStore.add(tempTok); return id; }