<?xml version="1.0" encoding="utf-8"?>
<!--

    Copyright (c) 1997, 2018 Oracle and/or its affiliates. All rights reserved.

    This program and the accompanying materials are made available under the
    terms of the Eclipse Distribution License v. 1.0, which is available at
    http://www.eclipse.org/org/documents/edl-v10.php.

    SPDX-License-Identifier: BSD-3-Clause

-->

<wsdl:definitions targetNamespace="http://tempuri.org/" 
                  xmlns:tns="http://tempuri.org/" 
                  xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"  
                  xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" 
                  xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy" 
                  xmlns:wsap="http://www.w3.org/2006/05/addressing/wsdl" 
                  xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
                  xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" 
                  xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap12/">
    <wsp:Policy wsu:Id="ClientKeystorePolicy" 
      xmlns:sc="http://schemas.sun.com/2006/03/wss/client" 
      xmlns:wspp="http://java.sun.com/xml/ns/wsit/policy" 
      xmlns:scc="http://schemas.sun.com/ws/2006/05/sc/client" >
        <wsp:ExactlyOne>
            <wsp:All>
                <sc:KeyStore wspp:visibility="private" location="$WSIT_HOME/xws-security/etc/client-keystore.jks" type="JKS" alias="alice" storepass="changeit"></sc:KeyStore>
                <sc:TrustStore wspp:visibility="private" location="$WSIT_HOME/xws-security/etc/client-truststore.jks" type="JKS" storepass="changeit" peeralias="bob"></sc:TrustStore>
                <sc:CallbackHandlerConfiguration wspp:visibility="private">
                    <sc:CallbackHandler name="samlHandler" classname="common.SamlCallbackHandler"/>
                </sc:CallbackHandlerConfiguration>
            </wsp:All>
        </wsp:ExactlyOne>
    </wsp:Policy>
    
    <wsp:Policy wsu:Id="STSClientKeystorePolicy" 
      xmlns:sc="http://schemas.sun.com/2006/03/wss/client" 
      xmlns:wspp="http://java.sun.com/xml/ns/wsit/policy" 
      xmlns:scc="http://schemas.sun.com/ws/2006/05/sc/client" >
        <wsp:ExactlyOne>
            <wsp:All>
                <sc:KeyStore wspp:visibility="private" location="$WSIT_HOME/xws-security/etc/client-keystore.jks" type="JKS" alias="alice" storepass="changeit"></sc:KeyStore>
                <sc:TrustStore wspp:visibility="private" location="$WSIT_HOME/xws-security/etc/client-truststore.jks" type="JKS" storepass="changeit" peeralias="wssip"></sc:TrustStore>
           
                 <sc:CallbackHandlerConfiguration xmlns:sc="http://schemas.sun.com/2006/03/wss/client">
                    <sc:CallbackHandler  name="usernameHandler"  classname="common.SampleUsernamePasswordCallbackHandler"/> 
                    <sc:CallbackHandler  name="passwordHandler"  classname="common.SampleUsernamePasswordCallbackHandler"/>
                </sc:CallbackHandlerConfiguration>
            </wsp:All>
        </wsp:ExactlyOne>
    </wsp:Policy>
    
    <wsp:Policy wsu:Id="STSValidatePolicy" 
      xmlns:sc="http://schemas.sun.com/2006/03/wss/client" 
      xmlns:wspp="http://java.sun.com/xml/ns/wsit/policy" 
      xmlns:scc="http://schemas.sun.com/ws/2006/05/sc/client" >
        <wsp:ExactlyOne>
            <wsp:All>
         
                <sc:TrustStore wspp:visibility="private" location="$WSIT_HOME/xws-security/etc/client-truststore.jks" type="JKS" storepass="changeit" peeralias="wssip"></sc:TrustStore>
            </wsp:All>
        </wsp:ExactlyOne>
    </wsp:Policy>
    <wsdl:types>
        <xsd:schema targetNamespace="http://xmlsoap.org/DAB/Imports">
            <xsd:import schemaLocation="Service_schema.xsd" namespace="http://xmlsoap.org/DAB"/>
        </xsd:schema>
    </wsdl:types>
        
    <wsdl:message name="DABRequest">
            <wsdl:part name="Department" element="q:Department" xmlns:q="http://xmlsoap.org/DAB"/>
        </wsdl:message>
        <wsdl:message name="DABResponse">
            <wsdl:part name="AccountBalance" element="q:AccountBalance" xmlns:q="http://xmlsoap.org/DAB"/>
        </wsdl:message>
    
    <wsdl:message name="ISecurityTokenService_IssueToken_InputMessage">
        <wsdl:part name="rstMessage" element="q1:MessageBody" xmlns:q1="http://schemas.message.com/Message"/>
    </wsdl:message>
    <wsdl:message name="ISecurityTokenService_IssueToken_OutputMessage">
        <wsdl:part name="IssueTokenResult" element="q2:MessageBody" xmlns:q2="http://schemas.message.com/Message"/>
    </wsdl:message>
    
    <wsdl:message name="ISecurityTokenService_ValidateToken_InputMessage">
	<wsdl:part name="rstMessage" type="q1:MessageBody" xmlns:q1="http://schemas.message.com/Message"/>
    </wsdl:message>
    <wsdl:message name="ISecurityTokenService_ValidateToken_OutputMessage">
	<wsdl:part name="ValidateTokenResult" type="q2:MessageBody" xmlns:q2="http://schemas.message.com/Message"/>
    </wsdl:message>
        
    <wsdl:portType name="IFinancialService">
            <wsdl:operation name="getAccountBalance">
                <wsdl:input wsap:Action="http://xmlsoap.org/DAB" name="DABRequest" message="tns:DABRequest"/>
                <wsdl:output wsap:Action="http://xmlsoap.org/DAB" name="DABResponse" message="tns:DABResponse"/>
            </wsdl:operation>
        </wsdl:portType>
    
    <wsdl:portType name="ISecurityTokenService">
		<wsdl:operation name="IssueToken">
			<wsdl:input wsap:Action="http://schemas.xmlsoap.org/ws/2005/02/trust/RST/Issue" message="tns:ISecurityTokenService_IssueToken_InputMessage"/>
			<wsdl:output wsap:Action="http://schemas.xmlsoap.org/ws/2005/02/trust/RSTR/Issue" message="tns:ISecurityTokenService_IssueToken_OutputMessage"/>
		</wsdl:operation>
    </wsdl:portType>
    
    <wsdl:portType name="ISecurityTokenService_Validate">
		<wsdl:operation name="ValidateToken">
			<wsdl:input wsap:Action="http://schemas.xmlsoap.org/ws/2005/02/trust/RST/Validate" message="tns:ISecurityTokenService_ValidateToken_InputMessage"/>
			<wsdl:output wsap:Action="http://schemas.xmlsoap.org/ws/2005/02/trust/RSTR/Validate" message="tns:ISecurityTokenService_ValidateToken_OutputMessage"/>
		</wsdl:operation>
	</wsdl:portType>
    
    <wsdl:binding name="IFinancialService_Binding" type="tns:IFinancialService">
		<wsp:PolicyReference URI="#ClientKeystorePolicy"/>
		<soap:binding transport="http://schemas.xmlsoap.org/soap/http"/>
		<wsdl:operation name="getAccountBalance">
			<soap:operation soapAction="http://xmlsoap.org/DAB" style="document"/>
			<wsdl:input name="DABRequest">
				<soap:body use="literal"/>
			</wsdl:input>
			<wsdl:output name="DABResponse">
				<soap:body use="literal"/>
			</wsdl:output>
		</wsdl:operation>
	</wsdl:binding>

    <wsdl:binding name="ISecurityTokenService_Binding" type="tns:ISecurityTokenService">
		<wsp:PolicyReference URI="#STSClientKeystorePolicy"/>
		<soap:binding transport="http://schemas.xmlsoap.org/soap/http"/>
		<wsdl:operation name="IssueToken">
			<soap:operation soapAction="http://schemas.xmlsoap.org/ws/2005/02/trust/RST/Issue" style="document"/>
			<wsdl:input>
				<soap:body use="literal"/>
			</wsdl:input>
			<wsdl:output>
				<soap:body use="literal"/>
			</wsdl:output>
		</wsdl:operation>
	</wsdl:binding>
        
        <wsdl:binding name="ISecurityTokenService_Validate_Binding" type="tns:ISecurityTokenService_Validate">
		<wsp:PolicyReference URI="#STSValidatePolicy"/>
		<soap:binding transport="http://schemas.xmlsoap.org/soap/http"/>
		<wsdl:operation name="ValidateToken">
			<soap:operation soapAction="http://schemas.xmlsoap.org/ws/2005/02/trust/RST/Validate" style="document"/>
			<wsdl:input>
				<soap:body use="literal"/>
			</wsdl:input>
			<wsdl:output>
				<soap:body use="literal"/>
			</wsdl:output>
		</wsdl:operation>
	</wsdl:binding>
   
   <wsdl:service name="SecurityTokenService">
                <wsdl:port name="ISecurityTokenService_Port" binding="tns:ISecurityTokenService_Binding">
			<soap:address location="http://localhost:8080/jaxws-fs-sts/sts"/>
		</wsdl:port>
		<wsdl:port name="ISecurityTokenService_Validate_Port" binding="tns:ISecurityTokenService_Validate_Binding">
			<soap:address location="http://localhost:8080/jaxws-fs-sts/sts/validate"/>
		</wsdl:port>
   </wsdl:service>
   
   <wsdl:service name="FinancialService">
		<wsdl:port name="IFinancialService_Port" binding="tns:IFinancialService_Binding">
			<soap:address location="http://localhost:8080/jaxws-fs/simple"/>
		</wsdl:port>
	</wsdl:service>
</wsdl:definitions>


