Java Code Examples for org.apache.ws.security.message.WSSecUsernameToken#prepare()
The following examples show how to use
org.apache.ws.security.message.WSSecUsernameToken#prepare() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: UsernameTokenInterceptor.java From steady with Apache License 2.0 | 6 votes |
private void addUsernameToken(SoapMessage message) { UsernameToken tok = assertUsernameTokens(message, null); Header h = findSecurityHeader(message, true); WSSecUsernameToken utBuilder = addUsernameToken(message, tok); if (utBuilder == null) { AssertionInfoMap aim = message.get(AssertionInfoMap.class); Collection<AssertionInfo> ais = aim.getAssertionInfo(SP12Constants.USERNAME_TOKEN); for (AssertionInfo ai : ais) { if (ai.isAsserted()) { ai.setAsserted(false); } } return; } Element el = (Element)h.getObject(); utBuilder.prepare(el.getOwnerDocument()); el.appendChild(utBuilder.getUsernameTokenElement()); }
Example 2
Source File: UsernameTokenInterceptor.java From steady with Apache License 2.0 | 6 votes |
private void addUsernameToken(SoapMessage message) { UsernameToken tok = assertUsernameTokens(message, null); Header h = findSecurityHeader(message, true); WSSecUsernameToken utBuilder = addUsernameToken(message, tok); if (utBuilder == null) { AssertionInfoMap aim = message.get(AssertionInfoMap.class); Collection<AssertionInfo> ais = aim.getAssertionInfo(SP12Constants.USERNAME_TOKEN); for (AssertionInfo ai : ais) { if (ai.isAsserted()) { ai.setAsserted(false); } } return; } Element el = (Element)h.getObject(); utBuilder.prepare(el.getOwnerDocument()); el.appendChild(utBuilder.getUsernameTokenElement()); }
Example 3
Source File: UsernameTokenInterceptor.java From steady with Apache License 2.0 | 6 votes |
private void addUsernameToken(SoapMessage message) { UsernameToken tok = assertUsernameTokens(message, null); Header h = findSecurityHeader(message, true); WSSecUsernameToken utBuilder = addUsernameToken(message, tok); if (utBuilder == null) { AssertionInfoMap aim = message.get(AssertionInfoMap.class); Collection<AssertionInfo> ais = aim.getAssertionInfo(SP12Constants.USERNAME_TOKEN); for (AssertionInfo ai : ais) { if (ai.isAsserted()) { ai.setAsserted(false); } } return; } Element el = (Element)h.getObject(); utBuilder.prepare(el.getOwnerDocument()); el.appendChild(utBuilder.getUsernameTokenElement()); }
Example 4
Source File: UsernameTokenInterceptor.java From steady with Apache License 2.0 | 6 votes |
private void addUsernameToken(SoapMessage message) { UsernameToken tok = assertUsernameTokens(message, null); Header h = findSecurityHeader(message, true); WSSecUsernameToken utBuilder = addUsernameToken(message, tok); if (utBuilder == null) { AssertionInfoMap aim = message.get(AssertionInfoMap.class); Collection<AssertionInfo> ais = aim.getAssertionInfo(SP12Constants.USERNAME_TOKEN); for (AssertionInfo ai : ais) { if (ai.isAsserted()) { ai.setAsserted(false); } } return; } Element el = (Element)h.getObject(); utBuilder.prepare(el.getOwnerDocument()); el.appendChild(utBuilder.getUsernameTokenElement()); }
Example 5
Source File: TransportBindingHandler.java From steady with Apache License 2.0 | 5 votes |
private void addSignedSupportingTokens(SupportingToken sgndSuppTokens) throws Exception { for (Token token : sgndSuppTokens.getTokens()) { if (token instanceof UsernameToken) { WSSecUsernameToken utBuilder = addUsernameToken((UsernameToken)token); if (utBuilder != null) { utBuilder.prepare(saaj.getSOAPPart()); utBuilder.appendToHeader(secHeader); } } else if (token instanceof IssuedToken || token instanceof KerberosToken) { SecurityToken secTok = getSecurityToken(); if (includeToken(token.getInclusion())) { //Add the token addEncryptedKeyElement(cloneElement(secTok.getToken())); } } else if (token instanceof SamlToken) { AssertionWrapper assertionWrapper = addSamlToken((SamlToken)token); if (assertionWrapper != null) { addSupportingElement(assertionWrapper.toDOM(saaj.getSOAPPart())); } } else { //REVISIT - not supported for signed. Exception? } } }
Example 6
Source File: AbstractBindingBuilder.java From steady with Apache License 2.0 | 5 votes |
protected WSSecUsernameToken addDKUsernameToken(UsernameToken token, boolean useMac) { AssertionInfo info = null; Collection<AssertionInfo> ais = aim.getAssertionInfo(token.getName()); for (AssertionInfo ai : ais) { if (ai.getAssertion() == token) { info = ai; if (!isRequestor()) { info.setAsserted(true); return null; } } } String userName = (String)message.getContextualProperty(SecurityConstants.USERNAME); if (!StringUtils.isEmpty(userName)) { WSSecUsernameToken utBuilder = new WSSecUsernameToken(wssConfig); String password = (String)message.getContextualProperty(SecurityConstants.PASSWORD); 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(saaj.getSOAPPart()); } else { policyNotAsserted(token, "No password available"); return null; } info.setAsserted(true); return utBuilder; } else { policyNotAsserted(token, "No username available"); return null; } }
Example 7
Source File: TransportBindingHandler.java From steady with Apache License 2.0 | 5 votes |
private void addSignedSupportingTokens(SupportingToken sgndSuppTokens) throws Exception { for (Token token : sgndSuppTokens.getTokens()) { if (token instanceof UsernameToken) { WSSecUsernameToken utBuilder = addUsernameToken((UsernameToken)token); if (utBuilder != null) { utBuilder.prepare(saaj.getSOAPPart()); utBuilder.appendToHeader(secHeader); } } else if (token instanceof IssuedToken || token instanceof KerberosToken) { SecurityToken secTok = getSecurityToken(); if (includeToken(token.getInclusion())) { //Add the token addEncryptedKeyElement(cloneElement(secTok.getToken())); } } else if (token instanceof SamlToken) { AssertionWrapper assertionWrapper = addSamlToken((SamlToken)token); if (assertionWrapper != null) { addSupportingElement(assertionWrapper.toDOM(saaj.getSOAPPart())); } } else { //REVISIT - not supported for signed. Exception? } } }
Example 8
Source File: AbstractBindingBuilder.java From steady with Apache License 2.0 | 5 votes |
protected WSSecUsernameToken addDKUsernameToken(UsernameToken token, boolean useMac) { AssertionInfo info = null; Collection<AssertionInfo> ais = aim.getAssertionInfo(token.getName()); for (AssertionInfo ai : ais) { if (ai.getAssertion() == token) { info = ai; if (!isRequestor()) { info.setAsserted(true); return null; } } } String userName = (String)message.getContextualProperty(SecurityConstants.USERNAME); if (!StringUtils.isEmpty(userName)) { WSSecUsernameToken utBuilder = new WSSecUsernameToken(wssConfig); String password = (String)message.getContextualProperty(SecurityConstants.PASSWORD); 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(saaj.getSOAPPart()); } else { policyNotAsserted(token, "No password available"); return null; } info.setAsserted(true); return utBuilder; } else { policyNotAsserted(token, "No username available"); return null; } }
Example 9
Source File: TransportBindingHandler.java From steady with Apache License 2.0 | 5 votes |
private void addSignedSupportingTokens(SupportingToken sgndSuppTokens) throws Exception { for (Token token : sgndSuppTokens.getTokens()) { if (token instanceof UsernameToken) { WSSecUsernameToken utBuilder = addUsernameToken((UsernameToken)token); if (utBuilder != null) { utBuilder.prepare(saaj.getSOAPPart()); utBuilder.appendToHeader(secHeader); } } else if (token instanceof IssuedToken || token instanceof KerberosToken) { SecurityToken secTok = getSecurityToken(); if (includeToken(token.getInclusion())) { //Add the token addEncryptedKeyElement(cloneElement(secTok.getToken())); } } else if (token instanceof SamlToken) { AssertionWrapper assertionWrapper = addSamlToken((SamlToken)token); if (assertionWrapper != null) { addSupportingElement(assertionWrapper.toDOM(saaj.getSOAPPart())); } } else { //REVISIT - not supported for signed. Exception? } } }
Example 10
Source File: AbstractBindingBuilder.java From steady with Apache License 2.0 | 5 votes |
protected WSSecUsernameToken addDKUsernameToken(UsernameToken token, boolean useMac) { AssertionInfo info = null; Collection<AssertionInfo> ais = aim.getAssertionInfo(token.getName()); for (AssertionInfo ai : ais) { if (ai.getAssertion() == token) { info = ai; if (!isRequestor()) { info.setAsserted(true); return null; } } } String userName = (String)message.getContextualProperty(SecurityConstants.USERNAME); if (!StringUtils.isEmpty(userName)) { WSSecUsernameToken utBuilder = new WSSecUsernameToken(wssConfig); String password = (String)message.getContextualProperty(SecurityConstants.PASSWORD); 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(saaj.getSOAPPart()); } else { policyNotAsserted(token, "No password available"); return null; } info.setAsserted(true); return utBuilder; } else { policyNotAsserted(token, "No username available"); return null; } }
Example 11
Source File: TransportBindingHandler.java From steady with Apache License 2.0 | 5 votes |
private void addSignedSupportingTokens(SupportingToken sgndSuppTokens) throws Exception { for (Token token : sgndSuppTokens.getTokens()) { if (token instanceof UsernameToken) { WSSecUsernameToken utBuilder = addUsernameToken((UsernameToken)token); if (utBuilder != null) { utBuilder.prepare(saaj.getSOAPPart()); utBuilder.appendToHeader(secHeader); } } else if (token instanceof IssuedToken || token instanceof KerberosToken) { SecurityToken secTok = getSecurityToken(); if (includeToken(token.getInclusion())) { //Add the token addEncryptedKeyElement(cloneElement(secTok.getToken())); } } else if (token instanceof SamlToken) { AssertionWrapper assertionWrapper = addSamlToken((SamlToken)token); if (assertionWrapper != null) { addSupportingElement(assertionWrapper.toDOM(saaj.getSOAPPart())); } } else { //REVISIT - not supported for signed. Exception? } } }
Example 12
Source File: AbstractBindingBuilder.java From steady with Apache License 2.0 | 5 votes |
protected WSSecUsernameToken addDKUsernameToken(UsernameToken token, boolean useMac) { AssertionInfo info = null; Collection<AssertionInfo> ais = aim.getAssertionInfo(token.getName()); for (AssertionInfo ai : ais) { if (ai.getAssertion() == token) { info = ai; if (!isRequestor()) { info.setAsserted(true); return null; } } } String userName = (String)message.getContextualProperty(SecurityConstants.USERNAME); if (!StringUtils.isEmpty(userName)) { WSSecUsernameToken utBuilder = new WSSecUsernameToken(wssConfig); String password = (String)message.getContextualProperty(SecurityConstants.PASSWORD); 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(saaj.getSOAPPart()); } else { policyNotAsserted(token, "No password available"); return null; } info.setAsserted(true); return utBuilder; } else { policyNotAsserted(token, "No username available"); return null; } }
Example 13
Source File: SoapWrapper.java From iaf with Apache License 2.0 | 4 votes |
public String signMessage(String soapMessage, String user, String password, boolean passwordDigest) { try { WSSecurityEngine secEngine = WSSecurityEngine.getInstance(); WSSConfig config = secEngine.getWssConfig(); config.setPrecisionInMilliSeconds(false); // create context AxisClient tmpEngine = new AxisClient(new NullProvider()); MessageContext msgContext = new MessageContext(tmpEngine); InputStream in = new ByteArrayInputStream(soapMessage.getBytes(StreamUtil.DEFAULT_INPUT_STREAM_ENCODING)); Message msg = new Message(in); msg.setMessageContext(msgContext); // create unsigned envelope SOAPEnvelope unsignedEnvelope = msg.getSOAPEnvelope(); Document doc = unsignedEnvelope.getAsDocument(); // create security header and insert it into unsigned envelope WSSecHeader secHeader = new WSSecHeader(); secHeader.insertSecurityHeader(doc); // add a UsernameToken WSSecUsernameToken tokenBuilder = new WSSecUsernameToken(); if (passwordDigest) { tokenBuilder.setPasswordType(WSConstants.PASSWORD_DIGEST); } else { tokenBuilder.setPasswordType(WSConstants.PASSWORD_TEXT); } tokenBuilder.setUserInfo(user, password); tokenBuilder.addNonce(); tokenBuilder.addCreated(); tokenBuilder.prepare(doc); WSSecSignature sign = new WSSecSignature(); sign.setUsernameToken(tokenBuilder); sign.setKeyIdentifierType(WSConstants.UT_SIGNING); sign.setSignatureAlgorithm(XMLSignature.ALGO_ID_MAC_HMAC_SHA1); sign.build(doc, null, secHeader); tokenBuilder.prependToHeader(secHeader); // add a Timestamp WSSecTimestamp timestampBuilder = new WSSecTimestamp(); timestampBuilder.setTimeToLive(300); timestampBuilder.prepare(doc); timestampBuilder.prependToHeader(secHeader); Document signedDoc = doc; return DOM2Writer.nodeToString(signedDoc); } catch (Exception e) { throw new RuntimeException("Could not sign message", e); } }