<infinispan
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="urn:infinispan:config:13.0 https://infinispan.org/schemas/infinispan-config-13.0.xsd
                            urn:infinispan:server:13.0 https://infinispan.org/schemas/infinispan-server-13.0.xsd"
        xmlns="urn:infinispan:config:13.0"
        xmlns:server="urn:infinispan:server:13.0">

    <cache-container name="local" default-cache="default" statistics="true">
        <global-state/>
        <metrics accurate-size="true"/>
        <security>
            <authorization/>
        </security>
        <local-cache name="default">
            <encoding media-type="text/plain"/>
            <locking acquire-timeout="30000" concurrency-level="1000"/>
        </local-cache>
        <local-cache name="memcachedCache">
            <encoding media-type="text/plain"/>
            <locking acquire-timeout="30000" concurrency-level="1000" />
        </local-cache>
        <local-cache name="namedCache">
            <encoding media-type="text/plain"/>
        </local-cache>
    </cache-container>

    <server xmlns="urn:infinispan:server:13.0">
        <interfaces>
            <interface name="public">
                <inet-address value="${infinispan.bind.address:127.0.0.1}"/>
            </interface>
        </interfaces>

        <socket-bindings default-interface="public" port-offset="${infinispan.socket.binding.port-offset:0}">
            <socket-binding name="default" port="${infinispan.bind.port:11622}" />
            <socket-binding name="hotrod-trust" port="11232" />
        </socket-bindings>

        <security>
            <credential-stores>
                <credential-store name="credentials" path="server.p12" relative-to="infinispan.server.config.path">
                    <clear-text-credential clear-text="secret"/>
                </credential-store>
            </credential-stores>
            <security-realms>
                <security-realm name="default">
                    <server-identities>
                        <ssl>
                            <keystore path="server.p12" password="secret" alias="server"/>
                        </ssl>
                    </server-identities>
                    <properties-realm groups-attribute="Roles">
                        <user-properties path="users.properties"/>
                        <group-properties path="groups.properties"/>
                    </properties-realm>
                </security-realm>
                <security-realm name="client-cert">
                    <server-identities>
                        <ssl>
                            <keystore path="server.p12" password="secret" alias="server"/>
                        </ssl>
                    </server-identities>
                    <properties-realm groups-attribute="Roles">
                        <user-properties path="users.properties"/>
                        <group-properties path="groups.properties"/>
                    </properties-realm>
                    <!--truststore-realm path="client.p12" password="secret"/-->
                </security-realm>
                <security-realm name="Trust1Realm">
                    <server-identities>
                        <ssl>
                            <keystore path="trust1.p12" password="secret"/>
                        </ssl>
                    </server-identities>
                </security-realm>
                <security-realm name="Trust2Realm">
                    <server-identities>
                        <ssl>
                            <keystore path="trust2.p12" password="secret"/>
                        </ssl>
                    </server-identities>
                </security-realm>
                <security-realm name="UntrustRealm">
                    <server-identities>
                        <ssl>
                            <keystore path="untrust.p12" password="secret"/>
                        </ssl>
                    </server-identities>
                </security-realm>
            </security-realms>
        </security>

        <endpoints>
            <endpoint socket-binding="default" security-realm="default">
                <hotrod-connector>
                    <authentication>
                        <sasl mechanisms="PLAIN"
                              server-name="infinispan"/>
                    </authentication>
                </hotrod-connector>
                <rest-connector/>
            </endpoint>
            <endpoint socket-binding="hotrod-trust" security-realm="client-cert">
                <hotrod-connector>
                    <authentication>
                        <sasl mechanisms="PLAIN"
                              server-name="infinispan"/>
                    </authentication>
                </hotrod-connector>
                <rest-connector/>
            </endpoint>
        </endpoints>

    </server>
</infinispan>
