Could it be because I am invoking the client from a web service method
of a different service that is not secured? The client to this web
service is another web service.

Thanks
Sunil.


On Fri, Jun 15, 2012 at 6:24 AM, Colm O hEigeartaigh
<[email protected]> wrote:
> I don't see anything obviously wrong with your config. I added a test that
> uses WS-SecurityPolicy to CXF based on your test-case and it works as
> expected:
>
> http://svn.apache.org/viewvc?view=revision&revision=1350561
>
> Could you supply a test-case that reproduces the problem?
>
> Colm.
>
> On Thu, Jun 14, 2012 at 2:36 PM, Sunil Bapat <[email protected]> wrote:
>
>> I am trying to call a web service which is secured by
>> AsymmetricBinding with HOK SAML assertion (wsdl is below). This web
>> service is called from another web service, i.e., the client is
>> another web service.
>>
>> When I make the call to the service from the client, the message is
>> not signed or encrypted, and the saml assertion is not inserted into
>> the header. The SOAP message is a plain soap message without security
>> headers or signatures or encryption.
>>
>> The client code and the corresponding configuration is below. Am I
>> missing something? Do I need to explicitly define the wss4j
>> interceptors, instead of the code below? I assumed that because of the
>> policy defined, the interceptor would be automatically configured
>> based on the properties in the request context.
>>
>> Any ideas?
>>
>> ----------------------------
>> Client code:
>>
>> BindingProvider bindingProvider = (BindingProvider)helloWorldService;
>>
>> bindingProvider.getRequestContext().put(SecurityConstants.SAML_CALLBACK_HANDLER,
>> new SAMLCallbackHandler(samlAssertionElement));
>>
>> bindingProvider.getRequestContext().put(SecurityConstants.SIGNATURE_PROPERTIES,
>> "clientkeystore.properties");
>>
>> bindingProvider.getRequestContext().put(SecurityConstants.SIGNATURE_USERNAME,
>> "client");
>>
>> bindingProvider.getRequestContext().put(SecurityConstants.ENCRYPT_PROPERTIES,
>> "clienttruststore.properties");
>> bindingProvider.getRequestContext().put(SecurityConstants.ENCRYPT_USERNAME,
>> "server");
>>
>> String result = helloWorldService.sayHello(username);
>>
>> ----------------------------
>> Client Config:
>>
>> <bean id="helloWorldServiceClient"
>>
>> class="com.test.services.helloworldservice.HelloWorldServicePortType"
>>         factory-bean="helloWorldServiceClientFactory"
>> factory-method="create">
>>   </bean>
>>
>>   <bean id="helloWorldServiceClientFactory"
>> class="org.apache.cxf.jaxws.JaxWsProxyFactoryBean">
>>      <property name="serviceClass"
>>
>> value="com.test.services.helloworldservice.HelloWorldServicePortType"
>> />
>>      <property name="address"
>> value="http://localhost:8080/hok-helloworld-ws/HelloWorldService?wsdl";
>> />
>>      <property name="bus" ref="cxf" />
>>  </bean>
>>
>> ------------------------------
>> WSDL:
>>
>> <?xml version='1.0' encoding='UTF-8'?><wsdl:definitions
>> name="HelloWorldService"
>> targetNamespace="http://test.com/services/HelloWorldService";
>> xmlns:ns1="http://schemas.xmlsoap.org/soap/http";
>> xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/";
>> xmlns:tns="http://test.com/services/HelloWorldService";
>> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";
>> xmlns:wsp="http://www.w3.org/ns/ws-policy";
>> xmlns:xsd="http://www.w3.org/2001/XMLSchema";>
>>  <wsdl:types>
>> <xs:schema elementFormDefault="unqualified"
>> targetNamespace="http://test.com/services/HelloWorldService";
>> version="1.0" xmlns:tns="http://test.com/services/HelloWorldService";
>> xmlns:xs="http://www.w3.org/2001/XMLSchema";>
>> <xs:element name="sayHello" type="tns:sayHello"/>
>> <xs:element name="sayHelloResponse" type="tns:sayHelloResponse"/>
>> <xs:complexType name="sayHello">
>>    <xs:sequence>
>>      <xs:element minOccurs="0" name="userName" type="xs:string"/>
>>    </xs:sequence>
>>  </xs:complexType>
>> <xs:complexType name="sayHelloResponse">
>>    <xs:sequence>
>>      <xs:element minOccurs="0" name="return" type="xs:string"/>
>>    </xs:sequence>
>>  </xs:complexType>
>> </xs:schema>
>>  </wsdl:types>
>>  <wsdl:message name="sayHelloResponse">
>>    <wsdl:part element="tns:sayHelloResponse" name="parameters">
>>    </wsdl:part>
>>  </wsdl:message>
>>  <wsdl:message name="sayHello">
>>    <wsdl:part element="tns:sayHello" name="parameters">
>>    </wsdl:part>
>>  </wsdl:message>
>>  <wsdl:portType name="HelloWorldServicePortType">
>>    <wsdl:operation name="sayHello">
>>      <wsdl:input message="tns:sayHello" name="sayHello">
>>    </wsdl:input>
>>      <wsdl:output message="tns:sayHelloResponse" name="sayHelloResponse">
>>    </wsdl:output>
>>    </wsdl:operation>
>>  </wsdl:portType>
>>  <wsdl:binding name="HelloWorldServiceSoapBinding"
>> type="tns:HelloWorldServicePortType">
>>    <soap:binding style="document"
>> transport="http://schemas.xmlsoap.org/soap/http"/>
>>    <wsp:PolicyReference URI="#asymmetricSAMLPolicy"/>
>>    <wsdl:operation name="sayHello">
>>      <soap:operation soapAction="" style="document"/>
>>      <wsdl:input name="sayHello">
>>        <soap:body use="literal"/>
>>    <wsp:PolicyReference URI="#inputPolicy"/>
>>      </wsdl:input>
>>      <wsdl:output name="sayHelloResponse">
>>        <soap:body use="literal"/>
>>    <wsp:PolicyReference URI="#outputPolicy"/>
>>      </wsdl:output>
>>    </wsdl:operation>
>>  </wsdl:binding>
>>  <wsdl:service name="HelloWorldService">
>>    <wsdl:port binding="tns:HelloWorldServiceSoapBinding"
>> name="HelloWorldServicePort">
>>      <soap:address
>> location="http://localhost:8080/hok-helloworld-ws/HelloWorldService?wsdl
>> "/>
>>    </wsdl:port>
>>  </wsdl:service>
>>    <wsp:Policy wsu:Id="asymmetricSAMLPolicy"
>> xmlns:sp="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702";
>> xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata";
>> xmlns:wsp="http://www.w3.org/ns/ws-policy";
>> xmlns:wsu="
>> http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd
>> ">
>>   <wsp:ExactlyOne>
>>      <wsp:All>
>>         <wsam:Addressing wsp:Optional="false"/>
>>         <sp:AsymmetricBinding>
>>            <wsp:Policy>
>>               <sp:InitiatorToken>
>>                  <wsp:Policy>
>>                     <sp:SamlToken
>> sp:IncludeToken="
>> http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/IncludeToken/AlwaysToRecipient
>> ">
>>                        <wsp:Policy>
>>                           <sp:WssSamlV20Token11/>
>>                        </wsp:Policy>
>>                     </sp:SamlToken>
>>                  </wsp:Policy>
>>               </sp:InitiatorToken>
>>               <sp:RecipientToken>
>>                  <wsp:Policy>
>>                     <sp:X509Token
>> sp:IncludeToken="
>> http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/IncludeToken/Never
>> ">
>>                        <wsp:Policy>
>>                           <sp:WssX509V3Token10/>
>>                           <sp:RequireIssuerSerialReference/>
>>                        </wsp:Policy>
>>                     </sp:X509Token>
>>                  </wsp:Policy>
>>               </sp:RecipientToken>
>>               <sp:Layout>
>>                  <wsp:Policy>
>>                     <sp:Strict/>
>>                  </wsp:Policy>
>>               </sp:Layout>
>>               <sp:IncludeTimestamp/>
>>               <sp:OnlySignEntireHeadersAndBody/>
>>               <sp:AlgorithmSuite>
>>                  <wsp:Policy>
>>                     <sp:Basic128/>
>>                  </wsp:Policy>
>>               </sp:AlgorithmSuite>
>>            </wsp:Policy>
>>         </sp:AsymmetricBinding>
>>         <sp:Wss10>
>>            <wsp:Policy>
>>               <sp:MustSupportRefIssuerSerial/>
>>            </wsp:Policy>
>>         </sp:Wss10>
>>      </wsp:All>
>>   </wsp:ExactlyOne>
>> </wsp:Policy>
>>    <wsp:Policy wsu:Id="inputPolicy"
>> xmlns:sp="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702";
>> xmlns:wsp="http://www.w3.org/ns/ws-policy";
>> xmlns:wsu="
>> http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd
>> ">
>>   <wsp:ExactlyOne>
>>      <wsp:All>
>>         <sp:EncryptedParts>
>>            <sp:Body/>
>>         </sp:EncryptedParts>
>>         <sp:SignedParts>
>>            <sp:Body/>
>>         </sp:SignedParts>
>>      </wsp:All>
>>   </wsp:ExactlyOne>
>> </wsp:Policy>
>>    <wsp:Policy wsu:Id="outputPolicy"
>> xmlns:sp="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702";
>> xmlns:wsp="http://www.w3.org/ns/ws-policy";
>> xmlns:wsu="
>> http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd
>> ">
>>   <wsp:ExactlyOne>
>>      <wsp:All>
>>         <sp:EncryptedParts>
>>            <sp:Body/>
>>         </sp:EncryptedParts>
>>         <sp:SignedParts>
>>            <sp:Body/>
>>         </sp:SignedParts>
>>      </wsp:All>
>>   </wsp:ExactlyOne>
>> </wsp:Policy>
>> </wsdl:definitions>
>> --------------------------------------------------------
>>
>> Thanks
>> Sunil.
>>
>
>
>
> --
> Colm O hEigeartaigh
>
> Talend Community Coder
> http://coders.talend.com

Reply via email to