This is most likely a bug in Axis2, Rampart or Neethi. A similar issue has been 
discussed at [1]. Chances are this is fixed on the latest trunk. May be 
somebody who understands Rampart/Neethi frameworks better than me can suggest a 
workaround for Synapse 2.1.

Thanks,
Hiranya

[1] - 
http://axis2.867.x6.nabble.com/Policy-not-supported-is-it-a-bug-td4340911.html

On Sep 29, 2014, at 6:43 AM, Sean McEligot <[email protected]> wrote:

> Sorry, to cross post, but I didn't get a response on stackoverflow and
> don't know the best place to get synpase questions answered. Please
> let me know if any additional information would help.
> 
> http://stackoverflow.com/questions/26059411/synapse-transporttoken-is-not-a-wsppolicy-element
> 
> I'm upgrading a project from synapse 1.1.1 to synapse 2.1. I get the
> following error if I remove TransportToken, the next element will give
> the same "is not a Policy element" error. I need a custom password
> callback in order to authenticate the user from the database.
> 
> 13:05:26 | java.lang.IllegalArgumentException:
> {http://schemas.xmlsoap.org/ws/2005/07/securitypolicy}TransportToken
> is not a <wsp:Policy> element.
> 13:05:26 |     at
> org.apache.neethi.PolicyBuilder.getPolicyOperator(PolicyBuilder.java:177)
> 13:05:26 |     at
> org.apache.neethi.PolicyBuilder.getPolicy(PolicyBuilder.java:125)
> 13:05:26 |     at
> org.apache.neethi.PolicyEngine.getPolicy(PolicyEngine.java:102)
> 13:05:26 |     at
> org.apache.ws.secpolicy11.builders.TransportBindingBuilder.build(TransportBindingBuilder.java:42)
> 13:05:26 |     at
> org.apache.ws.secpolicy11.builders.TransportBindingBuilder.build(TransportBindingBuilder.java:37)
> 13:05:26 |     at
> org.apache.neethi.AssertionBuilderFactoryImpl.invokeBuilder(AssertionBuilderFactoryImpl.java:129)
> 13:05:26 |     at
> org.apache.neethi.AssertionBuilderFactoryImpl.build(AssertionBuilderFactoryImpl.java:110)
> 13:05:26 |     at
> org.apache.neethi.PolicyBuilder.processOperationElement(PolicyBuilder.java:225)
> 13:05:26 |     at
> org.apache.neethi.PolicyBuilder.getAllOperator(PolicyBuilder.java:185)
> 13:05:26 |     at
> org.apache.neethi.PolicyBuilder.processOperationElement(PolicyBuilder.java:218)
> 13:05:26 |     at
> org.apache.neethi.PolicyBuilder.getExactlyOneOperator(PolicyBuilder.java:181)
> 13:05:26 |     at
> org.apache.neethi.PolicyBuilder.processOperationElement(PolicyBuilder.java:216)
> 13:05:26 |     at
> org.apache.neethi.PolicyBuilder.getPolicyOperator(PolicyBuilder.java:175)
> 13:05:26 |     at
> org.apache.neethi.PolicyBuilder.getPolicy(PolicyBuilder.java:114)
> 13:05:26 |     at
> org.apache.neethi.PolicyBuilder.getPolicy(PolicyBuilder.java:100)
> 13:05:26 |     at
> org.apache.neethi.PolicyEngine.getPolicy(PolicyEngine.java:80)
> 13:05:26 |     at
> org.apache.synapse.core.axis2.ProxyService.getPolicyFromKey(ProxyService.java:679)
> 13:05:26 |     at
> org.apache.synapse.core.axis2.ProxyService.buildAxisService(ProxyService.java:491)
> 13:05:26 |     at
> org.apache.synapse.Axis2SynapseController.deployProxyServices(Axis2SynapseController.java:695)
> 13:05:26 |     at
> org.apache.synapse.Axis2SynapseController.createSynapseEnvironment(Axis2SynapseController.java:400)
> 13:05:26 |     at
> org.apache.synapse.ServerManager.start(ServerManager.java:181)
> 13:05:26 |     at org.apache.synapse.SynapseServer.main(SynapseServer.java:68)
> 
>  <wsp:Policy wsu:Id="UTOverTransport"
> xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-u
>    <wsp:ExactlyOne>
>      <wsp:All>
>      <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>
>      <sp:SignedSupportingTokens
> xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy";>
>        <wsp:Policy>
>          <sp:UsernameToken
> sp:IncludeToken="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/AlwaysT
>          </wsp:Policy>
>        </sp:SignedSupportingTokens>
>        <ramp:RampartConfig xmlns:ramp="http://ws.apache.org/rampart/policy";>
>        <ramp:passwordCallbackClass>my.PWCBHandler</ramp:passwordCallbackClass>
>        </ramp:RampartConfig>
>      </wsp:All>
>    </wsp:ExactlyOne>
>  </wsp:Policy>

--
Hiranya Jayathilaka
Mayhem Lab/RACE Lab;
Dept. of Computer Science, UCSB;  http://cs.ucsb.edu
E-mail: [email protected];  Mobile: +1 (805) 895-7443
Blog: http://techfeast-hiranya.blogspot.com

Reply via email to