[jboss-cvs] Picketlink SVN: r459 - in federation/trunk/picketlink-fed-core/src/main/java/org/picketlink/identity/federation/core/parsers: wst and 1 other directory.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Tue Oct 12 13:49:08 EDT 2010


Author: anil.saldhana at jboss.com
Date: 2010-10-12 13:49:08 -0400 (Tue, 12 Oct 2010)
New Revision: 459

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/WSTRequestSecurityTokenCollectionParser.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/parsers/wst/WSTrustParser.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:20:21 UTC (rev 458)
+++ 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)
@@ -26,8 +26,11 @@
 import javax.xml.stream.Location;
 import javax.xml.stream.XMLEventReader;
 import javax.xml.stream.XMLInputFactory;
+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;
  
 
 /**
@@ -87,6 +90,44 @@
    }
    
    /**
+    * Get the next {@code StartElement }
+    * @param xmlEventReader
+    * @return
+    * @throws XMLStreamException
+    */
+   public static StartElement getNextStartElement( XMLEventReader xmlEventReader ) throws XMLStreamException
+   {
+      while( true )
+      {
+         XMLEvent xmlEvent = xmlEventReader.nextEvent(); 
+         
+         if( xmlEvent == null || xmlEvent.isStartElement() )
+            return ( StartElement ) xmlEvent; 
+         else 
+            xmlEvent = xmlEventReader.nextEvent();
+      }
+   }
+   
+   /**
+    * Get the next {@code EndElement}
+    * @param xmlEventReader
+    * @return
+    * @throws XMLStreamException
+    */
+   public static EndElement getNextEndElement( XMLEventReader xmlEventReader ) throws XMLStreamException
+   {
+      while( true )
+      {
+         XMLEvent xmlEvent = xmlEventReader.nextEvent(); 
+         
+         if( xmlEvent == null || xmlEvent.isEndElement() )
+            return ( EndElement ) xmlEvent;  
+         else 
+            xmlEvent = xmlEventReader.nextEvent();
+      }
+   }
+   
+   /**
     * Return the name of the start element
     * @param startElement
     * @return
@@ -97,6 +138,44 @@
    }
    
    /**
+    * Peek the next {@code StartElement }
+    * @param xmlEventReader
+    * @return
+    * @throws XMLStreamException
+    */
+   public static StartElement peekNextStartElement( XMLEventReader xmlEventReader ) throws XMLStreamException
+   {
+      while( true )
+      {
+         XMLEvent xmlEvent = xmlEventReader.peek(); 
+         
+         if( xmlEvent == null || xmlEvent.isStartElement() )
+            return ( StartElement ) xmlEvent; 
+         else 
+            xmlEvent = xmlEventReader.nextEvent();
+      }
+   }
+   
+   /**
+    * Peek the next {@code EndElement}
+    * @param xmlEventReader
+    * @return
+    * @throws XMLStreamException
+    */
+   public static EndElement peekNextEndElement( XMLEventReader xmlEventReader ) throws XMLStreamException
+   {
+      while( true )
+      {
+         XMLEvent xmlEvent = xmlEventReader.peek(); 
+         
+         if( xmlEvent == null || xmlEvent.isEndElement() )
+            return ( EndElement ) xmlEvent; 
+         else 
+            xmlEvent = xmlEventReader.nextEvent();
+      }
+   }
+   
+   /**
     * Given a string, trim it
     * @param str
     * @return

Modified: federation/trunk/picketlink-fed-core/src/main/java/org/picketlink/identity/federation/core/parsers/wst/WSTRequestSecurityTokenCollectionParser.java
===================================================================
--- federation/trunk/picketlink-fed-core/src/main/java/org/picketlink/identity/federation/core/parsers/wst/WSTRequestSecurityTokenCollectionParser.java	2010-10-12 17:20:21 UTC (rev 458)
+++ federation/trunk/picketlink-fed-core/src/main/java/org/picketlink/identity/federation/core/parsers/wst/WSTRequestSecurityTokenCollectionParser.java	2010-10-12 17:49:08 UTC (rev 459)
@@ -62,7 +62,7 @@
          StartElement peekedElement = null;
          try
          {
-            peekedElement = (StartElement) xmlEventReader.peek();
+            peekedElement = StaxParserUtil.peekNextStartElement( xmlEventReader  );
             if( peekedElement == null )
                break;
          }

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:20:21 UTC (rev 458)
+++ 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)
@@ -49,7 +49,7 @@
       StartElement startElement = null;
       try
       {
-         startElement = (StartElement) xmlEventReader.nextEvent();
+         startElement = StaxParserUtil.getNextStartElement( xmlEventReader );
       }
       catch (XMLStreamException e)
       {

Modified: federation/trunk/picketlink-fed-core/src/main/java/org/picketlink/identity/federation/core/parsers/wst/WSTrustParser.java
===================================================================
--- federation/trunk/picketlink-fed-core/src/main/java/org/picketlink/identity/federation/core/parsers/wst/WSTrustParser.java	2010-10-12 17:20:21 UTC (rev 458)
+++ federation/trunk/picketlink-fed-core/src/main/java/org/picketlink/identity/federation/core/parsers/wst/WSTrustParser.java	2010-10-12 17:49:08 UTC (rev 459)
@@ -35,8 +35,8 @@
 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;
- 
 
+
 /**
  * Parser for WS-Trust payload
  * @author Anil.Saldhana at redhat.com
@@ -55,18 +55,18 @@
    {
       if( configStream == null )
          throw new IllegalArgumentException( " Input Stream is null " );
-      
+
       XMLInputFactory xmlInputFactory = XMLInputFactory.newInstance();
       //XMLEventReader xmlEventReader = xmlInputFactory.createXMLEventReader(xmlSource);
       XMLEventReader xmlEventReader = StaxParserUtil.getXMLEventReader( configStream );
-      
+
       try
       {
          xmlEventReader = xmlInputFactory.createFilteredReader( xmlEventReader, new EventFilter()
          {
             public boolean accept(XMLEvent xmlEvent)
             {
-               return xmlEvent.isStartElement() ;
+               return xmlEvent.isStartElement() || xmlEvent.isEndElement();
             }
          });
       }
@@ -74,10 +74,10 @@
       {
          throw new ParsingException( e );
       }
-      
+
       return parse( xmlEventReader ); 
    }
- 
+
    /**
     * @see {@link ParserNamespaceSupport#parse(XMLEventReader)}}
     */
@@ -94,15 +94,29 @@
          {
             throw new ParsingException( e );
          }
-         
-         StartElement startElement = (StartElement) xmlEvent;
-         
-         String elementName = StaxParserUtil.getStartElementName( startElement );
-         if( elementName.equalsIgnoreCase( WSTRequestSecurityTokenCollectionParser.LOCALPART ))
+
+         if( xmlEvent instanceof StartElement )
          {
-            WSTRequestSecurityTokenCollectionParser wstrcoll = new WSTRequestSecurityTokenCollectionParser();
-            return wstrcoll.parse(xmlEventReader); 
+            StartElement startElement = (StartElement) xmlEvent;
+
+            String elementName = StaxParserUtil.getStartElementName( startElement );
+            if( elementName.equalsIgnoreCase( WSTRequestSecurityTokenCollectionParser.LOCALPART ))
+            {
+               WSTRequestSecurityTokenCollectionParser wstrcoll = new WSTRequestSecurityTokenCollectionParser();
+               return wstrcoll.parse(xmlEventReader); 
+            } 
          }
+         else
+         {
+            try
+            {
+               xmlEventReader.nextEvent();
+            }
+            catch (XMLStreamException e)
+            {
+               throw new ParsingException( e );
+            }
+         }
       }
       return null;
    }



More information about the jboss-cvs-commits mailing list