<?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.service.host</name>
		<value></value>
	</property>
	<property>
		<name>ranger.service.http.enabled</name>
		<value></value>
	</property>
	<property>
		<name>ranger.service.http.port</name>
		<value></value>
	</property>
	<property>
		<name>ranger.service.shutdown.port</name>
		<value></value>
	</property>
	<property>
		<name>ranger.service.shutdown.command</name>
		<value></value>
	</property>
	<property>
		<name>ranger.service.https.port</name>
		<value></value>
	</property>
	<property>
		<name>ranger.service.https.attrib.ssl.enabled</name>
		<value></value>
	</property>
	<property>
		<name>ranger.service.https.attrib.ssl.protocol</name>
		<value></value>
	</property>
	<property>
		<name>ranger.service.https.attrib.clientAuth</name>
		<value></value>
	</property>
	<property>
		<name>ranger.service.https.attrib.keystore.keyalias</name>
		<value></value>
	</property>
	<property>
		<name>ranger.service.https.attrib.keystore.pass</name>
		<value></value>
	</property>
	<property>
		<name>ranger.service.https.attrib.keystore.file</name>
		<value></value>
	</property>
	<property>
		<name>ranger.accesslog.dateformat</name>
		<value></value>
	</property>
	<property>
		<name>ranger.accesslog.pattern</name>
		<value></value>
	</property>
	<property>
		<name>ranger.externalurl</name>
		<value></value>
	</property>
	<property>
		<name>ranger.contextName</name>
		<value></value>
	</property>
	<property>
		<name>ranger.jpa.showsql</name>
		<value></value>
	</property>
	<property>
		<name>ranger.env.local</name>
		<value></value>
	</property>
	<property>
		<name>ranger.jpa.jdbc.dialect</name>
		<value></value>
	</property>
	<property>
		<name>ranger.jpa.jdbc.driver</name>
		<value></value>
	</property>
	<property>
		<name>ranger.jpa.jdbc.url</name>
		<value></value>
	</property>
	<property>
		<name>ranger.jpa.jdbc.user</name>
		<value></value>
	</property>
	<property>
		<name>ranger.jpa.jdbc.password</name>
		<value></value>
	</property>
	<property>
		<name>ranger.jpa.jdbc.maxpoolsize</name>
		<value></value>
	</property>
	<property>
		<name>ranger.jpa.jdbc.minpoolsize</name>
		<value></value>
	</property>
	<property>
		<name>ranger.jpa.jdbc.initialpoolsize</name>
		<value></value>
	</property>
	<property>
		<name>ranger.jpa.jdbc.maxidletime</name>
		<value></value>
	</property>
	<property>
		<name>ranger.jpa.jdbc.maxstatements</name>
		<value></value>
	</property>
	<property>
		<name>ranger.jpa.jdbc.preferredtestquery</name>
		<value></value>
	</property>
	<property>
		<name>ranger.jpa.jdbc.idleconnectiontestperiod</name>
		<value></value>
	</property>
	<property>
		<name>ranger.jpa.jdbc.credential.alias</name>
		<value></value>
	</property>
	<property>
		<name>ranger.jpa.jdbc.credential.provider.path</name>
		<value></value>
	</property>
	<property>
		<name>ranger.logs.base.dir</name>
		<value></value>
	</property>
	<property>
		<name>ranger.scheduler.enabled</name>
		<value></value>
	</property>
	<property>
		<name>ranger.audit.source.type</name>
		<value></value>
	</property>
	<property>
		<name>ranger.audit.solr.urls</name>
		<value></value>
	</property>
	<property>
		<name>ranger.jpa.audit.jdbc.dialect</name>
		<value></value>
	</property>
	<property>
		<name>ranger.jpa.audit.jdbc.driver</name>
		<value></value>
	</property>
	<property>
		<name>ranger.jpa.audit.jdbc.url</name>
		<value></value>
	</property>
	<property>
		<name>ranger.jpa.audit.jdbc.user</name>
		<value></value>
	</property>
	<property>
		<name>ranger.jpa.audit.jdbc.password</name>
		<value></value>
	</property>
	<property>
		<name>ranger.jpa.audit.jdbc.credential.alias</name>
		<value></value>
	</property>
	<property>
		<name>ranger.jpa.audit.jdbc.credential.provider.path</name>
		<value></value>
	</property>
	<property>
		<name>ranger.authentication.method</name>
		<value></value>
	</property>
	<property>
		<name>ranger.ldap.url</name>
		<value></value>
	</property>
	<property>
		<name>ranger.ldap.user.dnpattern</name>
		<value></value>
	</property>
	<property>
		<name>ranger.ldap.group.searchbase</name>
		<value></value>
	</property>
	<property>
		<name>ranger.ldap.group.searchfilter</name>
		<value></value>
	</property>
	<property>
		<name>ranger.ldap.group.roleattribute</name>
		<value></value>
	</property>
	<property>
		<name>ranger.ldap.ad.domain</name>
		<value></value>
	</property>
	<property>
		<name>ranger.ldap.ad.url</name>
		<value></value>
	</property>
</configuration>
