Удаление ненужного модуля входа в Apache Karaf

Первоначально этот вопрос был опубликован в списке рассылки пользователей karaf, но я не получил ответа: http://karaf.922171.n3.nabble.com/Deleting-an-unnecessary-login-module-td4033321.html

Я хотел бы удалить модуль входа (PublicKeyLoginModule) из области jaas karaf по умолчанию.

Согласно документам: http://karaf.apache.org/manual/latest/developers-guide/security-framework.html

«Поэтому, если вы хотите переопределить конфигурацию безопасности по умолчанию в Karaf (которая используется оболочкой ssh, веб-консолью и уровнем JMX), вам необходимо развернуть конфигурацию JAAS с именем name="karaf" и rank="1" ».

Однако, когда я делаю это, добавляются новые модули, а не заменяются существующие.

Когда схема ниже загружается либо через каталог развертывания, либо путем включения в пакет (созданный с помощью Maven путем включения схемы из следующего пути) src\main\resources\OSGI-INF\blueprint\context.xml

Я получаю следующее:

karaf@root()> jaas:realm-list
Index | Realm Name | Login Module Class Name
-----------------------------------------------------------------------------------
1     | karaf      | org.apache.karaf.jaas.modules.properties.PropertiesLoginModule
2     | karaf      | org.apache.karaf.jaas.modules.publickey.PublickeyLoginModule
3     | karaf      | org.apache.karaf.jaas.modules.ldap.LDAPLoginModule

То, что я хотел бы видеть, это либо

karaf@root()> jaas:realm-list
Index | Realm Name | Login Module Class Name
-----------------------------------------------------------------------------------
1     | karaf      | org.apache.karaf.jaas.modules.ldap.LDAPLoginModule

Или, если бы был способ явно удалить модуль:

karaf@root()> jaas:realm-list
Index | Realm Name | Login Module Class Name
-----------------------------------------------------------------------------------
1     | karaf      | org.apache.karaf.jaas.modules.properties.PropertiesLoginModule
2     | karaf      | org.apache.karaf.jaas.modules.ldap.LDAPLoginModule

Это план:

<?xml version="1.0" encoding="UTF-8"?>
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
           xmlns:jaas="http://karaf.apache.org/xmlns/jaas/v1.0.0"
           xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0"
           xmlns:ext="http://aries.apache.org/blueprint/xmlns/blueprint-ext/v1.0.0">

    <type-converters>
        <bean class="org.apache.karaf.jaas.modules.properties.PropertiesConverter"/>
    </type-converters>

    <!-- Allow usage of System properties, especially the karaf.base property -->
    <ext:property-placeholder placeholder-prefix="$[" placeholder-suffix="]"/>

    <!-- AdminConfig property place holder for the org.apache.karaf.jaas  -->
    <cm:property-placeholder persistent-id="org.apache.karaf.jaas" update-strategy="none">
        <cm:default-properties>
            <cm:property name="example.group" value="example-group-value"/>
        </cm:default-properties>
    </cm:property-placeholder>

    <jaas:config name="karaf" rank="1">
        <jaas:module className="org.apache.karaf.jaas.modules.ldap.LDAPLoginModule" flags="required">
            connection.url = ldap://ldap.example.com:389
            user.base.dn = o= example.com
            user.filter = (uid=%u)
            user.search.subtree = true
            role.base.dn = ou=applications,l=global,o= example.com
            role.filter = (&amp;(objectClass=groupOfUniqueNames)(uniqueMember=*uid=%u*)(cn=${ example.group}))
            role.name.attribute = cn
            role.search.subtree = true
            authentication = simple
        </jaas:module>
    </jaas:config>
</blueprint>

karaf@root()> shell:info
Karaf
  Karaf version               3.0.0
  Karaf home                  ***
  Karaf base                  ***
  OSGi Framework              org.apache.felix.framework - 4.2.1

Та же проблема на Karaf 3.0.1

Буду рад любым предложениям. Создание совершенно новой области возможно, но по соображениям политики я бы предпочел, чтобы PublicKeyLoginModule вообще не отображался во время выполнения.


person Donald_W    schedule 21.11.2014    source источник


Ответы (1)


В качестве обходного пути вы можете попробовать это:

Область karaf по умолчанию зарегистрирована в пакете org.apache.karaf.jaas.module с чертежом.

Найдите исходную службу JaasRealm с именем karaf в реестре служб и отмените ее регистрацию; затем зарегистрируйте свое собственное царство, используя приведенный выше план.

person muammer    schedule 28.11.2014