The problem is that the policy in the WSDL is not valid:

<wsp:Policy>
     <sp:HttpsToken />
</wsp:Policy>

According to the WS-SecurityPolicy 1.3 spec, the HttpsToken must have a
wsp:Policy child. So you could try modifying the WSDL locally and adding in:

<wsp:Policy>
      <sp:HttpsToken>
          <wsp:Policy/>
      </sp:HttpsToken>
 </wsp:Policy>

Colm.

On Fri, Oct 7, 2016 at 7:38 AM, arthurfiddich <arthurfidd...@gmail.com>
wrote:

> I am very new to the ws-* support features. One of my customer gave a WSDL
> to
> access their data. They are using Microsoft Identity Server for
> authentication. I am using APACHE CXF library to develop this feature. I
> read some document related to ws federation in CXF but I wasn't understand
> the whole concept. I am posting my WSDL and client code and the error I am
> getting. Can any one help me on this.?
>
> Here the ws policy content from my WSDL
>
> <wsp:Policy wsu:Id="WS2007FederationHttpBinding_IStoreService_policy">
>             <wsp:ExactlyOne>
>                 <wsp:All>
>                     <sp:TransportBinding
>
> xmlns:sp="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702";>
>                         <wsp:Policy>
>                             <sp:TransportToken>
>                                 <wsp:Policy>
>                                     <sp:HttpsToken />
>                                 </wsp:Policy>
>                             </sp:TransportToken>
>                             <sp:AlgorithmSuite>
>                                 <wsp:Policy>
>                                     <sp:Basic256 />
>                                 </wsp:Policy>
>                             </sp:AlgorithmSuite>
>                             <sp:Layout>
>                                 <wsp:Policy>
>                                     <sp:Strict />
>                                 </wsp:Policy>
>                             </sp:Layout>
>                             <sp:IncludeTimestamp />
>                         </wsp:Policy>
>                     </sp:TransportBinding>
>                     <sp:SignedSupportingTokens
>
> xmlns:sp="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702";>
>                         <wsp:Policy>
>                             <sp:IssuedToken
>
> sp:IncludeToken="http://docs.oasis-open.org/ws-sx/ws-
> securitypolicy/200702/IncludeToken/AlwaysToRecipient">
>                                 <Issuer
>
> xmlns="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702";>
>                                     <Address
> xmlns="http://www.w3.org/2005/08/addressing";>
>
> https://slc.centershift.com/STS/issue/wstrust/mixed/username
>                                     </Address>
>                                     <Metadata
> xmlns="http://www.w3.org/2005/08/addressing";>
>                                         <Metadata
> xmlns="http://schemas.xmlsoap.org/ws/2004/09/mex";
>
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";>
>                                             <wsx:MetadataSection xmlns="">
>                                                 <wsx:MetadataReference>
>                                                     <Address
> xmlns="http://www.w3.org/2005/08/addressing";>https://slc.
> centershift.com/STS/issue/mex</Address>
>                                                 </wsx:MetadataReference>
>                                             </wsx:MetadataSection>
>                                         </Metadata>
>                                     </Metadata>
>                                 </Issuer>
>                                 <sp:RequestSecurityTokenTemplate>
>                                     <trust:KeyType
>
> xmlns:trust="http://docs.oasis-open.org/ws-sx/ws-trust/200512";>
>
> http://docs.oasis-open.org/ws-sx/ws-trust/200512/Bearer
>                                     </trust:KeyType>
>                                     <trust:CanonicalizationAlgorithm
>
> xmlns:trust="http://docs.oasis-open.org/ws-sx/ws-trust/200512";>
> http://www.w3.org/2001/10/xml-exc-c14n#</trust:CanonicalizationAlgorithm>
>                                     <trust:EncryptionAlgorithm
>
> xmlns:trust="http://docs.oasis-open.org/ws-sx/ws-trust/200512";>
> http://www.w3.org/2001/04/xmlenc#aes256-cbc</trust:EncryptionAlgorithm>
>                                 </sp:RequestSecurityTokenTemplate>
>                                 <wsp:Policy>
>                                     <sp:RequireInternalReference />
>                                 </wsp:Policy>
>                             </sp:IssuedToken>
>                         </wsp:Policy>
>                     </sp:SignedSupportingTokens>
>                     <sp:Wss11
>
> xmlns:sp="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702";>
>                         <wsp:Policy />
>                     </sp:Wss11>
>                     <sp:Trust13
>
> xmlns:sp="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702";>
>                         <wsp:Policy>
>                             <sp:MustSupportIssuedTokens />
>                             <sp:RequireClientEntropy />
>                             <sp:RequireServerEntropy />
>                         </wsp:Policy>
>                     </sp:Trust13>
>                     <wsaw:UsingAddressing />
>                 </wsp:All>
>             </wsp:ExactlyOne>
>         </wsp:Policy>
>
> *Here is the service end-point:*
>
>     <wsdl:service name="StoreService">
>             <wsdl:port name="WS2007FederationHttpBinding_IStoreService"
>                 binding="tns:WS2007FederationHttpBinding_IStoreService">
>                 <soap12:address
>
> location="https://slc.centershift.com/Store40/StoreService.svc"; />
>                 <wsa10:EndpointReference>
>                     <wsa10:Address>
>                         https://slc.centershift.com/
> Store40/StoreService.svc
>                     </wsa10:Address>
>                 </wsa10:EndpointReference>
>             </wsdl:port>
>         </wsdl:service>
>
> *Client Code:*
>
> import java.net.MalformedURLException;
> import java.net.URL;
> import java.util.List;
> import java.util.concurrent.Executors;
>
> import javax.xml.ws.BindingProvider;
> import javax.xml.ws.soap.AddressingFeature;
>
> import
> com.reputation.r4e.integrator.centershift.handler.
> CenterShiftServiceConfigurator;
> import
> com.reputation.r4e.integrator.centershift.sws2.ArrayOfParameterValues;
> import
> com.reputation.r4e.integrator.centershift.sws2.GetDataViewResponse.
> GetDataViewResult;
> import com.reputation.r4e.integrator.centershift.sws2.GetDataView_Request;
> import com.reputation.r4e.integrator.centershift.sws2.IStoreService;
> import com.reputation.r4e.integrator.centershift.sws2.ParameterValues;
> import com.reputation.r4e.integrator.centershift.sws2.StoreService;
>
> public class CentershiftSws2Client {
>
>     CenterShiftServiceConfigurator serviceConfigurator;
>
>     public IStoreService service;
>
>     /**
>      * Get the Test service instance for use. If the instance does not
> create
>      * yet, create it.
>      *
>      * @return The service instance
>      */
>     public IStoreService getService() {
>         if (service == null) {
>             service = createTestOperationManagerInstance();
>         }
>
>         return service;
>     }
>
>     /**
>      * Creates and returns the instance of the {@link TestOperationManager}
>      *
>      * @return instance of the {@link TestOperationManager}
>      */
>     public IStoreService createTestOperationManagerInstance() {
>         StoreService service = new
> StoreService(getWsdlLocation(StoreService.WSDL_LOCATION));
>
>         service.setExecutor(Executors.newCachedThreadPool());
>
>         IStoreService testOperationManagerSoap = service
>                 .getWS2007FederationHttpBindingIStoreService(new
> AddressingFeature(true));
>
>         getServiceConfigurator().configure(testOperationManagerSoap);
>
>         return testOperationManagerSoap;
>     }
>
>     /**
>      * Used to get the environment-specific location of the wsdl. If there
> is no
>      * concept of an environment-specific location of the wsdl, then just
> return
>      * the input codedWSDL
>      */
>     public URL getWsdlLocation(URL codedWSDL) {
>         URL wsdlLocation = null;
>         try {
>             wsdlLocation = new
> URL("https://slc.centershift.com/Store40/StoreService.svc?wsdl";);
>         } catch (MalformedURLException mue) {
>             wsdlLocation = codedWSDL;
>         }
>
>         return wsdlLocation;
>
>     }
>
>     public CenterShiftServiceConfigurator getServiceConfigurator() {
>         return serviceConfigurator;
>     }
>
>     public void setServiceConfigurator(CenterShiftServiceConfigurator
> centershiftServiceConfigurator) {
>         this.serviceConfigurator = centershiftServiceConfigurator;
>     }
>
>     public static void main(String[] args) {
>         CentershiftSws2Client testService = new CentershiftSws2Client();
>         CenterShiftServiceConfigurator serviceConfigurator = new
> CenterShiftServiceConfigurator();
>         testService.setServiceConfigurator(serviceConfigurator);
>         IStoreService storeService = testService.getService();
>         ((BindingProvider)
> storeService).getRequestContext().put(BindingProvider.ENDPOINT_
> ADDRESS_PROPERTY,
>                 "https://slc.centershift.com/Store40/StoreService.svc";);
>         ((BindingProvider)
> storeService).getResponseContext().put("ws-security.username.sct",
> "USER_NAME");
>         ((BindingProvider)
> storeService).getResponseContext().put("ws-security.password.sct",
> "PASSWORD");
>
>         GetDataView_Request dataView_Request = new GetDataView_Request();
>         dataView_Request.setOrgID("ORG_ID");
>         dataView_Request.setSiteID("SITE_ID");
>         dataView_Request.setViewName("VIEW_NAME");
>         ArrayOfParameterValues parameterValues = new
> ArrayOfParameterValues();
>
>         ParameterValues paramters = new ParameterValues();
>         paramters.setFilterType(0);
>         paramters.setParameterName("start_date");
>         paramters.setParameterValue("2016-10-01T00:00:00.000-06:00");
>
>         parameterValues.getParameterValues().add(paramters);
>         dataView_Request.setParameters(parameterValues);
>
>         GetDataViewResult dataViewResult =
> storeService.getDataView(dataView_Request);
>         List list = dataViewResult.getAny();
>         System.out.println(list.size());
>
>     }
> }
>
> StoreService Class:
>
> import java.net.MalformedURLException;
> import java.net.URL;
> import javax.xml.namespace.QName;
> import javax.xml.ws.WebEndpoint;
> import javax.xml.ws.WebServiceClient;
> import javax.xml.ws.WebServiceFeature;
> import javax.xml.ws.Service;
>
> /**
>  * This class was generated by Apache CXF 3.1.7
>  * 2016-10-06T21:02:01.741+05:30
>  * Generated source version: 3.1.7
>  *
>  */
> @WebServiceClient(name = "StoreService",
>                   wsdlLocation =
> "https://slc.centershift.com/Store40/StoreService.svc?wsdl";,
>                   targetNamespace = "http://tempuri.org/";)
> public class StoreService extends Service {
>
>     public final static URL WSDL_LOCATION;
>
>     public final static QName SERVICE = new QName("http://tempuri.org/";,
> "StoreService");
>     public final static QName WS2007FederationHttpBindingIStoreService =
> new
> QName("http://tempuri.org/";, "WS2007FederationHttpBinding_IStoreService");
>     static {
>         URL url = null;
>         try {
>             url = new
> URL("https://slc.centershift.com/Store40/StoreService.svc?wsdl";);
>         } catch (MalformedURLException e) {
>             java.util.logging.Logger.getLogger(StoreService.class.
> getName())
>                 .log(java.util.logging.Level.INFO,
>                      "Can not initialize the default wsdl from {0}",
> "https://slc.centershift.com/Store40/StoreService.svc?wsdl";);
>         }
>         WSDL_LOCATION = url;
>     }
>
>     public StoreService(URL wsdlLocation) {
>         super(wsdlLocation, SERVICE);
>     }
>
>     public StoreService(URL wsdlLocation, QName serviceName) {
>         super(wsdlLocation, serviceName);
>     }
>
>     public StoreService() {
>         super(WSDL_LOCATION, SERVICE);
>     }
>
>     public StoreService(WebServiceFeature ... features) {
>         super(WSDL_LOCATION, SERVICE, features);
>     }
>
>     public StoreService(URL wsdlLocation, WebServiceFeature ... features) {
>         super(wsdlLocation, SERVICE, features);
>     }
>
>     public StoreService(URL wsdlLocation, QName serviceName,
> WebServiceFeature ... features) {
>         super(wsdlLocation, serviceName, features);
>     }
>
>
>
>
>     /**
>      *
>      * @return
>      *     returns IStoreService
>      */
>     @WebEndpoint(name = "WS2007FederationHttpBinding_IStoreService")
>     public IStoreService getWS2007FederationHttpBindingIStoreService() {
>         return super.getPort(WS2007FederationHttpBindingIStoreService,
> IStoreService.class);
>     }
>
>     /**
>      *
>      * @param features
>      *     A list of {@link javax.xml.ws.WebServiceFeature} to configure
> on
> the proxy.  Supported features not in the <code>features</code> parameter
> will have their default values.
>      * @return
>      *     returns IStoreService
>      */
>     @WebEndpoint(name = "WS2007FederationHttpBinding_IStoreService")
>     public IStoreService
> getWS2007FederationHttpBindingIStoreService(WebServiceFeature...
> features) {
>         return super.getPort(WS2007FederationHttpBindingIStoreService,
> IStoreService.class, features);
>     }
>
> }
>
> *Exception: *
>
> [WARN ][Wsdl11AttachmentPolicyProvider.getElementPolicy:198] Failed to
> build
> the policy 'WS2007FederationHttpBinding_IStoreService_policy':sp:
> HttpsToken
> must have an inner wsp:Policy element
>     Exception in thread "main" java.lang.IllegalArgumentException:
> sp:HttpsToken must have an inner wsp:Policy element
>         at
> org.apache.wss4j.policy.builders.HttpsTokenBuilder.
> build(HttpsTokenBuilder.java:55)
>         at
> org.apache.wss4j.policy.builders.HttpsTokenBuilder.
> build(HttpsTokenBuilder.java:34)
>         at
> org.apache.neethi.AssertionBuilderFactoryImpl.invokeBuilder(
> AssertionBuilderFactoryImpl.java:138)
>         at
> org.apache.neethi.AssertionBuilderFactoryImpl.build(
> AssertionBuilderFactoryImpl.java:117)
>         at
> org.apache.neethi.PolicyBuilder.processOperationElement(
> PolicyBuilder.java:224)
>         at
> org.apache.neethi.PolicyBuilder.getPolicyOperator(PolicyBuilder.java:174)
>         at org.apache.neethi.PolicyBuilder.getPolicy(
> PolicyBuilder.java:108)
>         at
> org.apache.wss4j.policy.builders.TransportTokenBuilder.build(
> TransportTokenBuilder.java:41)
>         at
> org.apache.wss4j.policy.builders.TransportTokenBuilder.build(
> TransportTokenBuilder.java:34)
>         at
> org.apache.neethi.AssertionBuilderFactoryImpl.invokeBuilder(
> AssertionBuilderFactoryImpl.java:138)
>         at
> org.apache.neethi.AssertionBuilderFactoryImpl.build(
> AssertionBuilderFactoryImpl.java:117)
>         at
> org.apache.neethi.PolicyBuilder.processOperationElement(
> PolicyBuilder.java:224)
>         at
> org.apache.neethi.PolicyBuilder.getPolicyOperator(PolicyBuilder.java:174)
>         at org.apache.neethi.PolicyBuilder.getPolicy(
> PolicyBuilder.java:108)
>         at
> org.apache.wss4j.policy.builders.TransportBindingBuilder.build(
> TransportBindingBuilder.java:44)
>         at
> org.apache.wss4j.policy.builders.TransportBindingBuilder.build(
> TransportBindingBuilder.java:34)
>         at
> org.apache.neethi.AssertionBuilderFactoryImpl.invokeBuilder(
> AssertionBuilderFactoryImpl.java:138)
>         at
> org.apache.neethi.AssertionBuilderFactoryImpl.build(
> AssertionBuilderFactoryImpl.java:117)
>         at
> org.apache.neethi.PolicyBuilder.processOperationElement(
> PolicyBuilder.java:224)
>         at
> org.apache.neethi.PolicyBuilder.getAllOperator(PolicyBuilder.java:184)
>         at
> org.apache.neethi.PolicyBuilder.processOperationElement(
> PolicyBuilder.java:217)
>         at
> org.apache.neethi.PolicyBuilder.getExactlyOneOperator(
> PolicyBuilder.java:180)
>         at
> org.apache.neethi.PolicyBuilder.processOperationElement(
> PolicyBuilder.java:215)
>         at
> org.apache.neethi.PolicyBuilder.getPolicyOperator(PolicyBuilder.java:174)
>         at org.apache.neethi.PolicyBuilder.getPolicy(
> PolicyBuilder.java:124)
>         at
> org.apache.cxf.ws.policy.attachment.reference.
> LocalServiceModelReferenceResolver.resolveReference(
> LocalServiceModelReferenceResolver.java:53)
>         at
> org.apache.cxf.ws.policy.attachment.wsdl11.Wsdl11AttachmentPolicyProvider
> .resolveLocal(Wsdl11AttachmentPolicyProvider.java:292)
>         at
> org.apache.cxf.ws.policy.attachment.wsdl11.Wsdl11AttachmentPolicyProvider
> .resolveReference(Wsdl11AttachmentPolicyProvider.java:272)
>         at
> org.apache.cxf.ws.policy.attachment.wsdl11.Wsdl11AttachmentPolicyProvider
> .getElementPolicy(Wsdl11AttachmentPolicyProvider.java:220)
>         at
> org.apache.cxf.ws.policy.attachment.wsdl11.Wsdl11AttachmentPolicyProvider
> .getElementPolicy(Wsdl11AttachmentPolicyProvider.java:168)
>         at
> org.apache.cxf.ws.policy.attachment.wsdl11.Wsdl11AttachmentPolicyProvider
> .getElementPolicy(Wsdl11AttachmentPolicyProvider.java:161)
>         at
> org.apache.cxf.ws.policy.attachment.wsdl11.Wsdl11AttachmentPolicyProvider
> .getEffectivePolicy(Wsdl11AttachmentPolicyProvider.java:98)
>         at
> org.apache.cxf.ws.policy.PolicyEngineImpl.getAggregatedEndpointPolicy(
> PolicyEngineImpl.java:464)
>         at
> org.apache.cxf.ws.policy.EndpointPolicyImpl.initializePolicy(
> EndpointPolicyImpl.java:152)
>         at
> org.apache.cxf.ws.policy.EndpointPolicyImpl.initialize(
> EndpointPolicyImpl.java:140)
>         at
> org.apache.cxf.ws.policy.PolicyEngineImpl.createEndpointPolicyInfo(
> PolicyEngineImpl.java:604)
>         at
> org.apache.cxf.ws.policy.PolicyEngineImpl.getEndpointPolicy(
> PolicyEngineImpl.java:316)
>         at
> org.apache.cxf.ws.policy.PolicyEngineImpl.getClientEndpointPolicy(
> PolicyEngineImpl.java:303)
>         at
> org.apache.cxf.ws.policy.PolicyDataEngineImpl.getClientEndpointPolicy(
> PolicyDataEngineImpl.java:61)
>         at
> org.apache.cxf.transport.http.HTTPConduit.updateClientPolicy(
> HTTPConduit.java:318)
>         at
> org.apache.cxf.transport.http.HTTPConduit.updateClientPolicy(
> HTTPConduit.java:338)
>         at
> org.apache.cxf.transport.http.HTTPConduit.getClient(HTTPConduit.java:873)
>         at
> org.apache.cxf.transport.http.HTTPConduit.configureConduitFromEndpointIn
> fo(HTTPConduit.java:360)
>         at
> org.apache.cxf.transport.http.HTTPConduit.finalizeConfig(
> HTTPConduit.java:440)
>         at
> org.apache.cxf.transport.http.HTTPTransportFactory.getConduit(
> HTTPTransportFactory.java:242)
>         at
> org.apache.cxf.binding.soap.SoapTransportFactory.getConduit(
> SoapTransportFactory.java:226)
>         at
> org.apache.cxf.binding.soap.SoapTransportFactory.getConduit(
> SoapTransportFactory.java:233)
>         at
> org.apache.cxf.endpoint.AbstractConduitSelector.createConduit(
> AbstractConduitSelector.java:145)
>         at
> org.apache.cxf.endpoint.AbstractConduitSelector.getSelectedConduit(
> AbstractConduitSelector.java:107)
>         at
> org.apache.cxf.endpoint.UpfrontConduitSelector.selectConduit(
> UpfrontConduitSelector.java:77)
>         at
> org.apache.cxf.endpoint.ClientImpl.getConduit(ClientImpl.java:845)
>         at
> com.reputation.r4e.integrator.centershift.handler.
> CenterShiftServiceConfigurator.configure(CenterShiftServiceConfigurator
> .java:18)
>         at
> com.reputation.r4e.integrator.centershift.CentershiftSws2Client.
> createTestOperationManagerInstance(CentershiftSws2Client.java:52)
>         at
> com.reputation.r4e.integrator.centershift.CentershiftSws2Client.
> getService(CentershiftSws2Client.java:33)
>         at
> com.reputation.r4e.integrator.centershift.CentershiftSws2Client.main(
> CentershiftSws2Client.java:86)
>
>
> I am very new to the ws-* support features. One of my customer gave a WSDL
> to access their data. They are using Microsoft Identity Server for
> authentication. I am using APACHE CXF library to develop this feature. I
> read some document related to ws federation in CXF but I wasn't understand
> the whole concept. I am posting my WSDL and client code and the error I am
> getting. Can any one help me on this.?
>
> Here the ws policy content from my WSDL
>
>     <wsp:Policy wsu:Id="WS2007FederationHttpBinding_IStoreService_policy">
>             <wsp:ExactlyOne>
>                 <wsp:All>
>                     <sp:TransportBinding
>
> xmlns:sp="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702";>
>                         <wsp:Policy>
>                             <sp:TransportToken>
>                                 <wsp:Policy>
>                                     <sp:HttpsToken />
>                                 </wsp:Policy>
>                             </sp:TransportToken>
>                             <sp:AlgorithmSuite>
>                                 <wsp:Policy>
>                                     <sp:Basic256 />
>                                 </wsp:Policy>
>                             </sp:AlgorithmSuite>
>                             <sp:Layout>
>                                 <wsp:Policy>
>                                     <sp:Strict />
>                                 </wsp:Policy>
>                             </sp:Layout>
>                             <sp:IncludeTimestamp />
>                         </wsp:Policy>
>                     </sp:TransportBinding>
>                     <sp:SignedSupportingTokens
>
> xmlns:sp="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702";>
>                         <wsp:Policy>
>                             <sp:IssuedToken
>
> sp:IncludeToken="http://docs.oasis-open.org/ws-sx/ws-
> securitypolicy/200702/IncludeToken/AlwaysToRecipient">
>                                 <Issuer
>
> xmlns="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702";>
>                                     <Address
> xmlns="http://www.w3.org/2005/08/addressing";>
>
> https://slc.centershift.com/STS/issue/wstrust/mixed/username
>                                     </Address>
>                                     <Metadata
> xmlns="http://www.w3.org/2005/08/addressing";>
>                                         <Metadata
> xmlns="http://schemas.xmlsoap.org/ws/2004/09/mex";
>
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";>
>                                             <wsx:MetadataSection xmlns="">
>                                                 <wsx:MetadataReference>
>                                                     <Address
> xmlns="http://www.w3.org/2005/08/addressing";>https://slc.
> centershift.com/STS/issue/mex</Address>
>                                                 </wsx:MetadataReference>
>                                             </wsx:MetadataSection>
>                                         </Metadata>
>                                     </Metadata>
>                                 </Issuer>
>                                 <sp:RequestSecurityTokenTemplate>
>                                     <trust:KeyType
>
> xmlns:trust="http://docs.oasis-open.org/ws-sx/ws-trust/200512";>
>
> http://docs.oasis-open.org/ws-sx/ws-trust/200512/Bearer
>                                     </trust:KeyType>
>                                     <trust:CanonicalizationAlgorithm
>
> xmlns:trust="http://docs.oasis-open.org/ws-sx/ws-trust/200512";>
> http://www.w3.org/2001/10/xml-exc-c14n#</trust:CanonicalizationAlgorithm>
>                                     <trust:EncryptionAlgorithm
>
> xmlns:trust="http://docs.oasis-open.org/ws-sx/ws-trust/200512";>
> http://www.w3.org/2001/04/xmlenc#aes256-cbc</trust:EncryptionAlgorithm>
>                                 </sp:RequestSecurityTokenTemplate>
>                                 <wsp:Policy>
>                                     <sp:RequireInternalReference />
>                                 </wsp:Policy>
>                             </sp:IssuedToken>
>                         </wsp:Policy>
>                     </sp:SignedSupportingTokens>
>                     <sp:Wss11
>
> xmlns:sp="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702";>
>                         <wsp:Policy />
>                     </sp:Wss11>
>                     <sp:Trust13
>
> xmlns:sp="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702";>
>                         <wsp:Policy>
>                             <sp:MustSupportIssuedTokens />
>                             <sp:RequireClientEntropy />
>                             <sp:RequireServerEntropy />
>                         </wsp:Policy>
>                     </sp:Trust13>
>                     <wsaw:UsingAddressing />
>                 </wsp:All>
>             </wsp:ExactlyOne>
>         </wsp:Policy>
> Here is the service end-point:
>
>     <wsdl:service name="StoreService">
>             <wsdl:port name="WS2007FederationHttpBinding_IStoreService"
>                 binding="tns:WS2007FederationHttpBinding_IStoreService">
>                 <soap12:address
>
> location="https://slc.centershift.com/Store40/StoreService.svc"; />
>                 <wsa10:EndpointReference>
>                     <wsa10:Address>
>                         https://slc.centershift.com/
> Store40/StoreService.svc
>                     </wsa10:Address>
>                 </wsa10:EndpointReference>
>             </wsdl:port>
>         </wsdl:service>
> Client Code:
>
> import java.net.MalformedURLException;
> import java.net.URL;
> import java.util.List;
> import java.util.concurrent.Executors;
>
> import javax.xml.ws.BindingProvider;
> import javax.xml.ws.soap.AddressingFeature;
>
> import
> com.reputation.r4e.integrator.centershift.handler.
> CenterShiftServiceConfigurator;
> import
> com.reputation.r4e.integrator.centershift.sws2.ArrayOfParameterValues;
> import
> com.reputation.r4e.integrator.centershift.sws2.GetDataViewResponse.
> GetDataViewResult;
> import com.reputation.r4e.integrator.centershift.sws2.GetDataView_Request;
> import com.reputation.r4e.integrator.centershift.sws2.IStoreService;
> import com.reputation.r4e.integrator.centershift.sws2.ParameterValues;
> import com.reputation.r4e.integrator.centershift.sws2.StoreService;
>
> public class CentershiftSws2Client {
>
>     CenterShiftServiceConfigurator serviceConfigurator;
>
>     public IStoreService service;
>
>     /**
>      * Get the Test service instance for use. If the instance does not
> create
>      * yet, create it.
>      *
>      * @return The service instance
>      */
>     public IStoreService getService() {
>         if (service == null) {
>             service = createTestOperationManagerInstance();
>         }
>
>         return service;
>     }
>
>     /**
>      * Creates and returns the instance of the {@link TestOperationManager}
>      *
>      * @return instance of the {@link TestOperationManager}
>      */
>     public IStoreService createTestOperationManagerInstance() {
>         StoreService service = new
> StoreService(getWsdlLocation(StoreService.WSDL_LOCATION));
>
>         service.setExecutor(Executors.newCachedThreadPool());
>
>         IStoreService testOperationManagerSoap = service
>                 .getWS2007FederationHttpBindingIStoreService(new
> AddressingFeature(true));
>
>         getServiceConfigurator().configure(testOperationManagerSoap);
>
>         return testOperationManagerSoap;
>     }
>
>     /**
>      * Used to get the environment-specific location of the wsdl. If there
> is no
>      * concept of an environment-specific location of the wsdl, then just
> return
>      * the input codedWSDL
>      */
>     public URL getWsdlLocation(URL codedWSDL) {
>         URL wsdlLocation = null;
>         try {
>             wsdlLocation = new
> URL("https://slc.centershift.com/Store40/StoreService.svc?wsdl";);
>         } catch (MalformedURLException mue) {
>             wsdlLocation = codedWSDL;
>         }
>
>         return wsdlLocation;
>
>     }
>
>     public CenterShiftServiceConfigurator getServiceConfigurator() {
>         return serviceConfigurator;
>     }
>
>     public void setServiceConfigurator(CenterShiftServiceConfigurator
> centershiftServiceConfigurator) {
>         this.serviceConfigurator = centershiftServiceConfigurator;
>     }
>
>     public static void main(String[] args) {
>         CentershiftSws2Client testService = new CentershiftSws2Client();
>         CenterShiftServiceConfigurator serviceConfigurator = new
> CenterShiftServiceConfigurator();
>         testService.setServiceConfigurator(serviceConfigurator);
>         IStoreService storeService = testService.getService();
>         ((BindingProvider)
> storeService).getRequestContext().put(BindingProvider.ENDPOINT_
> ADDRESS_PROPERTY,
>                 "https://slc.centershift.com/Store40/StoreService.svc";);
>         ((BindingProvider)
> storeService).getResponseContext().put("ws-security.username.sct",
> "USER_NAME");
>         ((BindingProvider)
> storeService).getResponseContext().put("ws-security.password.sct",
> "PASSWORD");
>
>         GetDataView_Request dataView_Request = new GetDataView_Request();
>         dataView_Request.setOrgID("ORG_ID");
>         dataView_Request.setSiteID("SITE_ID");
>         dataView_Request.setViewName("VIEW_NAME");
>         ArrayOfParameterValues parameterValues = new
> ArrayOfParameterValues();
>
>         ParameterValues paramters = new ParameterValues();
>         paramters.setFilterType(0);
>         paramters.setParameterName("start_date");
>         paramters.setParameterValue("2016-10-01T00:00:00.000-06:00");
>
>         parameterValues.getParameterValues().add(paramters);
>         dataView_Request.setParameters(parameterValues);
>
>         GetDataViewResult dataViewResult =
> storeService.getDataView(dataView_Request);
>         List list = dataViewResult.getAny();
>         System.out.println(list.size());
>
>     }
> }
> StoreService Class:
>
> import java.net.MalformedURLException;
> import java.net.URL;
> import javax.xml.namespace.QName;
> import javax.xml.ws.WebEndpoint;
> import javax.xml.ws.WebServiceClient;
> import javax.xml.ws.WebServiceFeature;
> import javax.xml.ws.Service;
>
> /**
>  * This class was generated by Apache CXF 3.1.7
>  * 2016-10-06T21:02:01.741+05:30
>  * Generated source version: 3.1.7
>  *
>  */
> @WebServiceClient(name = "StoreService",
>                   wsdlLocation =
> "https://slc.centershift.com/Store40/StoreService.svc?wsdl";,
>                   targetNamespace = "http://tempuri.org/";)
> public class StoreService extends Service {
>
>     public final static URL WSDL_LOCATION;
>
>     public final static QName SERVICE = new QName("http://tempuri.org/";,
> "StoreService");
>     public final static QName WS2007FederationHttpBindingIStoreService =
> new
> QName("http://tempuri.org/";, "WS2007FederationHttpBinding_IStoreService");
>     static {
>         URL url = null;
>         try {
>             url = new
> URL("https://slc.centershift.com/Store40/StoreService.svc?wsdl";);
>         } catch (MalformedURLException e) {
>             java.util.logging.Logger.getLogger(StoreService.class.
> getName())
>                 .log(java.util.logging.Level.INFO,
>                      "Can not initialize the default wsdl from {0}",
> "https://slc.centershift.com/Store40/StoreService.svc?wsdl";);
>         }
>         WSDL_LOCATION = url;
>     }
>
>     public StoreService(URL wsdlLocation) {
>         super(wsdlLocation, SERVICE);
>     }
>
>     public StoreService(URL wsdlLocation, QName serviceName) {
>         super(wsdlLocation, serviceName);
>     }
>
>     public StoreService() {
>         super(WSDL_LOCATION, SERVICE);
>     }
>
>     public StoreService(WebServiceFeature ... features) {
>         super(WSDL_LOCATION, SERVICE, features);
>     }
>
>     public StoreService(URL wsdlLocation, WebServiceFeature ... features) {
>         super(wsdlLocation, SERVICE, features);
>     }
>
>     public StoreService(URL wsdlLocation, QName serviceName,
> WebServiceFeature ... features) {
>         super(wsdlLocation, serviceName, features);
>     }
>
>
>
>
>     /**
>      *
>      * @return
>      *     returns IStoreService
>      */
>     @WebEndpoint(name = "WS2007FederationHttpBinding_IStoreService")
>     public IStoreService getWS2007FederationHttpBindingIStoreService() {
>         return super.getPort(WS2007FederationHttpBindingIStoreService,
> IStoreService.class);
>     }
>
>     /**
>      *
>      * @param features
>      *     A list of {@link javax.xml.ws.WebServiceFeature} to configure
> on
> the proxy.  Supported features not in the <code>features</code> parameter
> will have their default values.
>      * @return
>      *     returns IStoreService
>      */
>     @WebEndpoint(name = "WS2007FederationHttpBinding_IStoreService")
>     public IStoreService
> getWS2007FederationHttpBindingIStoreService(WebServiceFeature...
> features) {
>         return super.getPort(WS2007FederationHttpBindingIStoreService,
> IStoreService.class, features);
>     }
>
> }
> Exception:
>
>     [WARN ][Wsdl11AttachmentPolicyProvider.getElementPolicy:198] Failed to
> build the policy
> 'WS2007FederationHttpBinding_IStoreService_policy':sp:HttpsToken must have
> an inner wsp:Policy element
>     Exception in thread "main" java.lang.IllegalArgumentException:
> sp:HttpsToken must have an inner wsp:Policy element
>         at
> org.apache.wss4j.policy.builders.HttpsTokenBuilder.
> build(HttpsTokenBuilder.java:55)
>         at
> org.apache.wss4j.policy.builders.HttpsTokenBuilder.
> build(HttpsTokenBuilder.java:34)
>         at
> org.apache.neethi.AssertionBuilderFactoryImpl.invokeBuilder(
> AssertionBuilderFactoryImpl.java:138)
>         at
> org.apache.neethi.AssertionBuilderFactoryImpl.build(
> AssertionBuilderFactoryImpl.java:117)
>         at
> org.apache.neethi.PolicyBuilder.processOperationElement(
> PolicyBuilder.java:224)
>         at
> org.apache.neethi.PolicyBuilder.getPolicyOperator(PolicyBuilder.java:174)
>         at org.apache.neethi.PolicyBuilder.getPolicy(
> PolicyBuilder.java:108)
>         at
> org.apache.wss4j.policy.builders.TransportTokenBuilder.build(
> TransportTokenBuilder.java:41)
>         at
> org.apache.wss4j.policy.builders.TransportTokenBuilder.build(
> TransportTokenBuilder.java:34)
>         at
> org.apache.neethi.AssertionBuilderFactoryImpl.invokeBuilder(
> AssertionBuilderFactoryImpl.java:138)
>         at
> org.apache.neethi.AssertionBuilderFactoryImpl.build(
> AssertionBuilderFactoryImpl.java:117)
>         at
> org.apache.neethi.PolicyBuilder.processOperationElement(
> PolicyBuilder.java:224)
>         at
> org.apache.neethi.PolicyBuilder.getPolicyOperator(PolicyBuilder.java:174)
>         at org.apache.neethi.PolicyBuilder.getPolicy(
> PolicyBuilder.java:108)
>         at
> org.apache.wss4j.policy.builders.TransportBindingBuilder.build(
> TransportBindingBuilder.java:44)
>         at
> org.apache.wss4j.policy.builders.TransportBindingBuilder.build(
> TransportBindingBuilder.java:34)
>         at
> org.apache.neethi.AssertionBuilderFactoryImpl.invokeBuilder(
> AssertionBuilderFactoryImpl.java:138)
>         at
> org.apache.neethi.AssertionBuilderFactoryImpl.build(
> AssertionBuilderFactoryImpl.java:117)
>         at
> org.apache.neethi.PolicyBuilder.processOperationElement(
> PolicyBuilder.java:224)
>         at
> org.apache.neethi.PolicyBuilder.getAllOperator(PolicyBuilder.java:184)
>         at
> org.apache.neethi.PolicyBuilder.processOperationElement(
> PolicyBuilder.java:217)
>         at
> org.apache.neethi.PolicyBuilder.getExactlyOneOperator(
> PolicyBuilder.java:180)
>         at
> org.apache.neethi.PolicyBuilder.processOperationElement(
> PolicyBuilder.java:215)
>         at
> org.apache.neethi.PolicyBuilder.getPolicyOperator(PolicyBuilder.java:174)
>         at org.apache.neethi.PolicyBuilder.getPolicy(
> PolicyBuilder.java:124)
>         at
> org.apache.cxf.ws.policy.attachment.reference.
> LocalServiceModelReferenceResolver.resolveReference(
> LocalServiceModelReferenceResolver.java:53)
>         at
> org.apache.cxf.ws.policy.attachment.wsdl11.Wsdl11AttachmentPolicyProvider
> .resolveLocal(Wsdl11AttachmentPolicyProvider.java:292)
>         at
> org.apache.cxf.ws.policy.attachment.wsdl11.Wsdl11AttachmentPolicyProvider
> .resolveReference(Wsdl11AttachmentPolicyProvider.java:272)
>         at
> org.apache.cxf.ws.policy.attachment.wsdl11.Wsdl11AttachmentPolicyProvider
> .getElementPolicy(Wsdl11AttachmentPolicyProvider.java:220)
>         at
> org.apache.cxf.ws.policy.attachment.wsdl11.Wsdl11AttachmentPolicyProvider
> .getElementPolicy(Wsdl11AttachmentPolicyProvider.java:168)
>         at
> org.apache.cxf.ws.policy.attachment.wsdl11.Wsdl11AttachmentPolicyProvider
> .getElementPolicy(Wsdl11AttachmentPolicyProvider.java:161)
>         at
> org.apache.cxf.ws.policy.attachment.wsdl11.Wsdl11AttachmentPolicyProvider
> .getEffectivePolicy(Wsdl11AttachmentPolicyProvider.java:98)
>         at
> org.apache.cxf.ws.policy.PolicyEngineImpl.getAggregatedEndpointPolicy(
> PolicyEngineImpl.java:464)
>         at
> org.apache.cxf.ws.policy.EndpointPolicyImpl.initializePolicy(
> EndpointPolicyImpl.java:152)
>         at
> org.apache.cxf.ws.policy.EndpointPolicyImpl.initialize(
> EndpointPolicyImpl.java:140)
>         at
> org.apache.cxf.ws.policy.PolicyEngineImpl.createEndpointPolicyInfo(
> PolicyEngineImpl.java:604)
>         at
> org.apache.cxf.ws.policy.PolicyEngineImpl.getEndpointPolicy(
> PolicyEngineImpl.java:316)
>         at
> org.apache.cxf.ws.policy.PolicyEngineImpl.getClientEndpointPolicy(
> PolicyEngineImpl.java:303)
>         at
> org.apache.cxf.ws.policy.PolicyDataEngineImpl.getClientEndpointPolicy(
> PolicyDataEngineImpl.java:61)
>         at
> org.apache.cxf.transport.http.HTTPConduit.updateClientPolicy(
> HTTPConduit.java:318)
>         at
> org.apache.cxf.transport.http.HTTPConduit.updateClientPolicy(
> HTTPConduit.java:338)
>         at
> org.apache.cxf.transport.http.HTTPConduit.getClient(HTTPConduit.java:873)
>         at
> org.apache.cxf.transport.http.HTTPConduit.configureConduitFromEndpointIn
> fo(HTTPConduit.java:360)
>         at
> org.apache.cxf.transport.http.HTTPConduit.finalizeConfig(
> HTTPConduit.java:440)
>         at
> org.apache.cxf.transport.http.HTTPTransportFactory.getConduit(
> HTTPTransportFactory.java:242)
>         at
> org.apache.cxf.binding.soap.SoapTransportFactory.getConduit(
> SoapTransportFactory.java:226)
>         at
> org.apache.cxf.binding.soap.SoapTransportFactory.getConduit(
> SoapTransportFactory.java:233)
>         at
> org.apache.cxf.endpoint.AbstractConduitSelector.createConduit(
> AbstractConduitSelector.java:145)
>         at
> org.apache.cxf.endpoint.AbstractConduitSelector.getSelectedConduit(
> AbstractConduitSelector.java:107)
>         at
> org.apache.cxf.endpoint.UpfrontConduitSelector.selectConduit(
> UpfrontConduitSelector.java:77)
>         at
> org.apache.cxf.endpoint.ClientImpl.getConduit(ClientImpl.java:845)
>         at
> com.reputation.r4e.integrator.centershift.handler.
> CenterShiftServiceConfigurator.configure(CenterShiftServiceConfigurator
> .java:18)
>         at
> com.reputation.r4e.integrator.centershift.CentershiftSws2Client.
> createTestOperationManagerInstance(CentershiftSws2Client.java:52)
>         at
> com.reputation.r4e.integrator.centershift.CentershiftSws2Client.
> getService(CentershiftSws2Client.java:33)
>         at
> com.reputation.r4e.integrator.centershift.CentershiftSws2Client.main(
> CentershiftSws2Client.java:86)
>
> *Questions:*
>
> 1. Do we have any end-end document related to ws federation/ws*- security
> other than APACHE CXF document.?
> 2. Is my approach is right.?
> 3. How we need to communicate Microsoft Identity Server with APACHE CXF.?
> 4. Can any one provide a sample code related to this.?
>
> Can any one help me on this. I was stuck over here.
>
> Thanks & Regards, Arthur
>
>
>
>
>
> --
> View this message in context: http://cxf.547215.n5.nabble.
> com/WS-Federation-client-impl-with-CXF-tp5773261.html
> Sent from the cxf-user mailing list archive at Nabble.com.
>
>


-- 
Colm O hEigeartaigh

Talend Community Coder
http://coders.talend.com

Reply via email to