<?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.
-->

<ldap>
    <!-- common configuration -->
    <Attribute>uid=%u</Attribute>
    <AuthenType>simple</AuthenType>
    <AuthenticationHandler>org.apache.ofbiz.ldap.cas.OFBizCasAuthenticationHandler</AuthenticationHandler>
    <AutoPartyId>admin</AutoPartyId>
    <AutoSecurityGroupId>FULLADMIN</AutoSecurityGroupId>
    <BaseDN>o=ofbiz,o=org</BaseDN>
    <Filter>(objectclass=*)</Filter>
    <Scope>sub</Scope>
    <URL>ldap://localhost:389</URL>
    <UseOFBizLoginWhenLDAPFail>true</UseOFBizLoginWhenLDAPFail>

    <!-- for CAS-LDAP -->
    <CasLoginUri>/login</CasLoginUri>
    <CasLogoutUri>/logout</CasLogoutUri>
    <CasUrl>https://localhost:8443/cas</CasUrl>
    <CasValidateUri>/validate</CasValidateUri>
    <CasLdapHandler>org.apache.ofbiz.ldap.openldap.OFBizLdapAuthenticationHandler</CasLdapHandler>
    <CasTGTCookieName>CASTGC</CasTGTCookieName>

    <!-- for MS Active Directory -->
    <SearchType/>
    <UserDNForSearch/>
    <PasswordForSearch/>
</ldap>
