Удаление ненужного модуля входа в 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 = (&(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
Та же проблема на Караф 3.0.1
Я бы приветствовал любые предложения. Создание целой новой области возможно, но по соображениям политики я бы предпочел вообще не отображать PublicKeyLoginModule во время выполнения.
1 ответ
В качестве обходного пути вы можете попробовать это:
По умолчанию область Караф зарегистрирована в org.apache.karaf.jaas.module
расслоение с планом.
Найти оригинал JaasRealm
служба имени karaf
из сервисного реестра и отмените его регистрацию; затем зарегистрируйте свое собственное царство, используя вышеуказанный проект.