Details

    • Type: Improvement
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 1.5.5
    • Fix Version/s: 2.0 GA
    • Component/s: Core
    • Labels:
      None

      Description

      With the current implementation, it's not possible to define an EndpointInterceptor on a particular endpoint. You can only add interceptors on EndpointMapping so in a group of endpoint.

      When you use annotations (@Endpoint), you have only one EndpointMapping (AnnotationMethodEndpointMapping) for all endpoints and you can not define an interceptor for one method.

      Personally, I would like secured some methods but not all with the XwsSecurityInterceptor. But with the AnnotationMethodEndpointMapping, I can't do that.

      A thread in the forum about this problem.

        Activity

        Hide
        arjen.poutsma Arjen Poutsma added a comment -

        Resolved as fixed, thanks for pointing this out!

        Show
        arjen.poutsma Arjen Poutsma added a comment - Resolved as fixed, thanks for pointing this out!
        Hide
        lafeuil Thomas Champagne added a comment -

        I'm agree with ramo roudnamle :-D
        For example with this spring-ws 1.x config :

        <bean class="org.springframework.ws.server.endpoint.mapping.PayloadRootQNameEndpointMapping">
          <property name="mappings">
            <props>
              <prop key="{hxxp://blah.com:8080/api/blah/v1}getBlahRequest">getBlahRequestEndpoint</prop>
              <prop key="{hxxp://blah.com:8080/api/blah/v1}SaveBlahRequest">saveBlahRequestEndpoint</prop>   	             	              	        	
              <prop key="{hxxp://blah.com:8080/api/blah/v1}GetAllActiveRequest">getAllActiveRequestEndpoint</prop>             	
            </props>
          </property>
          <property name="interceptors">
            <list>
              <ref local="validationInterceptor"/>       
            </list>
          </property>        
        </bean>

        You can define with spring-ws 2.0 :

        <sws:interceptors>
          <sws:payloadRoot namespaceUri="{hxxp://blah.com:8080/api/blah/v1}">
            <bean class="validationInterceptor"/>
          </sws:payloadRoot>
        </sws:interceptors>

        So, this issue can be closed with version 2.0.

        Show
        lafeuil Thomas Champagne added a comment - I'm agree with ramo roudnamle :-D For example with this spring-ws 1.x config : < bean class = "org.springframework.ws.server.endpoint.mapping.PayloadRootQNameEndpointMapping" > < property name = "mappings" > < props > < prop key = "{hxxp://blah.com:8080/api/blah/v1}getBlahRequest" >getBlahRequestEndpoint</ prop > < prop key = "{hxxp://blah.com:8080/api/blah/v1}SaveBlahRequest" >saveBlahRequestEndpoint</ prop > < prop key = "{hxxp://blah.com:8080/api/blah/v1}GetAllActiveRequest" >getAllActiveRequestEndpoint</ prop > </ props > </ property > < property name = "interceptors" > < list > < ref local = "validationInterceptor" /> </ list > </ property > </ bean > You can define with spring-ws 2.0 : < sws :interceptors> < sws :payloadRoot namespaceUri = "{hxxp://blah.com:8080/api/blah/v1}" > < bean class = "validationInterceptor" /> </ sws :payloadRoot> </ sws :interceptors> So, this issue can be closed with version 2.0.
        Hide
        ramo omar elmandour added a comment -

        It seems already implemented in the class
        PayloadRootSmartSoapEndpointInterceptor & SoapActionSmartEndpointInterceptor
        since 2.0.

        Show
        ramo omar elmandour added a comment - It seems already implemented in the class PayloadRootSmartSoapEndpointInterceptor & SoapActionSmartEndpointInterceptor since 2.0.

          People

          • Assignee:
            arjen.poutsma Arjen Poutsma
            Reporter:
            lafeuil Thomas Champagne
          • Votes:
            2 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: