[jboss-svn-commits] JBL Code SVN: r21595 - in labs/jbossesb/workspace/dbevenius/security/product/rosetta/src/org/jboss/soa/esb: services/security and 3 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Mon Aug 18 03:42:43 EDT 2008


Author: beve
Date: 2008-08-18 03:42:43 -0400 (Mon, 18 Aug 2008)
New Revision: 21595

Modified:
   labs/jbossesb/workspace/dbevenius/security/product/rosetta/src/org/jboss/soa/esb/listeners/message/ActionProcessingPipeline.java
   labs/jbossesb/workspace/dbevenius/security/product/rosetta/src/org/jboss/soa/esb/services/security/SecurityContext.java
   labs/jbossesb/workspace/dbevenius/security/product/rosetta/src/org/jboss/soa/esb/services/security/actions/JBossSecurityPropagator.java
   labs/jbossesb/workspace/dbevenius/security/product/rosetta/src/org/jboss/soa/esb/services/security/auth/SecurityInfoExtractor.java
   labs/jbossesb/workspace/dbevenius/security/product/rosetta/src/org/jboss/soa/esb/services/security/auth/ws/BinarySecurityToken.java
   labs/jbossesb/workspace/dbevenius/security/product/rosetta/src/org/jboss/soa/esb/services/security/auth/ws/WSSecurityInfoExtractor.java
Log:
Minor updates


Modified: labs/jbossesb/workspace/dbevenius/security/product/rosetta/src/org/jboss/soa/esb/listeners/message/ActionProcessingPipeline.java
===================================================================
--- labs/jbossesb/workspace/dbevenius/security/product/rosetta/src/org/jboss/soa/esb/listeners/message/ActionProcessingPipeline.java	2008-08-18 07:27:55 UTC (rev 21594)
+++ labs/jbossesb/workspace/dbevenius/security/product/rosetta/src/org/jboss/soa/esb/listeners/message/ActionProcessingPipeline.java	2008-08-18 07:42:43 UTC (rev 21595)
@@ -355,7 +355,7 @@
 		 *  might represent an id or a SSO Token that can be used for authentication.
 		 *  If a SubjectContext does not exist then create one to drive the authentication.
 		 */
-		SecurityContext securityContext = (SecurityContext) message.getProperties().getProperty( SecurityService.CONTEXT );
+		SecurityContext securityContext = SecurityContext.getContext(message);
 		LOGGER.debug("Security Context before authentication : " + securityContext);
 		
 		if ( securityContext == null )

Modified: labs/jbossesb/workspace/dbevenius/security/product/rosetta/src/org/jboss/soa/esb/services/security/SecurityContext.java
===================================================================
--- labs/jbossesb/workspace/dbevenius/security/product/rosetta/src/org/jboss/soa/esb/services/security/SecurityContext.java	2008-08-18 07:27:55 UTC (rev 21594)
+++ labs/jbossesb/workspace/dbevenius/security/product/rosetta/src/org/jboss/soa/esb/services/security/SecurityContext.java	2008-08-18 07:42:43 UTC (rev 21595)
@@ -30,6 +30,8 @@
 
 import javax.security.auth.Subject;
 
+import org.jboss.soa.esb.message.Message;
+
 /**
  * Security Context contains security related information that 
  * is not sensitive.
@@ -43,7 +45,7 @@
  * @since 4.4
  *
  */
-public class SecurityContext implements Serializable
+public final class SecurityContext implements Serializable
 {
 	private static final long serialVersionUID = 1L;
 	
@@ -99,4 +101,14 @@
 		return subject.getPrincipals();
 	}
 	
+	/**
+	 * Will retrieve the SecurityContext from the passed in Message.
+	 * @param message - the message from which the SecurityContext should be retreieved
+	 * @return SecuirtyContext - the currently set SecurityContext or null if none has been set.
+	 */
+	public static SecurityContext getContext( final Message message )
+	{
+		return (SecurityContext) message.getProperties().getProperty( SecurityService.CONTEXT );
+	}
+	
 }

Modified: labs/jbossesb/workspace/dbevenius/security/product/rosetta/src/org/jboss/soa/esb/services/security/actions/JBossSecurityPropagator.java
===================================================================
--- labs/jbossesb/workspace/dbevenius/security/product/rosetta/src/org/jboss/soa/esb/services/security/actions/JBossSecurityPropagator.java	2008-08-18 07:27:55 UTC (rev 21594)
+++ labs/jbossesb/workspace/dbevenius/security/product/rosetta/src/org/jboss/soa/esb/services/security/actions/JBossSecurityPropagator.java	2008-08-18 07:42:43 UTC (rev 21595)
@@ -38,6 +38,13 @@
  * This action can be placed before an action that calls out the a 
  * JBossAS instance, for example an EJB call.
  * 
+ * Example config:
+ * <pre>{@code
+ * <action name="propagate" class="org.jboss.soa.esb.services.security.actions.JBossSecurityPropagator">
+ *  <property name="runAs" value="adminRole"/>
+ *   </action>
+ * }</pre>
+ * 
  * @author <a href="mailto:dbevenius at redhat.com">Daniel Bevenius</a>
  *
  */

Modified: labs/jbossesb/workspace/dbevenius/security/product/rosetta/src/org/jboss/soa/esb/services/security/auth/SecurityInfoExtractor.java
===================================================================
--- labs/jbossesb/workspace/dbevenius/security/product/rosetta/src/org/jboss/soa/esb/services/security/auth/SecurityInfoExtractor.java	2008-08-18 07:27:55 UTC (rev 21594)
+++ labs/jbossesb/workspace/dbevenius/security/product/rosetta/src/org/jboss/soa/esb/services/security/auth/SecurityInfoExtractor.java	2008-08-18 07:42:43 UTC (rev 21595)
@@ -30,5 +30,12 @@
  */
 public interface SecurityInfoExtractor<T>
 {
+	/**
+	 * Extracts security related information from type T and
+	 * populates a {@link AuthenticationRequest}.
+	 * 
+	 * @param t - the type from which security information is to be extracted
+	 * @return - and instance of {@link AuthenticationRequest}
+	 */
 	AuthenticationRequest extractSecurityInfo( final T t );
 }
\ No newline at end of file

Modified: labs/jbossesb/workspace/dbevenius/security/product/rosetta/src/org/jboss/soa/esb/services/security/auth/ws/BinarySecurityToken.java
===================================================================
--- labs/jbossesb/workspace/dbevenius/security/product/rosetta/src/org/jboss/soa/esb/services/security/auth/ws/BinarySecurityToken.java	2008-08-18 07:27:55 UTC (rev 21594)
+++ labs/jbossesb/workspace/dbevenius/security/product/rosetta/src/org/jboss/soa/esb/services/security/auth/ws/BinarySecurityToken.java	2008-08-18 07:42:43 UTC (rev 21595)
@@ -40,6 +40,7 @@
 	private String encodingType;
 	private String valueType;
 	private Certificate cert;
+	private enum EncodingType { Base64Binary, HexBinary }
 	
 	public String getEncodingType()
 	{
@@ -66,8 +67,6 @@
 		return cert;
 	}
 	
-	private enum EncodingType { Base64Binary, HexBinary }
-	
 	public void setKey(final String key)
 	{
 		try

Modified: labs/jbossesb/workspace/dbevenius/security/product/rosetta/src/org/jboss/soa/esb/services/security/auth/ws/WSSecurityInfoExtractor.java
===================================================================
--- labs/jbossesb/workspace/dbevenius/security/product/rosetta/src/org/jboss/soa/esb/services/security/auth/ws/WSSecurityInfoExtractor.java	2008-08-18 07:27:55 UTC (rev 21594)
+++ labs/jbossesb/workspace/dbevenius/security/product/rosetta/src/org/jboss/soa/esb/services/security/auth/ws/WSSecurityInfoExtractor.java	2008-08-18 07:42:43 UTC (rev 21595)
@@ -37,25 +37,55 @@
 import org.xml.sax.SAXException;
 
 /**
+ * WSSecurityInfoExtractor extracts security related information from
+ * a SOAP security header. 
+ * </p>
+ * If the security element contains a 'UsernameToken' element this will be
+ * extraced into a principal with the username and a credential being the
+ * password represented as a character array.
  * 
+ * 
  * @author <a href="mailto:dbevenius at redhat.com">Daniel Bevenius</a>
  *
  */
 public class WSSecurityInfoExtractor implements SecurityInfoExtractor<String>
 {
+	/**
+	 * Smooks configuration file which specified the extraction
+	 */
 	private static final String SMOOK_CONFIG_FILE = "smooks-ws-security.xml";
+	/**
+	 * Smooks instance the will perform the extraction
+	 */
 	private Smooks smooks;
 	
+	/**
+	 * Creates an instance using the default Smooks config file.
+	 */
 	public WSSecurityInfoExtractor()
 	{
 		createSmooks( SMOOK_CONFIG_FILE );
 	}
 
+	/**
+	 * Creates an instance of Smooks using the passed in config file.  
+	 * 
+	 * @param configFile - the Smooks config file to use.
+	 */
 	public WSSecurityInfoExtractor(final String configFile)
 	{
 		createSmooks(configFile);
 	}
 	
+	/**
+	 * Extracts UsernameToken element is one exists and creates
+	 * a Principal with the username and sets a Credential using
+	 * the password. The type of the Credential is a character array.
+	 * If the SOAP message contains a BinarySecurityToken this will be
+	 * extracted and added as a Credential.
+	 * @param soap - the soap message represented as a String
+	 * @return {@link AuthenticationRequest}
+	 */
 	public AuthenticationRequest extractSecurityInfo(final String soap)
 	{
 		final JavaResult javaResult = new JavaResult();




More information about the jboss-svn-commits mailing list