<?xml version="1.0" encoding="UTF-8"?>
<!--
  ~ Copyright 2016 Red Hat, Inc. and/or its affiliates
  ~ and other contributors as indicated by the @author tags.
  ~
  ~ 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.
  -->

<web-app xmlns="http://java.sun.com/xml/ns/javaee"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
      version="3.0">

	<module-name>auth</module-name>

    <servlet>
        <servlet-name>Keycloak REST Interface</servlet-name>
        <servlet-class>org.jboss.resteasy.plugins.server.servlet.HttpServlet30Dispatcher</servlet-class>
        <init-param>
            <param-name>javax.ws.rs.Application</param-name>
            <param-value>org.keycloak.services.resources.KeycloakApplication</param-value>
        </init-param>
        <init-param>
            <param-name>resteasy.servlet.mapping.prefix</param-name>
            <param-value>/</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
        <async-supported>true</async-supported>
    </servlet>

    <listener>
        <listener-class>org.keycloak.services.listeners.KeycloakSessionDestroyListener</listener-class>
    </listener>

    <filter>
        <filter-name>Keycloak Session Management</filter-name>
        <filter-class>org.keycloak.services.filters.KeycloakSessionServletFilter</filter-class>
        <async-supported>true</async-supported>
    </filter>

    <filter-mapping>
        <filter-name>Keycloak Session Management</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

    <servlet-mapping>
        <servlet-name>Keycloak REST Interface</servlet-name>
        <url-pattern>/*</url-pattern>
    </servlet-mapping>

    <resource-env-ref>
        <resource-env-ref-name>infinispan/Keycloak</resource-env-ref-name>
        <resource-env-ref-type>org.infinispan.manager.EmbeddedCacheManager</resource-env-ref-type>
        <lookup-name>java:jboss/infinispan/container/keycloak</lookup-name>
    </resource-env-ref>
</web-app>
