- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我目前正在运行一个 OpenLDAP 2.4.45 实例作为我的 Talend ESB 容器的验证器。我正在使用 TLS 连接到 LDAP,我已经设法让我的 JMS 代理连接并使用 org.apache.activemq.jaas.LDAPLoginModule 成功地使用了 LDAP,但是,在使用 org.apache.karaf.jaas 时.modules.ldap.LDAPLoginModule 用于 Web 服务,我得到以下堆栈跟踪:
2017-08-11 19:04:13,828 | WARN | qtp272427408-140 | LDAPLoginModule | 126 - org.apache.karaf.jaas.modules - 4.0.8 | Can't connect to the LDAP server: Unable to setup SSL support for LDAP: null
javax.naming.NamingException: Unable to setup SSL support for LDAP: null
at org.apache.karaf.jaas.modules.ldap.LDAPOptions.setupSsl(LDAPOptions.java:178)
at org.apache.karaf.jaas.modules.ldap.LDAPOptions.getEnv(LDAPOptions.java:158)
at org.apache.karaf.jaas.modules.ldap.LDAPCache.open(LDAPCache.java:113)
at org.apache.karaf.jaas.modules.ldap.LDAPCache.doGetUserDnAndNamespace(LDAPCache.java:151)
at org.apache.karaf.jaas.modules.ldap.LDAPCache.getUserDnAndNamespace(LDAPCache.java:142)
at org.apache.karaf.jaas.modules.ldap.LDAPLoginModule.doLogin(LDAPLoginModule.java:115)
at org.apache.karaf.jaas.modules.ldap.LDAPLoginModule.login(LDAPLoginModule.java:54)
at org.apache.karaf.jaas.boot.ProxyLoginModule.login(ProxyLoginModule.java:83)[org.apache.karaf.jaas.boot-4.0.8.jar:]
at sun.reflect.GeneratedMethodAccessor104.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)[:1.8.0_131]
at java.lang.reflect.Method.invoke(Method.java:498)[:1.8.0_131]
at javax.security.auth.login.LoginContext.invoke(LoginContext.java:755)[:1.8.0_131]
at javax.security.auth.login.LoginContext.access$000(LoginContext.java:195)[:1.8.0_131]
at javax.security.auth.login.LoginContext$4.run(LoginContext.java:682)[:1.8.0_131]
at javax.security.auth.login.LoginContext$4.run(LoginContext.java:680)[:1.8.0_131]
at java.security.AccessController.doPrivileged(Native Method)[:1.8.0_131]
at javax.security.auth.login.LoginContext.invokePriv(LoginContext.java:680)[:1.8.0_131]
at javax.security.auth.login.LoginContext.login(LoginContext.java:587)[:1.8.0_131]
at org.apache.cxf.interceptor.security.JAASLoginInterceptor.handleMessage(JAASLoginInterceptor.java:141)[67:org.apache.cxf.cxf-core:3.1.10]
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308)[67:org.apache.cxf.cxf-core:3.1.10]
at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)[67:org.apache.cxf.cxf-core:3.1.10]
at org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:262)[92:org.apache.cxf.cxf-rt-transports-http:3.1.10]
at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:234)[92:org.apache.cxf.cxf-rt-transports-http:3.1.10]
at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:208)[92:org.apache.cxf.cxf-rt-transports-http:3.1.10]
at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:160)[92:org.apache.cxf.cxf-rt-transports-http:3.1.10]
at org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:180)[92:org.apache.cxf.cxf-rt-transports-http:3.1.10]
at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:299)[92:org.apache.cxf.cxf-rt-transports-http:3.1.10]
at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:218)[92:org.apache.cxf.cxf-rt-transports-http:3.1.10]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)[19:javax.servlet-api:3.1.0]
at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:274)[92:org.apache.cxf.cxf-rt-transports-http:3.1.10]
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:812)[200:org.eclipse.jetty.servlet:9.2.19.v20160908]
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:587)[200:org.eclipse.jetty.servlet:9.2.19.v20160908]
at org.ops4j.pax.web.service.jetty.internal.HttpServiceServletHandler.doHandle(HttpServiceServletHandler.java:71)[223:org.ops4j.pax.web.pax-web-jetty:4.3.0]
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)[199:org.eclipse.jetty.server:9.2.19.v20160908]
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577)[198:org.eclipse.jetty.security:9.2.19.v20160908]
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223)[199:org.eclipse.jetty.server:9.2.19.v20160908]
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)[199:org.eclipse.jetty.server:9.2.19.v20160908]
at org.ops4j.pax.web.service.jetty.internal.HttpServiceContext.doHandle(HttpServiceContext.java:287)[223:org.ops4j.pax.web.pax-web-jetty:4.3.0]
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)[200:org.eclipse.jetty.servlet:9.2.19.v20160908]
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)[199:org.eclipse.jetty.server:9.2.19.v20160908]
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)[199:org.eclipse.jetty.server:9.2.19.v20160908]
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)[199:org.eclipse.jetty.server:9.2.19.v20160908]
at org.ops4j.pax.web.service.jetty.internal.JettyServerHandlerCollection.handle(JettyServerHandlerCollection.java:80)[223:org.ops4j.pax.web.pax-web-jetty:4.3.0]
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)[199:org.eclipse.jetty.server:9.2.19.v20160908]
at org.eclipse.jetty.server.Server.handle(Server.java:499)[199:org.eclipse.jetty.server:9.2.19.v20160908]
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:311)[199:org.eclipse.jetty.server:9.2.19.v20160908]
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257)[199:org.eclipse.jetty.server:9.2.19.v20160908]
at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:544)[191:org.eclipse.jetty.io:9.2.19.v20160908]
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)[202:org.eclipse.jetty.util:9.2.19.v20160908]
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)[202:org.eclipse.jetty.util:9.2.19.v20160908]
at java.lang.Thread.run(Thread.java:748)[:1.8.0_131]
我的验证器配置文件:
<?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:ext="http://aries.apache.org/blueprint/xmlns/blueprint-ext/v1.0.0">
<jaas:config name="KarafLdapConfiguration" rank="1">
<jaas:module className="org.apache.karaf.jaas.modules.ldap.LDAPLoginModule" flags="required">
connection.url=ldaps://ldap:4444
connection.username=uid=user,ou=users,dc=base
connection.password=password
authentication=simple
user.base.dn=ou=users,dc=base
user.filter=(uid=%u)
user.search.subtree=true
role.base.dn=ou=groups,dc=base
role.filter=(uniquemember=%fqdn)
role.name.attribute=uid
role.search.subtree=true
ssl=true
ssl.protocol=TLS
ssl.algorithm=PKIX
ssl.keystore=store
ssl.keyalias=myalias
ssl.truststore=trust
</jaas:module>
</jaas:config>
<jaas:keystore name="store"
path="file:///some/path/keystore.jks
keystorePassword="secret"
keyPasswords="secret" />
<jaas:keystore name="trust"
path="file:///some/path/truststore.jks
keystorePassword="secret" />
</blueprint>
我怀疑我在这个配置文件中缺少 ssl.provider 选项。尽管源似乎在寻找某种 URI,但文档并不清楚这是什么期望。我花了很多时间进行搜索,但找不到任何关于提供 CA 服务的公司之外的 SSL 提供商的信息。我不知道这可能在寻找什么 URI。我没有进行撤销检查,所以不是那样。想知道这里可能出了什么问题吗?
最佳答案
几天前我终于解决了这个问题,我想我会记录这个解决方案,以防将来它对任何人有帮助。
问题确实是配置文件中缺少 ssl.provider 字段。需要弄清楚的部分是所需的实际 URI。在我之前的实验中,我缺少 LDAP 的基本 DN。最终,该字段应该看起来像
ssl.provider=ldaps://<somehostname>:<port>/<baseDN>
所以我最终得到的是
<?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:ext="http://aries.apache.org/blueprint/xmlns/blueprint-ext/v1.0.0">
<jaas:config name="KarafLdapConfiguration" rank="1">
<jaas:module className="org.apache.karaf.jaas.modules.ldap.LDAPLoginModule" flags="required">
connection.url=ldaps://ldap:4444
connection.username=uid=user,ou=users,dc=base
connection.password=password
authentication=simple
user.base.dn=ou=users,dc=base
user.filter=(uid=%u)
user.search.subtree=true
role.base.dn=ou=groups,dc=base
role.filter=(uniquemember=%fqdn)
role.name.attribute=uid
role.search.subtree=true
ssl=true
ssl.protocol=TLS
ssl.algorithm=PKIX
ssl.provider=ldaps://ldap:4444/dc=baseDN
ssl.keystore=store
ssl.keyalias=myalias
ssl.truststore=trust
</jaas:module>
</jaas:config>
<jaas:keystore name="store"
path="file:///some/path/keystore.jks
keystorePassword="secret"
keyPasswords="secret" />
<jaas:keystore name="trust"
path="file:///some/path/truststore.jks
keystorePassword="secret" />
</blueprint>
关于apache - org.apache.karaf.jaas.modules.ldap 无法为 LDAP 设置 SSL 支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45662303/
我是 apache karaf 的新手。 当我通过在 Windows 计算机上执行 bat 文件来启动 apache karaf 时。它一直给我以下错误 C:\karaf\apache-karaf-4
在 feature.xml(Apache Karaf 配置机制)标签中 feature有一个 dependency属性。这个属性有什么作用? 例如: custom-feature-name 我在哪里可
当我使用 dev:create-dump 时,转储中的线程堆栈不完整。是否可以将 Karaf 配置为: 转储全部堆栈? 检测死锁? 最佳答案 dev:create-dump : 创建一个带有信息的存档
如何从 karaf> 提示符为特定包设置不同的日志级别? log:set TRACE为所有人设置 TRACE 级别的日志记录。我想要 INFO/DEBUG 用于特定包的 ROOT 和 TRACE 级别
我正在尝试使用 Karaf 来托管 REST 服务。我使用的是 4.0.0 M2 版本(因为我的原型(prototype)还处于早期阶段)。根据我的拼凑,为了托管 REST 服务,我可以使用 Kara
不幸的是,称为 Karaf 的 OSGi 容器实现的文档很差。概念被擦掉,术语之间的关系没有建立。 我在阅读了 Karaf 开发人员撰写的文本后得出的结论(我猜?): 当 OSGi 容器中没有其他包(
我正在使用 karaf 服务器来部署和安装功能。我安装了一个功能“测试功能”,然后我从存储库中删除了它。在激活其他一些功能时,它给了我一个异常(exception)—— org.osgi.servic
Karaf v2.3.0,org.apache.aries.blueprint.core:1.0.1,在从另一个包导入的服务上调用接口(interface)方法时抛出 ClassCastExcepti
我正在学习 Karaf,按照本教程:https://github.com/cschneider/Karaf-Tutorial/tree/master/tasklist 我按照要求构建了它。然后我尝试像
我目前正在为 karaf 开发 bundle 并有一些问题... 我写了一个基于 cxf 的 bundle/webservice,我尝试在 karaf 中部署它,但它无法启动那个 bundle,因为它
如何在Karaf中设置虚拟主机? Karaf 嵌入了 Jetty,因此我使用以下内容制作了 context.xml 并将其放入 /etc 文件夹中: / /webapps/testWAB_w
我正在学习 Karaf,按照本教程:https://github.com/cschneider/Karaf-Tutorial/tree/master/tasklist 我按照要求构建了它。然后我尝试像
mvn:org.antlr/antlr4-runtime/4.5.3 wrap:mvn:org.antlr/antlr4-runtime/4.0 我有两个功能正在使用antlr
如何在 apache karaf 中重复之前的命令?我尝试了向上和向下箭头,但没有收到之前的命令。 最佳答案 如果您阅读了 Apache Karaf 的手册,则可以使用默认箭头在命令历史记录中导航;
我有一个关于 karaf 和功能加载的问题。我有一个 kar 文件,其中包含我的应用程序的所有 bundle 。它在PROD环境上发布。它是基于版本 4.0.4 的自定义构建离线 Karaf - 并且
我已经尝试过此 link 中的组件工厂示例。接口(interface): package com.java.examplefactoryservice; public interface Exampl
我正在运行 Karaf,我在 persistence.xml 中有一个数据源(指向 SQL Server DB),并且我正在尝试执行插入查询。 但是我遇到了这个异常: javax.persistenc
我决定在 OSGI 和 Karaf 之上构建一个应用程序——我真的很喜欢这些东西。但是,我在本地开发机器上的日常部署有点挣扎。我的意思是.. 我做了一个改变,然后我想在我本地的 Karaf 实例上测试
我对 Apache Karaf 到底是什么有点困惑。 您能否说 Apache Karaf 包括以下内容: Apache Felix(OSGi 4.2 框架的实现) Apache Aries(Bluep
是否有人设法在Apache Karaf上运行Grails 3应用程序? 有一个关于如何使用Grails 2进行操作的教程,但它似乎已经过时且容易出错。 我将不胜感激,即使它是高级要点,也能提供任何帮助
我是一名优秀的程序员,十分优秀!