
org.mule.extras.wssecurity.headers.WsSecurityHeadersSetter Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of mule-module-wssecurity Show documentation
Show all versions of mule-module-wssecurity Show documentation
Mule WS-Security uses Apache's WSS4J and XFire's WSS4JHandlers to secure WebServices using SOAP
The newest version!
/*
* $Id: WsSecurityHeadersSetter.java 10489 2008-01-23 17:53:38Z dfeist $
* --------------------------------------------------------------------------------------
* Copyright (c) MuleSource, Inc. All rights reserved. http://www.mulesource.com
*
* The software in this package is published under the terms of the CPAL v1.0
* license, a copy of which has been included with this distribution in the
* LICENSE.txt file.
*/
package org.mule.extras.wssecurity.headers;
import org.mule.api.MuleMessage;
import java.util.Properties;
import org.apache.ws.security.WSConstants;
import org.apache.ws.security.handler.WSHandlerConstants;
public class WsSecurityHeadersSetter
{
/**
* This method searches for ws-security properties in the message received and
* returns these properties
*
* @param message
* @return
*/
public Properties addSecurityHeaders(MuleMessage message)
{
Properties props = new Properties();
props.setProperty(WSHandlerConstants.ACTION, (String)message
.getProperty(WSHandlerConstants.ACTION));
String passwordType;
if (message.getProperty(WSConstants.PW_DIGEST) != null)
{
passwordType = WSConstants.PW_DIGEST;
}
else
{
passwordType = WSConstants.PW_TEXT;
}
props.setProperty(WSHandlerConstants.PASSWORD_TYPE, passwordType);
if (message.getProperty(WSHandlerConstants.USER) != null)
{
props.setProperty(WSHandlerConstants.USER, (String)message
.getProperty(WSHandlerConstants.USER));
}
if (message.getProperty(WSHandlerConstants.PW_CALLBACK_CLASS) != null)
{
props.setProperty(WSHandlerConstants.PW_CALLBACK_CLASS, (String)message
.getProperty(WSHandlerConstants.PW_CALLBACK_CLASS));
}
if (message.getProperty(WSHandlerConstants.PASSWORD_TYPE) != null)
{
props.setProperty(WSHandlerConstants.PASSWORD_TYPE, (String)message
.getProperty(WSHandlerConstants.PASSWORD_TYPE));
}
if (message.getProperty(WSHandlerConstants.PW_CALLBACK_REF) != null)
{
props.setProperty(WSHandlerConstants.PW_CALLBACK_REF, (String)message
.getProperty(WSHandlerConstants.PW_CALLBACK_REF));
}
if (message.getProperty(WSHandlerConstants.ACTOR) != null)
{
props.setProperty(WSHandlerConstants.ACTOR, (String)message
.getProperty(WSHandlerConstants.ACTOR));
}
if (message.getProperty(WSHandlerConstants.MUST_UNDERSTAND) != null)
{
props.setProperty(WSHandlerConstants.MUST_UNDERSTAND, (String)message
.getProperty(WSHandlerConstants.MUST_UNDERSTAND));
}
if (message.getProperty(WSHandlerConstants.NO_SECURITY) != null)
{
props.setProperty(WSHandlerConstants.NO_SECURITY, (String)message
.getProperty(WSHandlerConstants.NO_SECURITY));
}
if (message.getProperty(WSHandlerConstants.NO_SERIALIZATION) != null)
{
props.setProperty(WSHandlerConstants.NO_SERIALIZATION, (String)message
.getProperty(WSHandlerConstants.NO_SERIALIZATION));
}
if (message.getProperty(WSHandlerConstants.ROLE) != null)
{
props.setProperty(WSHandlerConstants.ROLE, (String)message
.getProperty(WSHandlerConstants.ROLE));
}
// if username token
if (message.getProperty(WSHandlerConstants.ACTION)
.equals(WSHandlerConstants.USERNAME_TOKEN))
{
if (message.getProperty(WSHandlerConstants.ADD_UT_ELEMENTS) != null)
{
props.setProperty(WSHandlerConstants.ADD_UT_ELEMENTS, (String)message
.getProperty(WSHandlerConstants.ADD_UT_ELEMENTS));
}
}
// if timestamp
if (message.getProperty(WSHandlerConstants.ACTION)
.equals(WSHandlerConstants.TIMESTAMP))
{
if (message.getProperty(WSHandlerConstants.TIMESTAMP_PRECISION) != null)
{
props.setProperty(WSHandlerConstants.TIMESTAMP_PRECISION, (String)message
.getProperty(WSHandlerConstants.TIMESTAMP_PRECISION));
}
if (message.getProperty(WSHandlerConstants.TIMESTAMP_STRICT) != null)
{
props.setProperty(WSHandlerConstants.TIMESTAMP_STRICT, (String)message
.getProperty(WSHandlerConstants.TIMESTAMP_STRICT));
}
if (message.getProperty(WSHandlerConstants.TTL_TIMESTAMP) != null)
{
props.setProperty(WSHandlerConstants.TTL_TIMESTAMP, (String)message
.getProperty(WSHandlerConstants.TTL_TIMESTAMP));
}
}
// if encrypted
if (message.getProperty(WSHandlerConstants.ACTION)
.equals(WSHandlerConstants.ENCRYPT))
{
if (message.getProperty(WSHandlerConstants.ENC_PROP_FILE) != null)
{
props.setProperty(WSHandlerConstants.ENC_PROP_FILE, (String)message
.getProperty(WSHandlerConstants.ENC_PROP_FILE));
}
if (message.getProperty(WSHandlerConstants.ENC_CALLBACK_CLASS) != null)
{
props.setProperty(WSHandlerConstants.ENC_CALLBACK_CLASS, (String)message
.getProperty(WSHandlerConstants.ENC_CALLBACK_CLASS));
}
if (message.getProperty(WSHandlerConstants.ENC_CALLBACK_REF) != null)
{
props.setProperty(WSHandlerConstants.ENC_CALLBACK_REF, (String)message
.getProperty(WSHandlerConstants.ENC_CALLBACK_REF));
}
if (message.getProperty(WSHandlerConstants.ENC_KEY_ID) != null)
{
props.setProperty(WSHandlerConstants.ENC_KEY_ID, (String)message
.getProperty(WSHandlerConstants.ENC_KEY_ID));
}
if (message.getProperty(WSHandlerConstants.ENC_KEY_NAME) != null)
{
props.setProperty(WSHandlerConstants.ENC_KEY_NAME, (String)message
.getProperty(WSHandlerConstants.ENC_KEY_NAME));
}
if (message.getProperty(WSHandlerConstants.ENC_KEY_TRANSPORT) != null)
{
props.setProperty(WSHandlerConstants.ENC_KEY_TRANSPORT, (String)message
.getProperty(WSHandlerConstants.ENC_KEY_TRANSPORT));
}
if (message.getProperty(WSHandlerConstants.ENC_SYM_ALGO) != null)
{
props.setProperty(WSHandlerConstants.ENC_SYM_ALGO, (String)message
.getProperty(WSHandlerConstants.ENC_SYM_ALGO));
}
if (message.getProperty(WSHandlerConstants.ENCRYPTION_PARTS) != null)
{
props.setProperty(WSHandlerConstants.ENCRYPTION_PARTS, (String)message
.getProperty(WSHandlerConstants.ENCRYPTION_PARTS));
}
if (message.getProperty(WSHandlerConstants.ENCRYPTION_USER) != null)
{
props.setProperty(WSHandlerConstants.ENCRYPTION_USER, (String)message
.getProperty(WSHandlerConstants.ENCRYPTION_USER));
}
if (message.getProperty(WSHandlerConstants.DEC_PROP_FILE) != null)
{
props.setProperty(WSHandlerConstants.DEC_PROP_FILE, (String)message
.getProperty(WSHandlerConstants.DEC_PROP_FILE));
}
}
// Saml
if (message.getProperty(WSHandlerConstants.SAML_PROP_FILE) != null)
{
props.setProperty(WSHandlerConstants.SAML_PROP_FILE, (String)message
.getProperty(WSHandlerConstants.SAML_PROP_FILE));
}
// if signed
if (message.getProperty(WSHandlerConstants.ACTION)
.equals(WSHandlerConstants.SIGNATURE)
|| message.getProperty(WSHandlerConstants.ACTION)
.equals(WSHandlerConstants.SAML_TOKEN_SIGNED))
{
if (message.getProperty(WSHandlerConstants.ENABLE_SIGNATURE_CONFIRMATION) != null)
{
props.setProperty(WSHandlerConstants.ENABLE_SIGNATURE_CONFIRMATION, (String)message
.getProperty(WSHandlerConstants.ENABLE_SIGNATURE_CONFIRMATION));
}
if (message.getProperty(WSHandlerConstants.SIG_KEY_ID) != null)
{
props.setProperty(WSHandlerConstants.SIG_KEY_ID, (String)message
.getProperty(WSHandlerConstants.SIG_KEY_ID));
}
if (message.getProperty(WSHandlerConstants.SIG_ALGO) != null)
{
props.setProperty(WSHandlerConstants.SIG_ALGO, (String)message
.getProperty(WSHandlerConstants.SIG_ALGO));
}
if (message.getProperty(WSHandlerConstants.SIG_CONF_DONE) != null)
{
props.setProperty(WSHandlerConstants.SIG_CONF_DONE, (String)message
.getProperty(WSHandlerConstants.SIG_CONF_DONE));
}
if (message.getProperty(WSHandlerConstants.SIG_PROP_FILE) != null)
{
props.setProperty(WSHandlerConstants.SIG_PROP_FILE, (String)message
.getProperty(WSHandlerConstants.SIG_PROP_FILE));
}
}
return props;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy