/** * 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(); }
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()); }
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 = addDKUsernameToken(token, true); if (utBuilder != null) { utBuilder.prepare(); addSupportingElement(utBuilder.getUsernameTokenElement()); ret.add(new SupportingToken(token, utBuilder, null)); WSSecUsernameToken utBuilder = addUsernameToken(token); if (utBuilder != null) { utBuilder.prepare(); addSupportingElement(utBuilder.getUsernameTokenElement()); ret.add(new SupportingToken(token, utBuilder, null));
WSSecUsernameToken utBuilder = addDKUsernameToken(token, true); if (utBuilder != null) { utBuilder.prepare(); addSupportingElement(utBuilder.getUsernameTokenElement()); ret.add(new SupportingToken(token, utBuilder, null)); WSSecUsernameToken utBuilder = addUsernameToken(token); if (utBuilder != null) { utBuilder.prepare(); addSupportingElement(utBuilder.getUsernameTokenElement()); ret.add(new SupportingToken(token, utBuilder, null));
WSSecUsernameToken utBuilder = addUsernameToken((UsernameToken)token); if (utBuilder != null) { utBuilder.prepare(); utBuilder.appendToHeader();
WSSecUsernameToken utBuilder = addUsernameToken((UsernameToken)token); if (utBuilder != null) { utBuilder.prepare(); utBuilder.appendToHeader();
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; }
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; }
builder.addCreated(); builder.addNonce(); builder.prepare();