<?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.

-->
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:osgi="http://www.springframework.org/schema/osgi"
       xmlns:util="http://www.springframework.org/schema/util"
       xsi:schemaLocation="
  http://www.springframework.org/schema/beans
  http://www.springframework.org/schema/beans/spring-beans.xsd
  http://www.springframework.org/schema/util
  http://www.springframework.org/schema/util/spring-util.xsd
  http://www.springframework.org/schema/osgi
  http://www.springframework.org/schema/osgi/spring-osgi.xsd">

    <bean id="config"
          class="org.apache.felix.karaf.jaas.config.impl.OsgiConfiguration"
          init-method="init"
          destroy-method="close"/>

    <osgi:list id="realms"
               interface="org.apache.felix.karaf.jaas.config.JaasRealm"
               cardinality="0..N">
        <osgi:listener ref="config" bind-method="register" unbind-method="unregister" />
    </osgi:list>

    <bean id="proxyLoginModuleInitializer"
          class="org.apache.felix.karaf.jaas.config.impl.ProxyLoginModuleInitializer"
          init-method="init">
        <property name="bundleContext" ref="bundleContext"/>
    </bean>

    <!-- Register the Straight-Through flow -->
    <bean id="keystoreManager" class="org.apache.felix.karaf.jaas.config.impl.OsgiKeystoreManager" />
    <osgi:service ref="keystoreManager">
        <osgi:interfaces>
            <value>org.apache.felix.karaf.jaas.config.KeystoreManager</value>
        </osgi:interfaces>
    </osgi:service>

    <osgi:list id="keystores"
               interface="org.apache.felix.karaf.jaas.config.KeystoreInstance"
               cardinality="0..N">
        <osgi:listener ref="keystoreManager" bind-method="register" unbind-method="unregister" />
    </osgi:list>

</beans>
