<?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.
-->
<configuration>
  <property>
    <name>ranger.jpa.jdbc.driver</name>
    <value>org.postgresql.Driver</value>
    <description/>
  </property>
  <property>
    <name>ranger.jpa.jdbc.url</name>
    <value>jdbc:postgresql://localhost/${RANGER_POLICY_DB}</value>
    <description/>
  </property>
  <property>
    <name>ranger.jpa.jdbc.user</name>
    <value>hiveuser</value>
    <description/>
  </property>
  <property>
    <name>ranger.jpa.jdbc.password</name>
    <value>password</value>
    <description/>
  </property>
  <property>
    <name>ranger.externalurl</name>
    <value>http://localhost:6080</value>
    <description/>
  </property>
  <property>
    <name>ranger.scheduler.enabled</name>
    <value>true</value>
    <description/>
  </property>
  <property>
    <name>ranger.audit.solr.urls</name>
    <value>http://localhost:6083/solr/ranger_audits</value>
    <description/>
  </property>
  <property>
    <name>ranger.audit.source.type</name>
    <value>db</value>
    <description/>
  </property>

  <property>
    <name>ranger.service.http.enabled</name>
    <value>true</value>
    <description/>
  </property>
  <property>
    <name>ranger.authentication.method</name>
    <value>NONE</value>
    <description/>
  </property>
  <property>
    <name>ranger.ldap.url</name>
    <value>ldap://</value>
    <description/>
  </property>
  <property>
    <name>ranger.ldap.user.dnpattern</name>
    <value>uid={0},ou=users,dc=xasecure,dc=net</value>
    <description/>
  </property>
  <property>
    <name>ranger.ldap.group.searchbase</name>
    <value>ou=groups,dc=xasecure,dc=net</value>
    <description/>
  </property>
  <property>
    <name>ranger.ldap.group.searchfilter</name>
    <value>(member=uid={0},ou=users,dc=xasecure,dc=net)</value>
    <description/>
  </property>
  <property>
    <name>ranger.ldap.group.roleattribute</name>
    <value>cn</value>
    <description/>
  </property>
  <property>
    <name>ranger.ldap.base.dn</name>
    <value/>
    <description>LDAP base dn or search base</description>
  </property>
  <property>
    <name>ranger.ldap.bind.dn</name>
    <value/>
    <description>LDAP bind dn or manager dn</description>
  </property>
  <property>
    <name>ranger.ldap.bind.password</name>
    <value/>
    <description>LDAP bind password</description>
  </property>
  <property>
    <name>ranger.ldap.default.role</name>
    <value>ROLE_USER</value>
  </property>
  <property>
    <name>ranger.ldap.referral</name>
    <value/>
    <description>follow or ignore</description>
  </property>
  <property>
    <name>ranger.ldap.ad.domain</name>
    <value>example.com</value>
    <description/>
  </property>
  <property>
    <name>ranger.ldap.ad.url</name>
    <value/>
    <description>ldap://</description>
  </property>

  <property>
    <name>ranger.ldap.ad.base.dn</name>
    <value>dc=example,dc=com</value>
    <description>AD base dn or search base</description>
  </property>
  <property>
    <name>ranger.ldap.ad.bind.dn</name>
    <value>cn=administrator,ou=users,dc=example,dc=com</value>
    <description>AD bind dn or manager dn</description>
  </property>
  <property>
    <name>ranger.ldap.ad.bind.password</name>
    <value/>
    <description>AD bind password</description>
  </property>

  <property>
    <name>ranger.ldap.ad.referral</name>
    <value/>
    <description>follow or ignore</description>
  </property>
  <property>
    <name>ranger.service.https.attrib.ssl.enabled</name>
    <value>false</value>
  </property>

  <property>
    <name>ranger.service.https.attrib.keystore.keyalias</name>
    <value>myKey</value>
  </property>

  <property>
    <name>ranger.service.https.attrib.keystore.pass</name>
    <value>_</value>
  </property>

  <property>
    <name>ranger.service.host</name>
    <value>localhost</value>
  </property>

  <property>
    <name>ranger.service.http.port</name>
    <value>6080</value>
  </property>

  <property>
    <name>ranger.service.https.port</name>
    <value>6182</value>
  </property>

  <property>
    <name>ranger.service.https.attrib.keystore.file</name>
    <value>/etc/ranger/admin/keys/server.jks</value>
  </property>

  <property>
    <name>ranger.solr.audit.user</name>
    <value/>
    <description/>
  </property>
  <property>
    <name>ranger.solr.audit.user.password</name>
    <value/>
    <description/>
  </property>
  <property>
    <name>ranger.audit.solr.zookeepers</name>
    <value/>
    <description/>
  </property>
  <property>
    <name>ranger.ldap.user.searchfilter</name>
    <value>(uid={0})</value>
    <description/>
  </property>
  <property>
    <name>ranger.ldap.ad.user.searchfilter</name>
    <value>(sAMAccountName={0})</value>
    <description/>
  </property>

  <property>
    <name>ranger.sso.providerurl</name>
    <value>https://127.0.0.1:8443/gateway/knoxsso/api/v1/websso</value>
  </property>
  <property>
    <name>ranger.sso.publicKey</name>
    <value/>
  </property>
  <property>
    <name>ranger.sso.enabled</name>
    <value>false</value>
  </property>
  <property>
    <name>ranger.sso.browser.useragent</name>
    <value>Mozilla,chrome</value>
  </property>

  <property>
    <name>ranger.admin.kerberos.token.valid.seconds</name>
    <value>30</value>
  </property>
  <property>
    <name>ranger.admin.kerberos.cookie.domain</name>
    <value/>
  </property>
  <property>
    <name>ranger.admin.kerberos.cookie.path</name>
    <value>/</value>
  </property>
  <property>
    <name>ranger.admin.kerberos.principal</name>
    <value>rangeradmin/_HOST@REALM</value>
  </property>
  <property>
    <name>ranger.admin.kerberos.keytab</name>
    <value/>
  </property>
  <property>
    <name>ranger.spnego.kerberos.principal</name>
    <value>HTTP/_HOST@REALM</value>
  </property>
  <property>
    <name>ranger.spnego.kerberos.keytab</name>
    <value/>
  </property>
  <property>
    <name>ranger.lookup.kerberos.principal</name>
    <value>rangerlookup/_HOST@REALM</value>
  </property>
  <property>
    <name>ranger.lookup.kerberos.keytab</name>
    <value/>
  </property>

  <property>
    <name>ranger.supportedcomponents</name>
    <value/>
  </property>
  <property>
    <name>ranger.downloadpolicy.session.log.enabled</name>
    <value>false</value>
  </property>

  <property>
    <name>ranger.kms.service.user.hdfs</name>
    <value>hdfs</value>
  </property>
  <property>
    <name>ranger.kms.service.user.hive</name>
    <value>hive</value>
  </property>

  <property>
    <name>ranger.audit.hive.query.visibility</name>
    <value>true</value>
    <description/>
  </property>
  <property>
    <name>ranger.service.https.attrib.keystore.credential.alias</name>
    <value>keyStoreCredentialAlias</value>
  </property>
  <property>
    <name>ranger.tomcat.ciphers</name>
    <value/>
  </property>
</configuration>