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

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

    This program and the accompanying materials are made available under the
    terms of the Eclipse Public License v. 2.0, which is available at
    http://www.eclipse.org/legal/epl-2.0.

    This Source Code may also be made available under the following Secondary
    Licenses when the conditions for such availability set forth in the
    Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
    version 2 with the GNU Classpath Exception, which is available at
    https://www.gnu.org/software/classpath/license.html.

    SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0

-->

<provider-config
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xmlns="http://java.oracle.com/xml/ns/jaspic"
     xsi:schemaLocation="http://java.oracle.com/xml/ns/jaspic provider-configuration.xsd">
   <provider-config-entry>
        <provider-class>com.sun.ts.tests.jaspic.tssv.config.TSAuthConfigProvider</provider-class>
        <properties version="1.0">
            <entry key="AuthStatus_SEND_SUCCESS">false</entry>
            <entry key="requestPolicy">USER_NAME_PASSWORD</entry>
        </properties>
        <message-layer>SOAP</message-layer>
        <app-context-id>null</app-context-id>
        <reg-description>TestSuite JSR 196 Config Provider</reg-description>
    </provider-config-entry>
   <provider-config-entry>
        <provider-class>com.sun.ts.tests.jaspic.tssv.config.TSAuthConfigProvider</provider-class>
        <properties version="1.0">
            <entry key="AuthStatus_SEND_SUCCESS">false</entry>
            <entry key="requestPolicy">USER_NAME_PASSWORD</entry>
        </properties>
        <message-layer>SOAP</message-layer>
        <app-context-id>Catalina/localhost /Hello_web/Hello</app-context-id>
        <reg-description>TestSuite JSR 196 Config Provider</reg-description>
    </provider-config-entry>
    <provider-config-entry>
        <provider-class>com.sun.ts.tests.jaspic.tssv.config.TSAuthConfigProviderServlet</provider-class>
        <properties version="1.0">
            <entry key="AuthStatus_SEND_SUCCESS">true</entry>
            <entry key="requestPolicy">USER_NAME_PASSWORD</entry>
        </properties>
        <message-layer>HttpServlet</message-layer>
        <app-context-id>Catalina/localhost /spitests_servlet_web</app-context-id>
        <reg-description>Registration for TSAuthConfigProviderServlet using spitests_servlet_web</reg-description>
    </provider-config-entry>
    <provider-config-entry>
        <provider-class>com.sun.ts.tests.jaspic.tssv.config.TSAuthConfigProviderServlet</provider-class>
        <properties version="1.0">
            <entry key="AuthStatus_SEND_SUCCESS">true</entry>
            <entry key="requestPolicy">USER_NAME_PASSWORD</entry>
        </properties>
        <message-layer>HttpServlet</message-layer>
        <app-context-id>Catalina/localhost /spitests_servlet_web/WrapperServlet</app-context-id>
        <reg-description>Registration for TSAuthConfigProviderServlet using spitests_servlet_web</reg-description>
    </provider-config-entry>
</provider-config>
