[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