<!--
  Licensed 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. See accompanying LICENSE file.
-->


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

	<property>
		<name>ranger.service.http.port</name>
		<value>9292</value>
	</property>
	
	<property>
		<name>ranger.service.shutdown.port</name>
		<value>7085</value>
	</property>
	
	<property>
		<name>ranger.contextName</name>
		<value>/kms</value>
	</property>			
	
	<property>
		<name>xa.webapp.dir</name>
		<value>./webapp</value>
	</property>	
	<property>
		<name>ranger.service.https.port</name>
		<value>9393</value>
	</property>
	<property>
		<name>ranger.service.https.attrib.ssl.enabled</name>
		<value>false</value>
	</property>
	<property>
		<name>ajp.enabled</name>
		<value>false</value>
	</property>
	<property>
		<name>ranger.service.https.attrib.client.auth</name>
		<value>want</value>
	</property>
	<property>
		<name>ranger.credential.provider.path</name>
		<value>/etc/ranger/kms/rangerkms.jceks</value>
	</property>
	<property>
		<name>ranger.service.https.attrib.keystore.file</name>
		<value></value>
	</property>
	<property>
		<name>ranger.service.https.attrib.keystore.keyalias</name>
		<value>rangerkms</value>
	</property>
	<property>
		<name>ranger.service.https.attrib.keystore.pass</name>
		<value></value>
	</property>
	<property>
		<name>ranger.service.https.attrib.keystore.credential.alias</name>
		<value>keyStoreCredentialAlias</value>
	</property>

</configuration>
