[jboss-cvs] Picketlink SVN: r873 - in integration-tests/trunk: common-dist and 7 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Apr 11 20:56:52 EDT 2011


Author: anil.saldhana at jboss.com
Date: 2011-04-11 20:56:51 -0400 (Mon, 11 Apr 2011)
New Revision: 873

Added:
   integration-tests/trunk/common-dist/files/
   integration-tests/trunk/common-dist/files/jboss-log4j.xml
   integration-tests/trunk/picketlink-trust-tests/src/test/java/org/picketlink/test/trust/tests/POJOWSAuthorizationTestCase.java
   integration-tests/trunk/picketlink-trust-tests/src/test/java/org/picketlink/test/trust/ws/POJOBean.java
   integration-tests/trunk/picketlink-trust-tests/src/test/resources/authorize-handlers.xml
   integration-tests/trunk/picketlink-trust-tests/src/test/resources/log4j.xml
   integration-tests/trunk/picketlink-trust-tests/src/test/resources/webapp/
   integration-tests/trunk/picketlink-trust-tests/src/test/resources/webapp/WEB-INF/
   integration-tests/trunk/picketlink-trust-tests/src/test/resources/webapp/WEB-INF/jboss-web.xml
   integration-tests/trunk/picketlink-trust-tests/src/test/resources/webapp/WEB-INF/jboss-wsse.xml
   integration-tests/trunk/picketlink-trust-tests/src/test/resources/webapp/WEB-INF/web.xml
Modified:
   integration-tests/trunk/ant-scripts/ant-build.xml
   integration-tests/trunk/picketlink-trust-tests/pom.xml
   integration-tests/trunk/picketlink-trust-tests/src/test/java/org/picketlink/test/trust/ws/TestBean.java
Log:
PLFED-167: handlers for authentication, authz for POJO WS

Modified: integration-tests/trunk/ant-scripts/ant-build.xml
===================================================================
--- integration-tests/trunk/ant-scripts/ant-build.xml	2011-04-12 00:55:10 UTC (rev 872)
+++ integration-tests/trunk/ant-scripts/ant-build.xml	2011-04-12 00:56:51 UTC (rev 873)
@@ -77,6 +77,7 @@
         <param name="deploy" value="${JBAS5_DEPLOY}"/>
         <param name="jbossas" value="${basedir}/target/jboss-5.1.0.GA"/>
     </antcall>
+    <copy file="${basedir}/../common-dist/files/jboss-log4j.xml" todir="${JBAS5_DEPLOY}/../conf"/>
     
     <!--
     <mkdir dir="${JBAS5_DEPLOY}/picketlink" />
@@ -109,6 +110,7 @@
   <target name="copy-trust-settings-jbas5">
    <copy file="${basedir}/../picketlink-trust-tests/src/test/resources/domains/sts-jboss-beans.xml" todir="${JBAS5_DEPLOY}/picketlink" />
    <copy file="${basedir}/../picketlink-trust-tests/target/picketlink-wstest-tests.jar" todir="${JBAS5_DEPLOY}/picketlink" />
+   <copy file="${basedir}/../picketlink-trust-tests/target/pojo-test.war" todir="${JBAS5_DEPLOY}/picketlink" />
    <copy file="${basedir}/../picketlink-trust-tests/src/test/resources/props/sts-users.properties" todir="${JBAS5_DEPLOY}/../conf" />
    <copy file="${basedir}/../picketlink-trust-tests/src/test/resources/props/sts-roles.properties" todir="${JBAS5_DEPLOY}/../conf" />
     <copy file="${localRepository}/org/picketlink/picketlink-trust-jbossws/${version}/picketlink-trust-jbossws-${version}.jar" todir="${JBAS5_DEPLOY}/picketlink"/>

Added: integration-tests/trunk/common-dist/files/jboss-log4j.xml
===================================================================
--- integration-tests/trunk/common-dist/files/jboss-log4j.xml	                        (rev 0)
+++ integration-tests/trunk/common-dist/files/jboss-log4j.xml	2011-04-12 00:56:51 UTC (rev 873)
@@ -0,0 +1,390 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
+
+<!-- ===================================================================== -->
+<!--                                                                       -->
+<!--  Log4j Configuration                                                  -->
+<!--                                                                       -->
+<!-- ===================================================================== -->
+
+<!-- $Id: jboss-log4j.xml 87678 2009-04-22 16:47:08Z bstansberry at jboss.com $ -->
+
+<!--
+   | For more configuration information and examples see the Jakarta Log4j
+   | owebsite: http://jakarta.apache.org/log4j
+ -->
+
+<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">
+
+   <!-- ================================= -->
+   <!-- Preserve messages in a local file -->
+   <!-- ================================= -->
+
+   <!-- A time/date based rolling appender -->
+   <appender name="FILE" class="org.jboss.logging.appender.DailyRollingFileAppender">
+      <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+      <param name="File" value="${jboss.server.log.dir}/server.log"/>
+      <param name="Append" value="true"/>
+      <!-- In AS 5.0.x the server log threshold was set by a system
+           property. In 5.1 and later we are instead using the system
+           property to set the priority on the root logger (see <root/> below)
+      <param name="Threshold" value="${jboss.server.log.threshold}"/>
+      -->
+      
+      <!-- Rollover at midnight each day -->
+      <param name="DatePattern" value="'.'yyyy-MM-dd"/>
+
+      <!-- Rollover at the top of each hour
+      <param name="DatePattern" value="'.'yyyy-MM-dd-HH"/>
+      -->
+
+      <layout class="org.apache.log4j.PatternLayout">
+         <!-- The default pattern: Date Priority [Category] (Thread) Message\n -->
+         <param name="ConversionPattern" value="%d %-5p [%c] (%t) %m%n"/>
+
+         <!-- The full pattern: Date MS Priority [Category] (Thread:NDC) Message\n
+         <param name="ConversionPattern" value="%d %-5r %-5p [%c] (%t:%x) %m%n"/>
+          -->
+      </layout>
+   </appender>
+
+   <!-- A size based file rolling appender
+   <appender name="FILE" class="org.jboss.logging.appender.RollingFileAppender">
+     <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+     <param name="File" value="${jboss.server.log.dir}/server.log"/>
+     <param name="Append" value="false"/>
+     <param name="MaxFileSize" value="500KB"/>
+     <param name="MaxBackupIndex" value="1"/>
+
+     <layout class="org.apache.log4j.PatternLayout">
+       <param name="ConversionPattern" value="%d %-5p [%c] %m%n"/>
+     </layout>	    
+   </appender>
+   -->
+
+   <!-- ============================== -->
+   <!-- Append messages to the console -->
+   <!-- ============================== -->
+
+   <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
+      <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+      <param name="Target" value="System.out"/>
+      <param name="Threshold" value="INFO"/>
+
+      <layout class="org.apache.log4j.PatternLayout">
+         <!-- The default pattern: Date Priority [Category] Message\n -->
+         <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c{1}] %m%n"/>
+      </layout>
+   </appender>
+
+   <!-- ====================== -->
+   <!-- More Appender examples -->
+   <!-- ====================== -->
+
+   <!-- Buffer events and log them asynchronously
+   <appender name="ASYNC" class="org.apache.log4j.AsyncAppender">
+     <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+     <appender-ref ref="FILE"/>
+     <appender-ref ref="CONSOLE"/>
+     <appender-ref ref="SMTP"/>
+   </appender>
+   -->
+
+   <!-- EMail events to an administrator
+   <appender name="SMTP" class="org.apache.log4j.net.SMTPAppender">
+     <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+     <param name="Threshold" value="ERROR"/>
+     <param name="To" value="admin at myhost.domain.com"/>
+     <param name="From" value="nobody at myhost.domain.com"/>
+     <param name="Subject" value="JBoss Sever Errors"/>
+     <param name="SMTPHost" value="localhost"/>
+     <param name="BufferSize" value="10"/>
+     <layout class="org.apache.log4j.PatternLayout">
+       <param name="ConversionPattern" value="[%d{ABSOLUTE},%c{1}] %m%n"/>
+     </layout>
+   </appender>
+   -->
+
+   <!-- Syslog events
+   <appender name="SYSLOG" class="org.apache.log4j.net.SyslogAppender">
+     <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+     <param name="Facility" value="LOCAL7"/>
+     <param name="FacilityPrinting" value="true"/>
+     <param name="SyslogHost" value="localhost"/>
+     <layout class="org.apache.log4j.PatternLayout">
+       <param name="ConversionPattern" value="[%d{ABSOLUTE},%c{1}] %m%n"/>
+     </layout>
+   </appender>
+   -->
+
+   <!-- Log events to JMS (requires a topic to be created)
+   <appender name="JMS" class="org.apache.log4j.net.JMSAppender">
+     <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+     <param name="Threshold" value="ERROR"/>
+     <param name="TopicConnectionFactoryBindingName" value="java:/ConnectionFactory"/>
+     <param name="TopicBindingName" value="topic/MyErrorsTopic"/>
+   </appender>
+   -->
+
+   <!-- Log events through SNMP
+   <appender name="TRAP_LOG" class="org.apache.log4j.ext.SNMPTrapAppender">
+     <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+     <param name="ImplementationClassName" value="org.apache.log4j.ext.JoeSNMPTrapSender"/>
+     <param name="ManagementHost" value="127.0.0.1"/>
+     <param name="ManagementHostTrapListenPort" value="162"/>
+     <param name="EnterpriseOID" value="1.3.6.1.4.1.24.0"/>
+     <param name="LocalIPAddress" value="127.0.0.1"/>
+     <param name="LocalTrapSendPort" value="161"/>
+     <param name="GenericTrapType" value="6"/>
+     <param name="SpecificTrapType" value="12345678"/>
+     <param name="CommunityString" value="public"/>
+     <param name="ForwardStackTraceWithTrap" value="true"/>
+     <param name="Threshold" value="DEBUG"/>
+     <param name="ApplicationTrapOID" value="1.3.6.1.4.1.24.12.10.22.64"/>
+     <layout class="org.apache.log4j.PatternLayout">
+            <param name="ConversionPattern" value="%d,%p,[%t],[%c],%m%n"/>
+     </layout>
+   </appender>
+   -->
+
+   <!--  Emit events as JMX notifications
+   <appender name="JMX" class="org.jboss.monitor.services.JMXNotificationAppender">
+      <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+      
+      <param name="Threshold" value="WARN"/>
+      <param name="ObjectName" value="jboss.system:service=Logging,type=JMXNotificationAppender"/>
+      
+      <layout class="org.apache.log4j.PatternLayout">
+         <param name="ConversionPattern" value="%d %-5p [%c] %m"/>
+      </layout>
+   </appender>
+   -->
+
+   <!-- Security AUDIT Appender
+   <appender name="AUDIT" class="org.jboss.logging.appender.DailyRollingFileAppender">
+      <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+      <param name="File" value="${jboss.server.log.dir}/audit.log"/>
+      <param name="Append" value="true"/>
+      <param name="DatePattern" value="'.'yyyy-MM-dd"/>
+      <layout class="org.apache.log4j.PatternLayout">
+         <param name="ConversionPattern" value="%d %-5p [%c] (%t:%x) %m%n"/>
+      </layout>
+   </appender>
+   -->
+   
+   <!-- ================ -->
+   <!-- Limit categories -->
+   <!-- ================ -->
+
+   <!-- Limit the org.apache category to INFO as its DEBUG is verbose -->
+   <category name="org.apache">
+      <priority value="INFO"/>
+   </category>
+   
+   <!-- Limit the jacorb category to WARN as its INFO is verbose -->
+   <category name="jacorb">
+      <priority value="WARN"/>
+   </category>
+   
+   <!-- Set the logging level of the JSF implementation that uses
+      | java.util.logging. The jdk logging levels can be controlled
+      | through the org.jboss.logging.log4j.JDKLevel class that
+      | in addition to the standard log4j levels it adds support for
+      | SEVERE, WARNING, CONFIG, FINE, FINER, FINEST
+   -->
+   <category name="javax.enterprise.resource.webcontainer.jsf">
+     <priority value="INFO" class="org.jboss.logging.log4j.JDKLevel"/>
+   </category>
+   
+   <!-- Limit the org.jgroups category to WARN as its INFO is verbose -->
+   <category name="org.jgroups">
+      <priority value="WARN"/>
+   </category>
+   
+   <!-- Limit the org.quartz category to INFO as its DEBUG is verbose -->
+   <category name="org.quartz">
+      <priority value="INFO"/>
+   </category>
+   
+   <!-- Limit the com.sun category to INFO as its FINE is verbose -->
+   <category name="com.sun">
+      <priority value="INFO"/>
+   </category>
+   
+   <!-- Limit the sun category to INFO as its FINE is verbose -->
+   <category name="sun">
+      <priority value="INFO"/>
+   </category>
+   
+   <!-- Limit the javax.xml.bind category to INFO as its FINE is verbose -->
+   <category name="javax.xml.bind">
+      <priority value="INFO"/>
+   </category>
+   
+   <!-- Limit JBoss categories
+   <category name="org.jboss">
+      <priority value="INFO"/>
+   </category>
+   -->
+
+   <!-- Limit the JSR77 categories -->
+   <category name="org.jboss.management">
+      <priority value="INFO"/>
+   </category>
+
+   <!-- Limit the verbose facelets compiler -->
+   <category name="facelets.compiler">
+      <priority value="WARN"/>
+   </category>
+   
+   <!-- Limit the verbose ajax4jsf cache initialization -->
+   <category name="org.ajax4jsf.cache">
+      <priority value="WARN"/>
+   </category>
+   
+   <!-- Limit the verbose embedded jopr categories -->
+   <category name="org.rhq">
+      <priority value="WARN"/>
+   </category>
+   
+   <!-- Limit the verbose seam categories -->
+   <category name="org.jboss.seam">
+      <priority value="WARN"/>
+   </category>
+   
+   <!-- Show the evolution of the DataSource pool in the logs [inUse/Available/Max]
+   <category name="org.jboss.resource.connectionmanager.JBossManagedConnectionPool">
+     <priority value="TRACE"/>
+   </category>
+   -->
+   <category name="org.picketlink">
+     <priority value="TRACE"/>
+   </category>
+
+   <category name="org.jboss.security">
+     <priority value="TRACE"/>
+   </category>
+
+   <category name="org.jboss.ws">
+     <priority value="TRACE"/>
+   </category>
+   <category name="org.apache">
+     <priority value="TRACE"/>
+   </category>
+
+   <!-- Category specifically for Security Audit Provider 
+   <category name="org.jboss.security.audit.providers.LogAuditProvider" additivity="false">
+     <priority value="TRACE"/>
+     <appender-ref ref="AUDIT"/>
+   </category>
+   -->
+   
+   <!-- Limit the org.jboss.serial (jboss-serialization) to INFO as its DEBUG is verbose -->
+   <category name="org.jboss.serial">
+      <priority value="INFO"/>
+   </category>
+  
+   <!-- Decrease the priority threshold for the org.jboss.varia category
+   <category name="org.jboss.varia">
+     <priority value="DEBUG"/>
+   </category>
+   -->
+   
+   <!-- Enable JBossWS message tracing
+   <category name="org.jboss.ws.core.MessageTrace">
+     <priority value="TRACE"/>
+   </category>
+   -->
+   
+   <!--
+      | An example of enabling the custom TRACE level priority that is used
+      | by the JBoss internals to diagnose low level details. This example
+      | turns on TRACE level msgs for the org.jboss.ejb.plugins package and its
+      | subpackages. This will produce A LOT of logging output.
+      |
+      | Note: since jboss AS 4.2.x, the trace level is supported natively by
+      | log4j, so although the custom org.jboss.logging.XLevel priority will
+      | still work, there is no need to use it. The two examples that follow
+      | will both enable trace logging.
+   <category name="org.jboss.system">
+     <priority value="TRACE" class="org.jboss.logging.XLevel"/>
+   </category>
+   <category name="org.jboss.ejb.plugins">
+     <priority value="TRACE"/>
+   </category>
+   -->
+  
+   <!--
+       | Logs these events to SNMP:
+           - server starts/stops
+           - cluster evolution (node death/startup)
+           - When an EJB archive is deployed (and associated verified messages)
+           - When an EAR archive is deployed
+      	 
+   <category name="org.jboss.system.server.Server">
+     <priority value="INFO" />
+     <appender-ref ref="TRAP_LOG"/>
+   </category>
+  
+   <category name="org.jboss.ha.framework.interfaces.HAPartition.lifecycle">
+     <priority value="INFO" />
+     <appender-ref ref="TRAP_LOG"/>
+   </category>
+
+   <category name="org.jboss.deployment.MainDeployer">
+     <priority value="ERROR" />
+     <appender-ref ref="TRAP_LOG"/>
+   </category>
+   
+   <category name="org.jboss.ejb.EJBDeployer">
+     <priority value="INFO" />
+     <appender-ref ref="TRAP_LOG"/>
+   </category>
+   
+   <category name="org.jboss.deployment.EARDeployer">
+     <priority value="INFO" />
+     <appender-ref ref="TRAP_LOG"/>
+   </category>
+   -->
+
+   <!-- Clustering logging -->
+   <!-- Uncomment the following to redirect the org.jgroups and
+      org.jboss.ha categories to a cluster.log file.
+
+   <appender name="CLUSTER" class="org.jboss.logging.appender.RollingFileAppender">
+     <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+     <param name="File" value="${jboss.server.log.dir}/cluster.log"/>
+     <param name="Append" value="false"/>
+     <param name="MaxFileSize" value="500KB"/>
+     <param name="MaxBackupIndex" value="1"/>
+
+     <layout class="org.apache.log4j.PatternLayout">
+       <param name="ConversionPattern" value="%d %-5p [%c] %m%n"/>
+     </layout>
+   </appender>
+   <category name="org.jgroups">
+     <priority value="DEBUG" />
+     <appender-ref ref="CLUSTER"/>
+   </category>
+   <category name="org.jboss.ha">
+     <priority value="DEBUG" />
+     <appender-ref ref="CLUSTER"/>
+   </category>
+   -->
+   
+   <!-- ======================= -->
+   <!-- Setup the Root category -->
+   <!-- ======================= -->
+
+   <root>
+      <!-- 
+         Set the root logger priority via a system property. Note this is parsed by log4j,
+         so the full JBoss system property format is not supported; e.g.
+         setting a default via ${jboss.server.log.threshold:WARN} will not work.         
+       -->
+      <priority value="${jboss.server.log.threshold}"/>
+      <appender-ref ref="CONSOLE"/>
+      <appender-ref ref="FILE"/>
+   </root>
+
+</log4j:configuration>

Modified: integration-tests/trunk/picketlink-trust-tests/pom.xml
===================================================================
--- integration-tests/trunk/picketlink-trust-tests/pom.xml	2011-04-12 00:55:10 UTC (rev 872)
+++ integration-tests/trunk/picketlink-trust-tests/pom.xml	2011-04-12 00:56:51 UTC (rev 873)
@@ -26,6 +26,36 @@
      
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-war-plugin</artifactId>
+        <version>2.1.1</version>
+        <executions>
+          <execution>
+            <phase>package</phase>
+            <goals>
+              <goal>war</goal>
+            </goals>
+          </execution>
+        </executions>
+        <configuration>
+            <warName>pojo-test</warName>
+            <packagingExcludes>WEB-INF/lib/*.jar</packagingExcludes>
+            <warSourceDirectory>src/test/resources/webapp</warSourceDirectory>
+            <webResources>
+              <resource>
+                <!-- this is relative to the pom.xml directory -->
+                <directory>target/test-classes</directory>
+                <targetPath>WEB-INF/classes</targetPath> 
+                <includes>
+                  <include>**/POJOBean*</include>
+                  <include>**/auth*</include>
+                 </includes>
+              </resource>
+            </webResources>
+         </configuration>
+      </plugin>
+      
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-jar-plugin</artifactId> 
         <executions>
           <execution>
@@ -38,12 +68,14 @@
         <configuration>
           <finalName>picketlink-wstest</finalName>
           <excludes>
+            <exclude>**/WEB-INF/**</exclude>
             <exclude>**/*jboss-beans.xml</exclude>
             <exclude>**/*TestCase*</exclude>
+            <exclude>**/POJO*</exclude>
+            <exclude>**/author*</exclude>
           </excludes>
         </configuration>
-      </plugin>
-      
+      </plugin>  
 
       <plugin>
           <artifactId>maven-surefire-plugin</artifactId>
@@ -94,7 +126,7 @@
       <dependency>
          <groupId>org.jboss.ws.native</groupId>
          <artifactId>jbossws-native-core</artifactId>
-         <version>3.4.1.GA</version>
+         <version>3.1.2.GA</version>
          <scope>test</scope>
          <exclusions>
            <exclusion>

Added: integration-tests/trunk/picketlink-trust-tests/src/test/java/org/picketlink/test/trust/tests/POJOWSAuthorizationTestCase.java
===================================================================
--- integration-tests/trunk/picketlink-trust-tests/src/test/java/org/picketlink/test/trust/tests/POJOWSAuthorizationTestCase.java	                        (rev 0)
+++ integration-tests/trunk/picketlink-trust-tests/src/test/java/org/picketlink/test/trust/tests/POJOWSAuthorizationTestCase.java	2011-04-12 00:56:51 UTC (rev 873)
@@ -0,0 +1,85 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors. 
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.picketlink.test.trust.tests;
+
+import java.net.URL;
+import java.util.List;
+
+import javax.xml.namespace.QName;
+import javax.xml.ws.BindingProvider;
+import javax.xml.ws.Service;
+import javax.xml.ws.handler.Handler;
+
+import org.junit.Test;
+import org.picketlink.identity.federation.api.wstrust.WSTrustClient;
+import org.picketlink.identity.federation.api.wstrust.WSTrustClient.SecurityInfo;
+import org.picketlink.identity.federation.core.wstrust.WSTrustException;
+import org.picketlink.identity.federation.core.wstrust.plugins.saml.SAMLUtil;
+import org.picketlink.test.trust.ws.WSTest;
+import org.picketlink.trust.jbossws.SAML2Constants;
+import org.picketlink.trust.jbossws.handler.SAML2Handler;
+import org.w3c.dom.Element;
+
+/**
+ * A Simple WS Test for POJO WS Authorization using PicketLink
+ * @author Anil Saldhana
+ * @since Oct 3, 2010
+ */
+public class POJOWSAuthorizationTestCase
+{
+   private static String username = "UserA";
+   private static String password = "PassA";
+
+   @SuppressWarnings("rawtypes")
+   @Test
+   public void testWSInteraction() throws Exception 
+   {
+      // Step 1:  Get a SAML2 Assertion Token from the STS
+      WSTrustClient client = new WSTrustClient("PicketLinkSTS", "PicketLinkSTSPort",
+            "http://localhost:8080/picketlink-sts/PicketLinkSTS",
+            new SecurityInfo(username, password));
+      Element assertion = null;
+      try {
+         System.out.println("Invoking token service to get SAML assertion for " + username);
+         assertion = client.issueToken(SAMLUtil.SAML2_TOKEN_TYPE);
+         System.out.println("SAML assertion for " + username + " successfully obtained!");
+      } catch (WSTrustException wse) {
+         System.out.println("Unable to issue assertion: " + wse.getMessage());
+         wse.printStackTrace();
+         System.exit(1);
+      }
+
+      // Step 2: Stuff the Assertion on the SOAP message context and add the SAML2Handler to client side handlers
+      URL wsdl = new URL("http://localhost:8080/pojo-test/POJOBeanService?wsdl");
+      QName serviceName = new QName("http://ws.trust.test.picketlink.org/", "POJOBeanService");
+      Service service = Service.create(wsdl, serviceName);
+      WSTest port = service.getPort(new QName("http://ws.trust.test.picketlink.org/", "POJOBeanPort"), WSTest.class);
+      BindingProvider bp = (BindingProvider)port;
+      bp.getRequestContext().put(SAML2Constants.SAML2_ASSERTION_PROPERTY, assertion);
+      List<Handler> handlers = bp.getBinding().getHandlerChain();
+      handlers.add(new SAML2Handler());
+      bp.getBinding().setHandlerChain(handlers); 
+
+      //Step 3: Access the WS. Exceptions will be thrown anyway.
+      port.echo("Test");
+   }
+}
\ No newline at end of file

Added: integration-tests/trunk/picketlink-trust-tests/src/test/java/org/picketlink/test/trust/ws/POJOBean.java
===================================================================
--- integration-tests/trunk/picketlink-trust-tests/src/test/java/org/picketlink/test/trust/ws/POJOBean.java	                        (rev 0)
+++ integration-tests/trunk/picketlink-trust-tests/src/test/java/org/picketlink/test/trust/ws/POJOBean.java	2011-04-12 00:56:51 UTC (rev 873)
@@ -0,0 +1,50 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors. 
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.picketlink.test.trust.ws;
+
+import javax.jws.HandlerChain;
+import javax.jws.WebMethod;
+import javax.jws.WebService;
+import javax.jws.soap.SOAPBinding;
+
+/**
+ * POJO that is exposed as WS
+ * @author Anil.Saldhana at redhat.com
+ * @since Apr 11, 2011
+ */
+ at WebService
+ at SOAPBinding(style = SOAPBinding.Style.RPC)
+ at HandlerChain(file="authorize-handlers.xml") 
+public class POJOBean
+{
+   @WebMethod
+   public void echo(String echo)
+   {
+      System.out.println(echo);
+   }
+
+   @WebMethod
+   public void echoUnchecked(String echo)
+   {
+      System.out.println(echo);
+   }
+}
\ No newline at end of file

Modified: integration-tests/trunk/picketlink-trust-tests/src/test/java/org/picketlink/test/trust/ws/TestBean.java
===================================================================
--- integration-tests/trunk/picketlink-trust-tests/src/test/java/org/picketlink/test/trust/ws/TestBean.java	2011-04-12 00:55:10 UTC (rev 872)
+++ integration-tests/trunk/picketlink-trust-tests/src/test/java/org/picketlink/test/trust/ws/TestBean.java	2011-04-12 00:56:51 UTC (rev 873)
@@ -29,6 +29,7 @@
 import javax.xml.ws.WebServiceContext;
 
 /**
+ * Just a Simple EJB3 bean exposed as WS
  * @author Anil.Saldhana at redhat.com
  * @since Apr 5, 2011
  */

Added: integration-tests/trunk/picketlink-trust-tests/src/test/resources/authorize-handlers.xml
===================================================================
--- integration-tests/trunk/picketlink-trust-tests/src/test/resources/authorize-handlers.xml	                        (rev 0)
+++ integration-tests/trunk/picketlink-trust-tests/src/test/resources/authorize-handlers.xml	2011-04-12 00:56:51 UTC (rev 873)
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+
+<handler-chains xmlns="http://java.sun.com/xml/ns/javaee"
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee javaee_web_services_1_2.xsd">
+
+  <handler-chain>
+  
+    
+    <handler>
+      <handler-name>WSAuthorizationHandler</handler-name>
+      <handler-class>org.picketlink.trust.jbossws.handler.WSAuthorizationHandler</handler-class>
+    </handler>
+    
+    <handler>
+      <handler-name>WSAuthenticationHandler</handler-name>
+      <handler-class>org.picketlink.trust.jbossws.handler.WSAuthenticationHandler</handler-class>
+    </handler>
+  
+    <handler>
+      <handler-name>SAML2Handler</handler-name>
+      <handler-class>org.picketlink.trust.jbossws.handler.SAML2Handler</handler-class>
+    </handler>
+    
+    
+  </handler-chain>
+
+
+</handler-chains>
\ No newline at end of file

Added: integration-tests/trunk/picketlink-trust-tests/src/test/resources/log4j.xml
===================================================================
--- integration-tests/trunk/picketlink-trust-tests/src/test/resources/log4j.xml	                        (rev 0)
+++ integration-tests/trunk/picketlink-trust-tests/src/test/resources/log4j.xml	2011-04-12 00:56:51 UTC (rev 873)
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
+
+<!-- ===================================================================== -->
+<!--                                                                       -->
+<!--  Log4j Configuration                                                  -->
+<!--                                                                       -->
+<!-- ===================================================================== -->
+
+<!-- $Id: log4j.xml 34717 2005-08-08 18:15:31Z adrian $ -->
+
+<!--
+   | For more configuration infromation and examples see the Jakarta Log4j
+   | owebsite: http://jakarta.apache.org/log4j
+ -->
+
+<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">
+
+  <!-- ================================= -->
+  <!-- Preserve messages in a local file -->
+  <!-- ================================= -->
+
+  <!-- A time/date based rolling appender -->
+  <appender name="FILE" class="org.apache.log4j.DailyRollingFileAppender">
+    <param name="File" value="${basedir}/target/test.log"/>
+    <param name="Append" value="true"/>
+
+    <!-- Rollover at midnight each day -->
+    <param name="DatePattern" value="'.'yyyy-MM-dd"/>
+
+    <!-- Rollover at the top of each hour
+    <param name="DatePattern" value="'.'yyyy-MM-dd-HH"/>
+    -->
+
+    <layout class="org.apache.log4j.PatternLayout">
+      <!-- The default pattern: Date Priority [Category] Message\n -->
+      <param name="ConversionPattern" value="%d %-5p [%c] %m%n"/>
+
+      <!-- The full pattern: Date MS Priority [Category] (Thread:NDC) Message\n
+      <param name="ConversionPattern" value="%d %-5r %-5p [%c] (%t:%x) %m%n"/>
+       -->
+    </layout>	    
+  </appender>
+
+  <!-- ============================== -->
+  <!-- Append messages to the console -->
+  <!-- ============================== -->
+
+  <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
+    <param name="Threshold" value="TRACE"/>
+    <param name="Target" value="System.out"/>
+
+    <layout class="org.apache.log4j.PatternLayout">
+      <!-- The default pattern: Date Priority [Category] Message\n -->
+      <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c{1}] %m%n"/>
+    </layout>
+  </appender>
+  <!-- ================ -->
+  <!-- Limit categories -->
+  <!-- ================ -->
+
+  <!-- Limit JBoss categories to INFO 
+  <category name="org.jboss">
+    <priority value="INFO" class="org.jboss.logging.XLevel"/>
+  </category>
+  -->
+
+  <category name="org.jboss">
+    <priority value="TRACE"/>
+  </category>
+  <category name="org.picketlink">
+    <priority value="TRACE"/>
+  </category>
+
+  <!-- ======================= -->
+  <!-- Setup the Root category -->
+  <!-- ======================= -->
+
+  <root>
+    <appender-ref ref="FILE"/>
+  </root>
+  
+</log4j:configuration>

Added: integration-tests/trunk/picketlink-trust-tests/src/test/resources/webapp/WEB-INF/jboss-web.xml
===================================================================
--- integration-tests/trunk/picketlink-trust-tests/src/test/resources/webapp/WEB-INF/jboss-web.xml	                        (rev 0)
+++ integration-tests/trunk/picketlink-trust-tests/src/test/resources/webapp/WEB-INF/jboss-web.xml	2011-04-12 00:56:51 UTC (rev 873)
@@ -0,0 +1,3 @@
+<jboss-web>
+  <security-domain>sts</security-domain>
+</jboss-web>
\ No newline at end of file

Added: integration-tests/trunk/picketlink-trust-tests/src/test/resources/webapp/WEB-INF/jboss-wsse.xml
===================================================================
--- integration-tests/trunk/picketlink-trust-tests/src/test/resources/webapp/WEB-INF/jboss-wsse.xml	                        (rev 0)
+++ integration-tests/trunk/picketlink-trust-tests/src/test/resources/webapp/WEB-INF/jboss-wsse.xml	2011-04-12 00:56:51 UTC (rev 873)
@@ -0,0 +1,26 @@
+<jboss-ws-security xmlns="http://www.jboss.com/ws-security/config"
+                   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+                   xsi:schemaLocation="http://www.jboss.com/ws-security/config
+                   http://www.jboss.com/ws-security/schema/jboss-ws-security_1_0.xsd">
+
+  <port name="POJOBeanPort">
+    <operation name="{http://ws.trust.test.picketlink.org/}echoUnchecked">
+      <config>
+        <authorize>
+          <unchecked/>
+        </authorize>
+      </config>    
+    </operation>
+    
+    <operation name="{http://ws.trust.test.picketlink.org/}echo">
+      <config>
+        <authorize>
+          <role>JBossAdmin</role>
+        </authorize>
+      </config>    
+    </operation>        
+  </port>
+
+
+   	
+</jboss-ws-security>
\ No newline at end of file

Added: integration-tests/trunk/picketlink-trust-tests/src/test/resources/webapp/WEB-INF/web.xml
===================================================================
--- integration-tests/trunk/picketlink-trust-tests/src/test/resources/webapp/WEB-INF/web.xml	                        (rev 0)
+++ integration-tests/trunk/picketlink-trust-tests/src/test/resources/webapp/WEB-INF/web.xml	2011-04-12 00:56:51 UTC (rev 873)
@@ -0,0 +1,15 @@
+<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
+	version="2.5">
+
+	<servlet>
+		<display-name>POJO Web Service</display-name>
+		<servlet-name>POJOBeanService</servlet-name>
+		<servlet-class>org.picketlink.test.trust.ws.POJOBean</servlet-class>
+		<load-on-startup>1</load-on-startup>
+	</servlet>
+	<servlet-mapping>
+		<servlet-name>POJOBeanService</servlet-name>
+		<url-pattern>/POJOBeanService</url-pattern>
+	</servlet-mapping>
+</web-app>
\ No newline at end of file



More information about the jboss-cvs-commits mailing list