[picketlink-commits] Picketlink SVN: r460 - in federation/trunk/picketlink-fed-core/src/main/java/org/picketlink/identity/federation/core: parsers/wst and 1 other directories.

picketlink-commits at lists.jboss.org picketlink-commits at lists.jboss.org
Tue Oct 12 13:57:56 EDT 2010


Author: anil.saldhana at jboss.com
Date: 2010-10-12 13:57:55 -0400 (Tue, 12 Oct 2010)
New Revision: 460

Modified:
   federation/trunk/picketlink-fed-core/src/main/java/org/picketlink/identity/federation/core/parsers/util/StaxParserUtil.java
   federation/trunk/picketlink-fed-core/src/main/java/org/picketlink/identity/federation/core/parsers/wst/WSTRequestSecurityTokenParser.java
   federation/trunk/picketlink-fed-core/src/main/java/org/picketlink/identity/federation/core/wstrust/WSTrustConstants.java
Log:
PLFED-109: stax parsing for ws-trust

Modified: federation/trunk/picketlink-fed-core/src/main/java/org/picketlink/identity/federation/core/parsers/util/StaxParserUtil.java
===================================================================
--- federation/trunk/picketlink-fed-core/src/main/java/org/picketlink/identity/federation/core/parsers/util/StaxParserUtil.java	2010-10-12 17:49:08 UTC (rev 459)
+++ federation/trunk/picketlink-fed-core/src/main/java/org/picketlink/identity/federation/core/parsers/util/StaxParserUtil.java	2010-10-12 17:57:55 UTC (rev 460)
@@ -138,6 +138,16 @@
    }
    
    /**
+    * Return the name of the end element
+    * @param endElement
+    * @return
+    */
+   public static String getEndElementName( EndElement endElement )
+   {
+      return trim( endElement.getName().getLocalPart() );
+   }
+   
+   /**
     * Peek the next {@code StartElement }
     * @param xmlEventReader
     * @return

Modified: federation/trunk/picketlink-fed-core/src/main/java/org/picketlink/identity/federation/core/parsers/wst/WSTRequestSecurityTokenParser.java
===================================================================
--- federation/trunk/picketlink-fed-core/src/main/java/org/picketlink/identity/federation/core/parsers/wst/WSTRequestSecurityTokenParser.java	2010-10-12 17:49:08 UTC (rev 459)
+++ federation/trunk/picketlink-fed-core/src/main/java/org/picketlink/identity/federation/core/parsers/wst/WSTRequestSecurityTokenParser.java	2010-10-12 17:57:55 UTC (rev 460)
@@ -28,11 +28,14 @@
 import javax.xml.stream.XMLEventReader;
 import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.events.Attribute;
+import javax.xml.stream.events.EndElement;
 import javax.xml.stream.events.StartElement;
+import javax.xml.stream.events.XMLEvent;
 
 import org.picketlink.identity.federation.core.exceptions.ParsingException;
 import org.picketlink.identity.federation.core.parsers.ParserNamespaceSupport;
 import org.picketlink.identity.federation.core.parsers.util.StaxParserUtil;
+import org.picketlink.identity.federation.core.wstrust.WSTrustConstants;
 import org.picketlink.identity.federation.core.wstrust.wrappers.RequestSecurityToken;
 
 /**
@@ -63,13 +66,11 @@
       String contextValue = StaxParserUtil.getAttributeValue( contextAttribute );
       requestToken.setContext( contextValue ); 
       
-      int index = 0;
-      
-      while( index < 2 )
+      while( true )
       {
          try
          {
-            StartElement subEvent = (StartElement) xmlEventReader.nextEvent();
+            StartElement subEvent = StaxParserUtil.getNextStartElement( xmlEventReader );
             String tag = StaxParserUtil.getStartElementName( subEvent );
             if( tag.equals( "RequestType" ))
             { 
@@ -80,7 +81,15 @@
             {
                String value = xmlEventReader.getElementText();
                requestToken.setTokenType( new URI( value ));
-            } 
+            }
+            
+            XMLEvent xmlEvent = xmlEventReader.peek();
+            if( xmlEvent.isEndElement() )
+            {
+               EndElement endElement = (EndElement) xmlEvent;
+               if( StaxParserUtil.getEndElementName( endElement ).equalsIgnoreCase( WSTrustConstants.RST ) ) 
+                 break; 
+            }
          }
          catch( XMLStreamException e )
          {
@@ -89,8 +98,7 @@
          catch (URISyntaxException e)
          {
             throw new ParsingException( e );
-         } 
-         index++;
+         }   
       }
       
       return requestToken;

Modified: federation/trunk/picketlink-fed-core/src/main/java/org/picketlink/identity/federation/core/wstrust/WSTrustConstants.java
===================================================================
--- federation/trunk/picketlink-fed-core/src/main/java/org/picketlink/identity/federation/core/wstrust/WSTrustConstants.java	2010-10-12 17:49:08 UTC (rev 459)
+++ federation/trunk/picketlink-fed-core/src/main/java/org/picketlink/identity/federation/core/wstrust/WSTrustConstants.java	2010-10-12 17:57:55 UTC (rev 460)
@@ -76,4 +76,7 @@
    
    //Token Types
    public static final String SAML2_TOKEN_TYPE = "http://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1.1#SAMLV2.0";
+   
+   //Element Names
+   public static final String RST = "RequestSecurityToken";
 }
\ No newline at end of file



More information about the picketlink-commits mailing list