<?xml version="1.0" encoding="UTF-8"?>
<!--
  ~~~~~~licensing~~~~~~
  jaas
  ==========
  Copyright (C) 2020 - 2026 EmDev LLC
  ==========
  You may not use this file except in accordance with the License Terms of the Copyright
  Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property
  rights to the Software and any copies are the property of the Copyright Holder. Unless
  it is explicitly allowed the Copyright Holder, the User is prohibited from using the
  Software for commercial purposes to provide services to third parties.
  
  The Copyright Holder hereby declares that the Software is provided on an "AS IS".
  Under no circumstances does the Copyright Holder guarantee or promise that the
  Software provided by him will be suitable or not suitable for the specific purposes
  of the User, that the Software will meet all commercial and personal subjective
  expectations of the User, that the Software will work properly, without technical
  errors, quickly and uninterruptedly.
  
  Under no circumstances shall the Copyright Holder or its Affiliates is not liable
  to the User for any direct or indirect losses of the User, his expenses or actual
  damage, including, downtime; loss of bussines; lost profit; lost earnings; loss
  or damage to data, property, etc.
  ~~~~~~/licensing~~~~~~
  -->
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0" xmlns:ext="http://aries.apache.org/blueprint/xmlns/blueprint-ext/v1.0.0" xmlns:jaas="http://karaf.apache.org/xmlns/jaas/v1.1.0"><manifest xmlns="http://karaf.apache.org/xmlns/deployer/blueprint/v1.0.0">Manifest-Version: 1.0
    Bundle-ManifestVersion: 2
    DynamicImport-Package: *
    Entaxy-Bundle: true
    Entaxy-Runtime: true
    Entaxy-Generated-Object-Configuration: eyJvYmplY3RJZCI6ImthcmFmIiwiZmFjdG9yeUlkIjoiamFhcy1yZWFsbSIsInR5cGUiOiJlbnRheHkuc2VjdXJpdHkuamFhcy5yZWFsbSIsInNjb3BlIjoicHVibGljIiwicHJvcGVydGllcyI6eyJyYW5rIjoxMDAsIm1vZHVsZXMiOlt7ImlzUmVmIjp0cnVlLCJ0YXJnZXRVdWlkIjoiMGZiYjIwM2UtNzQ1NS00ZDg1LTk0MDktYjI3NTQ1N2JiZWY3IiwiZmFjdG9yeUlkIjoicHJvcGVydGllcy1qYWFzLWxvZ2luLW1vZHVsZSIsInNjb3BlIjoicHJpdmF0ZSIsImlzUmVzb2x2ZWQiOnRydWUsInJlc29sdmVBbHdheXMiOmZhbHNlLCJpc0JhY2tSZWYiOmZhbHNlLCJpc0xpbmsiOnRydWUsIkBBVVRPQ1JFQVRFRCI6dHJ1ZSwiX191dWlkX18iOiI3NGVkNTc3OC1iM2VmLTRmMTktYjEyMi0xN2MyNjEyYjc5NTQiLCJpc0V4dGVybmFsIjpmYWxzZSwidGFyZ2V0SWQiOiJrYXJhZi5wcm9wZXJ0aWVzLWphYXMtbG9naW4tbW9kdWxlLmthcmFmLXByb3BlcnRpZXMiLCJ0YXJnZXRUeXBlIjoiZW50YXh5LnNlY3VyaXR5LmphYXMubG9naW5tb2R1bGUifSx7ImlzUmVmIjp0cnVlLCJ0YXJnZXRVdWlkIjoiZjFjNzMzNzYtMGExOS00NTk1LWFhYjEtYjc5NzcwMGViZDAzIiwiZmFjdG9yeUlkIjoicHVibGlja2V5LWphYXMtbG9naW4tbW9kdWxlIiwic2NvcGUiOiJwcml2YXRlIiwiaXNSZXNvbHZlZCI6dHJ1ZSwicmVzb2x2ZUFsd2F5cyI6ZmFsc2UsImlzQmFja1JlZiI6ZmFsc2UsImlzTGluayI6dHJ1ZSwiQEFVVE9DUkVBVEVEIjp0cnVlLCJfX3V1aWRfXyI6IjhiZDJmM2UxLTgwNjMtNGI1Mi1iMDYwLWMzMDkyMmI2MTU4MSIsImlzRXh0ZXJuYWwiOmZhbHNlLCJ0YXJnZXRJZCI6ImthcmFmLnB1YmxpY2tleS1qYWFzLWxvZ2luLW1vZHVsZS5rYXJhZi1wdWJsaWNrZXkiLCJ0YXJnZXRUeXBlIjoiZW50YXh5LnNlY3VyaXR5LmphYXMubG9naW5tb2R1bGUifSx7ImlzUmVmIjp0cnVlLCJ0YXJnZXRVdWlkIjoiYWE3Y2Q4YmMtMWZlZi00MWE0LTgxNmYtMTczM2MyZWI0NzkwIiwiZmFjdG9yeUlkIjoiZmlsZS1hdWRpdC1qYWFzLWxvZ2luLW1vZHVsZSIsInNjb3BlIjoicHJpdmF0ZSIsImlzUmVzb2x2ZWQiOnRydWUsInJlc29sdmVBbHdheXMiOmZhbHNlLCJpc0JhY2tSZWYiOmZhbHNlLCJpc0xpbmsiOnRydWUsIkBBVVRPQ1JFQVRFRCI6dHJ1ZSwiX191dWlkX18iOiJhNmVjZTY2OS1hY2NiLTQzMmYtYWM2Zi1kMzVkYjBmZjgyMTMiLCJpc0V4dGVybmFsIjpmYWxzZSwidGFyZ2V0SWQiOiJrYXJhZi5maWxlLWF1ZGl0LWphYXMtbG9naW4tbW9kdWxlLmthcmFmLWZpbGUtYXVkaXQiLCJ0YXJnZXRUeXBlIjoiZW50YXh5LnNlY3VyaXR5LmphYXMubG9naW5tb2R1bGUifSx7ImlzUmVmIjp0cnVlLCJ0YXJnZXRVdWlkIjoiYWJlODA1NDktOGJhMi00Mzg3LWEyN2YtN2E3MGI1NWZjNjhlIiwiZmFjdG9yeUlkIjoibG9nLWF1ZGl0LWphYXMtbG9naW4tbW9kdWxlIiwic2NvcGUiOiJwcml2YXRlIiwiaXNSZXNvbHZlZCI6dHJ1ZSwicmVzb2x2ZUFsd2F5cyI6ZmFsc2UsImlzQmFja1JlZiI6ZmFsc2UsImlzTGluayI6dHJ1ZSwiQEFVVE9DUkVBVEVEIjp0cnVlLCJfX3V1aWRfXyI6ImYyMjllNTAxLWUwMmQtNDQwZC1iMGZhLTY2NjVmYWRjNTE3NyIsImlzRXh0ZXJuYWwiOmZhbHNlLCJ0YXJnZXRJZCI6ImthcmFmLmxvZy1hdWRpdC1qYWFzLWxvZ2luLW1vZHVsZS5rYXJhZi1sb2ctYXVkaXQiLCJ0YXJnZXRUeXBlIjoiZW50YXh5LnNlY3VyaXR5LmphYXMubG9naW5tb2R1bGUifSx7ImlzUmVmIjp0cnVlLCJ0YXJnZXRVdWlkIjoiNGYxYjJhMDItNTExMy00NDBjLTg2NzQtNjI1M2Q5ZDdhM2ZhIiwiZmFjdG9yeUlkIjoiZXZlbnRhZG1pbi1hdWRpdC1qYWFzLWxvZ2luLW1vZHVsZSIsInNjb3BlIjoicHJpdmF0ZSIsImlzUmVzb2x2ZWQiOnRydWUsInJlc29sdmVBbHdheXMiOmZhbHNlLCJpc0JhY2tSZWYiOmZhbHNlLCJpc0xpbmsiOnRydWUsIkBBVVRPQ1JFQVRFRCI6dHJ1ZSwiX191dWlkX18iOiI4NWRlNWVmYS1mNGY1LTRhMWQtYmE3My1jODA0MjE3ZDlhMTkiLCJpc0V4dGVybmFsIjpmYWxzZSwidGFyZ2V0SWQiOiJrYXJhZi5ldmVudGFkbWluLWF1ZGl0LWphYXMtbG9naW4tbW9kdWxlLmthcmFmLWV2ZW50YWRtaW5hdWRpdCIsInRhcmdldFR5cGUiOiJlbnRheHkuc2VjdXJpdHkuamFhcy5sb2dpbm1vZHVsZSJ9XX0sIl9fdXVpZF9fIjoiNTM4Y2ZmOWItMWMwMy00ZTYzLTlmMjctZDMzY2VhMzY2NjlkIn0=,eyJmYWN0b3J5SWQiOiJwcm9wZXJ0aWVzLWphYXMtbG9naW4tbW9kdWxlIiwic2NvcGUiOiJwcml2YXRlIiwicHJvcGVydGllcyI6eyJlbmNyeXB0aW9uX25hbWUiOiJiYXNpYyIsImRpc3BsYXlOYW1lIjoia2FyYWYtcHJvcGVydGllcyIsImNsYXNzaWZpZXIiOiJrYXJhZi1wcm9wZXJ0aWVzIiwiZmxhZ3MiOlsib3B0aW9uYWwiXSwiYmFja2VuZEVuYWJsZWQiOnRydWUsImVuY3J5cHRpb25fYWxnb3JpdGhtIjoiTUQ1IiwiZW5jcnlwdGlvbl9lbmNvZGluZyI6ImhleGFkZWNpbWFsIiwibW9kdWxlX3VzZXJzIjoiLi9ldGMvdXNlcnMucHJvcGVydGllcyIsImVuY3J5cHRpb25fZW5hYmxlZCI6ZmFsc2UsInJlYWxtIjoia2FyYWYiLCJiYWNrZW5kRmFjdG9yeUNsYXNzTmFtZSI6Im9yZy5hcGFjaGUua2FyYWYuamFhcy5tb2R1bGVzLnByb3BlcnRpZXMuUHJvcGVydGllc0JhY2tpbmdFbmdpbmVGYWN0b3J5IiwiX19vYmplY3RJZCI6IlRPX1JFTU9WRSIsImNsYXNzTmFtZSI6Im9yZy5hcGFjaGUua2FyYWYuamFhcy5tb2R1bGVzLnByb3BlcnRpZXMuUHJvcGVydGllc0xvZ2luTW9kdWxlIn0sIl9fdXVpZF9fIjoiMGZiYjIwM2UtNzQ1NS00ZDg1LTk0MDktYjI3NTQ1N2JiZWY3IiwiaXNFbWJlZGRlZCI6dHJ1ZSwidHlwZSI6ImVudGF4eS5zZWN1cml0eS5qYWFzLmxvZ2lubW9kdWxlIiwib2JqZWN0SWQiOiJrYXJhZi5wcm9wZXJ0aWVzLWphYXMtbG9naW4tbW9kdWxlLmthcmFmLXByb3BlcnRpZXMifQ==,eyJmYWN0b3J5SWQiOiJwdWJsaWNrZXktamFhcy1sb2dpbi1tb2R1bGUiLCJzY29wZSI6InByaXZhdGUiLCJwcm9wZXJ0aWVzIjp7ImVuY3J5cHRpb25fbmFtZSI6ImJhc2ljIiwiZGlzcGxheU5hbWUiOiJrYXJhZi1wdWJsaWNrZXkiLCJjbGFzc2lmaWVyIjoia2FyYWYtcHVibGlja2V5IiwiZmxhZ3MiOlsib3B0aW9uYWwiXSwiYmFja2VuZEVuYWJsZWQiOnRydWUsImVuY3J5cHRpb25fYWxnb3JpdGhtIjoiTUQ1IiwiZW5jcnlwdGlvbl9lbmNvZGluZyI6ImhleGFkZWNpbWFsIiwibW9kdWxlX3VzZXJzIjoiLi9ldGMva2V5cy5wcm9wZXJ0aWVzIiwiZW5jcnlwdGlvbl9lbmFibGVkIjpmYWxzZSwicmVhbG0iOiJrYXJhZiIsImJhY2tlbmRGYWN0b3J5Q2xhc3NOYW1lIjoib3JnLmFwYWNoZS5rYXJhZi5qYWFzLm1vZHVsZXMucHVibGlja2V5LlB1YmxpY2tleUJhY2tpbmdFbmdpbmVGYWN0b3J5IiwiX19vYmplY3RJZCI6IlRPX1JFTU9WRSIsImNsYXNzTmFtZSI6Im9yZy5hcGFjaGUua2FyYWYuamFhcy5tb2R1bGVzLnB1YmxpY2tleS5QdWJsaWNrZXlMb2dpbk1vZHVsZSJ9LCJfX3V1aWRfXyI6ImYxYzczMzc2LTBhMTktNDU5NS1hYWIxLWI3OTc3MDBlYmQwMyIsImlzRW1iZWRkZWQiOnRydWUsInR5cGUiOiJlbnRheHkuc2VjdXJpdHkuamFhcy5sb2dpbm1vZHVsZSIsIm9iamVjdElkIjoia2FyYWYucHVibGlja2V5LWphYXMtbG9naW4tbW9kdWxlLmthcmFmLXB1YmxpY2tleSJ9,eyJmYWN0b3J5SWQiOiJmaWxlLWF1ZGl0LWphYXMtbG9naW4tbW9kdWxlIiwic2NvcGUiOiJwcml2YXRlIiwicHJvcGVydGllcyI6eyJkaXNwbGF5TmFtZSI6ImthcmFmLWZpbGUtYXVkaXQiLCJjbGFzc2lmaWVyIjoia2FyYWYtZmlsZS1hdWRpdCIsImZsYWdzIjpbIm9wdGlvbmFsIl0sIm1vZHVsZV9lbmFibGVkIjp0cnVlLCJtb2R1bGVfZmlsZSI6Ii4vZGF0YS9zZWN1cml0eS9hdWRpdC5sb2ciLCJyZWFsbSI6ImthcmFmIiwiX19vYmplY3RJZCI6IlRPX1JFTU9WRSIsImNsYXNzTmFtZSI6Im9yZy5hcGFjaGUua2FyYWYuamFhcy5tb2R1bGVzLmF1ZGl0LkZpbGVBdWRpdExvZ2luTW9kdWxlIn0sIl9fdXVpZF9fIjoiYWE3Y2Q4YmMtMWZlZi00MWE0LTgxNmYtMTczM2MyZWI0NzkwIiwiaXNFbWJlZGRlZCI6dHJ1ZSwidHlwZSI6ImVudGF4eS5zZWN1cml0eS5qYWFzLmxvZ2lubW9kdWxlIiwib2JqZWN0SWQiOiJrYXJhZi5maWxlLWF1ZGl0LWphYXMtbG9naW4tbW9kdWxlLmthcmFmLWZpbGUtYXVkaXQifQ==,eyJmYWN0b3J5SWQiOiJsb2ctYXVkaXQtamFhcy1sb2dpbi1tb2R1bGUiLCJzY29wZSI6InByaXZhdGUiLCJwcm9wZXJ0aWVzIjp7ImRpc3BsYXlOYW1lIjoia2FyYWYtbG9nLWF1ZGl0IiwiY2xhc3NpZmllciI6ImthcmFmLWxvZy1hdWRpdCIsImZsYWdzIjpbIm9wdGlvbmFsIl0sIm1vZHVsZV9lbmFibGVkIjpmYWxzZSwibW9kdWxlX2xvZ2dlciI6InJ1LmVudGF4eS5hdWRpdC5Mb2dpbiIsIm1vZHVsZV9sZXZlbCI6IklORk8iLCJyZWFsbSI6ImthcmFmIiwiX19vYmplY3RJZCI6IlRPX1JFTU9WRSIsImNsYXNzTmFtZSI6Im9yZy5hcGFjaGUua2FyYWYuamFhcy5tb2R1bGVzLmF1ZGl0LkxvZ0F1ZGl0TG9naW5Nb2R1bGUifSwiX191dWlkX18iOiJhYmU4MDU0OS04YmEyLTQzODctYTI3Zi03YTcwYjU1ZmM2OGUiLCJpc0VtYmVkZGVkIjp0cnVlLCJ0eXBlIjoiZW50YXh5LnNlY3VyaXR5LmphYXMubG9naW5tb2R1bGUiLCJvYmplY3RJZCI6ImthcmFmLmxvZy1hdWRpdC1qYWFzLWxvZ2luLW1vZHVsZS5rYXJhZi1sb2ctYXVkaXQifQ==,eyJmYWN0b3J5SWQiOiJldmVudGFkbWluLWF1ZGl0LWphYXMtbG9naW4tbW9kdWxlIiwic2NvcGUiOiJwcml2YXRlIiwicHJvcGVydGllcyI6eyJkaXNwbGF5TmFtZSI6ImthcmFmLWV2ZW50YWRtaW5hdWRpdCIsImNsYXNzaWZpZXIiOiJrYXJhZi1ldmVudGFkbWluYXVkaXQiLCJmbGFncyI6WyJvcHRpb25hbCJdLCJtb2R1bGVfZW5hYmxlZCI6ZmFsc2UsIm1vZHVsZV90b3BpYyI6InJ1L2VudGF4eS9hdWRpdC9sb2dpbi8iLCJyZWFsbSI6ImthcmFmIiwiX19vYmplY3RJZCI6IlRPX1JFTU9WRSIsImNsYXNzTmFtZSI6Im9yZy5hcGFjaGUua2FyYWYuamFhcy5tb2R1bGVzLmF1ZGl0LkV2ZW50QWRtaW5BdWRpdExvZ2luTW9kdWxlIn0sIl9fdXVpZF9fIjoiNGYxYjJhMDItNTExMy00NDBjLTg2NzQtNjI1M2Q5ZDdhM2ZhIiwiaXNFbWJlZGRlZCI6dHJ1ZSwidHlwZSI6ImVudGF4eS5zZWN1cml0eS5qYWFzLmxvZ2lubW9kdWxlIiwib2JqZWN0SWQiOiJrYXJhZi5ldmVudGFkbWluLWF1ZGl0LWphYXMtbG9naW4tbW9kdWxlLmthcmFmLWV2ZW50YWRtaW5hdWRpdCJ9
    Bundle-Name: entaxy.security.jaas.realm.karaf
    Entaxy-Generated: true
    Bundle-Version: 1.0.0
    Entaxy-Generated-Object: karaf:entaxy.security.jaas.realm:public,karaf.properties-jaas-login-module.karaf-properties:entaxy.security.jaas.loginmodule:private,karaf.publickey-jaas-login-module.karaf-publickey:entaxy.security.jaas.loginmodule:private,karaf.file-audit-jaas-login-module.karaf-file-audit:entaxy.security.jaas.loginmodule:private,karaf.log-audit-jaas-login-module.karaf-log-audit:entaxy.security.jaas.loginmodule:private,karaf.eventadmin-audit-jaas-login-module.karaf-eventadminaudit:entaxy.security.jaas.loginmodule:private
    Entaxy-Main-Object: karaf:entaxy.security.jaas.realm:public
    Provide-Capability: entaxy.security.jaas.realm;factory:String="jaas-realm";displayName:String="";scope:String="public";name:String="karaf";label:String="security,jaas";objectId:String="karaf",entaxy.security.jaas.loginmodule;factory:String="properties-jaas-login-module";displayName:String="karaf-properties";scope:String="private";backendEnabled:String="true";name:String="karaf.properties-jaas-login-module.karaf-properties";label:String="";objectId:String="karaf.properties-jaas-login-module.karaf-properties";relation:List&lt;String&gt;="karaf:entaxy.security.jaas.realm:module:-aggregation:modules",entaxy.security.jaas.loginmodule;factory:String="publickey-jaas-login-module";displayName:String="karaf-publickey";scope:String="private";backendEnabled:String="true";name:String="karaf.publickey-jaas-login-module.karaf-publickey";label:String="";objectId:String="karaf.publickey-jaas-login-module.karaf-publickey";relation:List&lt;String&gt;="karaf:entaxy.security.jaas.realm:module:-aggregation:modules",entaxy.security.jaas.loginmodule;factory:String="file-audit-jaas-login-module";displayName:String="karaf-file-audit";scope:String="private";name:String="karaf.file-audit-jaas-login-module.karaf-file-audit";label:String="";objectId:String="karaf.file-audit-jaas-login-module.karaf-file-audit";relation:List&lt;String&gt;="karaf:entaxy.security.jaas.realm:module:-aggregation:modules",entaxy.security.jaas.loginmodule;factory:String="log-audit-jaas-login-module";displayName:String="karaf-log-audit";scope:String="private";name:String="karaf.log-audit-jaas-login-module.karaf-log-audit";label:String="";objectId:String="karaf.log-audit-jaas-login-module.karaf-log-audit";relation:List&lt;String&gt;="karaf:entaxy.security.jaas.realm:module:-aggregation:modules",entaxy.security.jaas.loginmodule;factory:String="eventadmin-audit-jaas-login-module";displayName:String="karaf-eventadminaudit";scope:String="private";name:String="karaf.eventadmin-audit-jaas-login-module.karaf-eventadminaudit";label:String="";objectId:String="karaf.eventadmin-audit-jaas-login-module.karaf-eventadminaudit";relation:List&lt;String&gt;="karaf:entaxy.security.jaas.realm:module:-aggregation:modules"
    Bundle-SymbolicName: entaxy.security.jaas.realm.karaf

</manifest>
    <service interface="org.apache.karaf.jaas.modules.BackingEngineFactory">
        <bean class="org.apache.karaf.jaas.modules.publickey.PublickeyBackingEngineFactory"/>
    </service>
    <service interface="org.apache.karaf.jaas.modules.BackingEngineFactory">
        <bean class="org.apache.karaf.jaas.modules.properties.PropertiesBackingEngineFactory"/>
    </service>
    <!--

     factoryId: jaas-realm
     factoryType: entaxy.security.jaas.realm
     outputType: init

   -->
    <jaas:config name="karaf" rank="100">
        <jaas:module className="org.apache.karaf.jaas.modules.properties.PropertiesLoginModule" flags="optional" name="karaf.properties-jaas-login-module.karaf-properties">

            entaxy.id=karaf.properties-jaas-login-module.karaf-properties

            users=./etc/users.properties

            encryption.encoding=hexadecimal

            encryption.name=basic

            encryption.enabled=false

            encryption.algorithm=MD5

        </jaas:module>
        <jaas:module className="org.apache.karaf.jaas.modules.publickey.PublickeyLoginModule" flags="optional" name="karaf.publickey-jaas-login-module.karaf-publickey">

            entaxy.id=karaf.publickey-jaas-login-module.karaf-publickey

            users=./etc/keys.properties

            encryption.encoding=hexadecimal

            encryption.name=basic

            encryption.enabled=false

            encryption.algorithm=MD5

        </jaas:module>
        <jaas:module className="org.apache.karaf.jaas.modules.audit.FileAuditLoginModule" flags="optional" name="karaf.file-audit-jaas-login-module.karaf-file-audit">

            entaxy.id=karaf.file-audit-jaas-login-module.karaf-file-audit

            enabled=true
            file=./data/security/audit.log


        </jaas:module>
        <jaas:module className="org.apache.karaf.jaas.modules.audit.LogAuditLoginModule" flags="optional" name="karaf.log-audit-jaas-login-module.karaf-log-audit">

            entaxy.id=karaf.log-audit-jaas-login-module.karaf-log-audit

            logger=ru.entaxy.audit.Login
            level=INFO
            enabled=false


        </jaas:module>
        <jaas:module className="org.apache.karaf.jaas.modules.audit.EventAdminAuditLoginModule" flags="optional" name="karaf.eventadmin-audit-jaas-login-module.karaf-eventadminaudit">

            entaxy.id=karaf.eventadmin-audit-jaas-login-module.karaf-eventadminaudit

            topic=ru/entaxy/audit/login/
            enabled=false


        </jaas:module>
    </jaas:config>
</blueprint>
