<?xml version="1.0" encoding="utf-8"?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->
<topology>
    <gateway>
        <provider>
            <role>federation</role>
            <name>pac4j</name>
            <enabled>true</enabled>
            <param>
                <name>pac4j.callbackUrl</name>
                <value>https://127.0.0.1:8443/gateway/knoxsso/api/v1/websso</value>
            </param>
            <param>
                <name>clientName</name>
                <value>SAML2Client</value>
            </param>
            <param>
                <name>saml.identityProviderMetadataPath</name>
                <value>/tmp/idp-metadata.xml</value>
            </param>
            <param>
                <name>saml.serviceProviderEntityId</name>
                <value>https://127.0.0.1:8443/gateway/knoxsso/api/v1/websso?pac4jCallback=true&amp;client_name=SAML2Client</value>
            </param>
            <!--param>
                <name>cas.loginUrl</name>
                <value>https://casserverpac4j.herokuapp.com/login</value>
            </param-->
        </provider>

        <provider>
            <role>identity-assertion</role>
            <name>Default</name>
            <enabled>true</enabled>
            <param>
              <name>principal.mapping</name>
              <value>guest@example.com=guest;</value>
            </param>
        </provider>

    </gateway>

    <service>
        <role>KNOXSSO</role>
        <param>
            <name>knoxsso.cookie.secure.only</name>
            <value>true</value>
        </param>
        <param>
            <name>knoxsso.token.ttl</name>
            <value>100000</value>
        </param>
        <param>
           <name>knoxsso.redirect.whitelist.regex</name>
           <value>^https?:\/\/(localhost|127\.0\.0\.1|0:0:0:0:0:0:0:1|::1):[0-9].*$</value>
        </param>
    </service>

</topology>
