You are viewing a plain text version of this content. The canonical link for it is here.
Posted to rampart-dev@ws.apache.org by "Predrag Knezevic (JIRA)" <ji...@apache.org> on 2008/06/19 16:41:45 UTC

[jira] Created: (RAMPART-176) NullPointerException when generating WSDL for service with an empty TransportToken policy

NullPointerException when generating WSDL for service with an empty TransportToken policy
-----------------------------------------------------------------------------------------

                 Key: RAMPART-176
                 URL: https://issues.apache.org/jira/browse/RAMPART-176
             Project: Rampart
          Issue Type: Bug
          Components: rampart-policy
            Reporter: Predrag Knezevic
            Assignee: Ruchith Udayanga Fernando
             Fix For: 1.4


As the example located in samples/policy/sample01 suggests, the policy of TransportToken might be empty. Here is the snippet from the service.xml file:

{noformat}
                    <sp:TransportBinding xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
                      <wsp:Policy>                      	 
                            <sp:TransportToken>                            	 
                              <wsp:Policy>
                                  <!--   <sp:HttpsToken RequireClientCertificate="false"/> -->                                
                              </wsp:Policy>                               
                            </sp:TransportToken> 
                            <sp:AlgorithmSuite>
                              <wsp:Policy>
                                    <sp:Basic256/>
                              </wsp:Policy>
                            </sp:AlgorithmSuite>
                            <sp:Layout>                              
                              <wsp:Policy>
                                    <sp:Lax/>
                              </wsp:Policy>
                            </sp:Layout>
                            <sp:IncludeTimestamp/>
                      </wsp:Policy>
                    </sp:TransportBinding>
{noformat}

Deploying a service with this policy goes fine, and it is available and react properly, but if you want to get the corresponding WSDL,  NullPointerException is thrown and WSDL is not returned. The exception happens in serialize() method of TransportToken class, because it is not expected that the policy can be empty. A simple is fix is necessary, here is the diff:

Index: C:/development/vw-workspace/rampart-svn/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/TransportToken.java
===================================================================
--- C:/development/vw-workspace/rampart-svn/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/TransportToken.java	(revision 668696)
+++ C:/development/vw-workspace/rampart-svn/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/TransportToken.java	(working copy)
@@ -87,7 +87,7 @@
         writer.writeStartElement(SPConstants.POLICY.getPrefix(), SPConstants.POLICY.getLocalPart(), SPConstants.POLICY.getNamespaceURI());
         
         // serialization of the token ..
-        transportToken.serialize(writer);
+        if (transportToken != null) transportToken.serialize(writer);
         
         // </wsp:Policy>
         writer.writeEndElement();

  If other tokens allow empty policies as well (I do not know much about the specification), they should be fixed in the similar way.

  Greetings,

Predrag

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (RAMPART-176) NullPointerException when generating WSDL for service with an empty TransportToken policy

Posted by "Predrag Knezevic (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/RAMPART-176?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Predrag Knezevic updated RAMPART-176:
-------------------------------------

    Description: 
As the example located in samples/policy/sample01 suggests, the policy of TransportToken might be empty. Here is the snippet from the service.xml file:


                    <sp:TransportBinding xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
                      <wsp:Policy>                      	 
                            <sp:TransportToken>                            	 
                              <wsp:Policy>
                                  <!--   <sp:HttpsToken RequireClientCertificate="false"/> -->                                
                              </wsp:Policy>                               
                            </sp:TransportToken> 
                            <sp:AlgorithmSuite>
                              <wsp:Policy>
                                    <sp:Basic256/>
                              </wsp:Policy>
                            </sp:AlgorithmSuite>
                            <sp:Layout>                              
                              <wsp:Policy>
                                    <sp:Lax/>
                              </wsp:Policy>
                            </sp:Layout>
                            <sp:IncludeTimestamp/>
                      </wsp:Policy>
                    </sp:TransportBinding>

Deploying a service with this policy goes fine, and it is available and react properly, but if you want to get the corresponding WSDL,  NullPointerException is thrown and WSDL is not returned. The exception happens in serialize() method of TransportToken class, because it is not expected that the policy can be empty. A simple is fix is necessary, here is the diff:

Index: C:/development/vw-workspace/rampart-svn/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/TransportToken.java
===================================================================
--- C:/development/vw-workspace/rampart-svn/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/TransportToken.java	(revision 668696)
+++ C:/development/vw-workspace/rampart-svn/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/TransportToken.java	(working copy)
@@ -87,7 +87,7 @@
         writer.writeStartElement(SPConstants.POLICY.getPrefix(), SPConstants.POLICY.getLocalPart(), SPConstants.POLICY.getNamespaceURI());
         
         // serialization of the token ..
-        transportToken.serialize(writer);
+        if (transportToken != null) transportToken.serialize(writer);
         
         // </wsp:Policy>
         writer.writeEndElement();

  If other tokens allow empty policies as well (I do not know much about the specification), they should be fixed in the similar way.

  Greetings,

Predrag

  was:
As the example located in samples/policy/sample01 suggests, the policy of TransportToken might be empty. Here is the snippet from the service.xml file:

{noformat}
                    <sp:TransportBinding xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
                      <wsp:Policy>                      	 
                            <sp:TransportToken>                            	 
                              <wsp:Policy>
                                  <!--   <sp:HttpsToken RequireClientCertificate="false"/> -->                                
                              </wsp:Policy>                               
                            </sp:TransportToken> 
                            <sp:AlgorithmSuite>
                              <wsp:Policy>
                                    <sp:Basic256/>
                              </wsp:Policy>
                            </sp:AlgorithmSuite>
                            <sp:Layout>                              
                              <wsp:Policy>
                                    <sp:Lax/>
                              </wsp:Policy>
                            </sp:Layout>
                            <sp:IncludeTimestamp/>
                      </wsp:Policy>
                    </sp:TransportBinding>
{noformat}

Deploying a service with this policy goes fine, and it is available and react properly, but if you want to get the corresponding WSDL,  NullPointerException is thrown and WSDL is not returned. The exception happens in serialize() method of TransportToken class, because it is not expected that the policy can be empty. A simple is fix is necessary, here is the diff:

Index: C:/development/vw-workspace/rampart-svn/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/TransportToken.java
===================================================================
--- C:/development/vw-workspace/rampart-svn/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/TransportToken.java	(revision 668696)
+++ C:/development/vw-workspace/rampart-svn/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/TransportToken.java	(working copy)
@@ -87,7 +87,7 @@
         writer.writeStartElement(SPConstants.POLICY.getPrefix(), SPConstants.POLICY.getLocalPart(), SPConstants.POLICY.getNamespaceURI());
         
         // serialization of the token ..
-        transportToken.serialize(writer);
+        if (transportToken != null) transportToken.serialize(writer);
         
         // </wsp:Policy>
         writer.writeEndElement();

  If other tokens allow empty policies as well (I do not know much about the specification), they should be fixed in the similar way.

  Greetings,

Predrag


> NullPointerException when generating WSDL for service with an empty TransportToken policy
> -----------------------------------------------------------------------------------------
>
>                 Key: RAMPART-176
>                 URL: https://issues.apache.org/jira/browse/RAMPART-176
>             Project: Rampart
>          Issue Type: Bug
>          Components: rampart-policy
>            Reporter: Predrag Knezevic
>            Assignee: Ruchith Udayanga Fernando
>             Fix For: 1.4
>
>
> As the example located in samples/policy/sample01 suggests, the policy of TransportToken might be empty. Here is the snippet from the service.xml file:
>                     <sp:TransportBinding xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
>                       <wsp:Policy>                      	 
>                             <sp:TransportToken>                            	 
>                               <wsp:Policy>
>                                   <!--   <sp:HttpsToken RequireClientCertificate="false"/> -->                                
>                               </wsp:Policy>                               
>                             </sp:TransportToken> 
>                             <sp:AlgorithmSuite>
>                               <wsp:Policy>
>                                     <sp:Basic256/>
>                               </wsp:Policy>
>                             </sp:AlgorithmSuite>
>                             <sp:Layout>                              
>                               <wsp:Policy>
>                                     <sp:Lax/>
>                               </wsp:Policy>
>                             </sp:Layout>
>                             <sp:IncludeTimestamp/>
>                       </wsp:Policy>
>                     </sp:TransportBinding>
> Deploying a service with this policy goes fine, and it is available and react properly, but if you want to get the corresponding WSDL,  NullPointerException is thrown and WSDL is not returned. The exception happens in serialize() method of TransportToken class, because it is not expected that the policy can be empty. A simple is fix is necessary, here is the diff:
> Index: C:/development/vw-workspace/rampart-svn/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/TransportToken.java
> ===================================================================
> --- C:/development/vw-workspace/rampart-svn/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/TransportToken.java	(revision 668696)
> +++ C:/development/vw-workspace/rampart-svn/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/TransportToken.java	(working copy)
> @@ -87,7 +87,7 @@
>          writer.writeStartElement(SPConstants.POLICY.getPrefix(), SPConstants.POLICY.getLocalPart(), SPConstants.POLICY.getNamespaceURI());
>          
>          // serialization of the token ..
> -        transportToken.serialize(writer);
> +        if (transportToken != null) transportToken.serialize(writer);
>          
>          // </wsp:Policy>
>          writer.writeEndElement();
>   If other tokens allow empty policies as well (I do not know much about the specification), they should be fixed in the similar way.
>   Greetings,
> Predrag

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Resolved: (RAMPART-176) NullPointerException when generating WSDL for service with an empty TransportToken policy

Posted by "Nandana Mihindukulasooriya (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/RAMPART-176?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Nandana Mihindukulasooriya resolved RAMPART-176.
------------------------------------------------

       Resolution: Fixed
    Fix Version/s:     (was: 1.4)

Applied the patch. Thanks Predrag.

> NullPointerException when generating WSDL for service with an empty TransportToken policy
> -----------------------------------------------------------------------------------------
>
>                 Key: RAMPART-176
>                 URL: https://issues.apache.org/jira/browse/RAMPART-176
>             Project: Rampart
>          Issue Type: Bug
>          Components: rampart-policy
>            Reporter: Predrag Knezevic
>            Assignee: Ruchith Udayanga Fernando
>
> As the example located in samples/policy/sample01 suggests, the policy of TransportToken might be empty. Here is the snippet from the service.xml file:
>                     <sp:TransportBinding xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
>                       <wsp:Policy>                      	 
>                             <sp:TransportToken>                            	 
>                               <wsp:Policy>
>                                   <!--   <sp:HttpsToken RequireClientCertificate="false"/> -->                                
>                               </wsp:Policy>                               
>                             </sp:TransportToken> 
>                             <sp:AlgorithmSuite>
>                               <wsp:Policy>
>                                     <sp:Basic256/>
>                               </wsp:Policy>
>                             </sp:AlgorithmSuite>
>                             <sp:Layout>                              
>                               <wsp:Policy>
>                                     <sp:Lax/>
>                               </wsp:Policy>
>                             </sp:Layout>
>                             <sp:IncludeTimestamp/>
>                       </wsp:Policy>
>                     </sp:TransportBinding>
> Deploying a service with this policy goes fine, and it is available and react properly, but if you want to get the corresponding WSDL,  NullPointerException is thrown and WSDL is not returned. The exception happens in serialize() method of TransportToken class, because it is not expected that the policy can be empty. A simple is fix is necessary, here is the diff:
> Index: C:/development/vw-workspace/rampart-svn/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/TransportToken.java
> ===================================================================
> --- C:/development/vw-workspace/rampart-svn/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/TransportToken.java	(revision 668696)
> +++ C:/development/vw-workspace/rampart-svn/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/TransportToken.java	(working copy)
> @@ -87,7 +87,7 @@
>          writer.writeStartElement(SPConstants.POLICY.getPrefix(), SPConstants.POLICY.getLocalPart(), SPConstants.POLICY.getNamespaceURI());
>          
>          // serialization of the token ..
> -        transportToken.serialize(writer);
> +        if (transportToken != null) transportToken.serialize(writer);
>          
>          // </wsp:Policy>
>          writer.writeEndElement();
>   If other tokens allow empty policies as well (I do not know much about the specification), they should be fixed in the similar way.
>   Greetings,
> Predrag

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.