这个真的让我抓狂。
我在 JBoss AS 中有一个 Guvnor(稍后会详细介绍版本)。我编辑了 components.xml 以启用身份验证(使用 JAAS,我的用户和密码设置得很好)和基于角色的权限。我有一个具有完全权限的“管理员”用户和一个具有只读权限的“代理”用户。到目前为止一切顺利,在 Guvnor 中,我可以看到用户和适当的权限,从浏览器我可以使用“admin”用户登录以上传规则等,并且我可以使用“agent”用户下载 changeset.xmls 和二进制文件。
现在,我从一个 Java 应用程序设置了一个知识代理。在 UrlResource 中,我设置了用户名('agent')和密码。变更集下载很好,但是,changeset.xml 引用了其他资源(例如 PKG)。下载它们失败(HTTP 401)。似乎 Drools 忘记了我的凭据。
手动编辑 changeset.xml,并添加 enableBasicAuthentcation、用户名和密码 - 它工作正常。但这不是要走的路,真的。
我一直在寻找任何一种解决方案:a) 在 Guvnor 中看到一些选项面板,以便我可以在部署包时自动设置要嵌入到 changeset.xml 中的内容 b) 找到一种方法,以便凭据在我的 Java 项目中传递所以一切正常。
现在,我尝试了 Drools 5.1.1、5.2.FINAL、5.3.CR1,查看了这些版本的文档。我发现的唯一注释是在 5.3 文档中:“更改集中的用户 ID 和密码应与 components.xml 中配置的身份验证器的要求一致。” - 谢谢,我明白了,但是怎么做呢? “有关详细信息,请参阅《管理指南》的“安全 - 身份验证和基本访问”部分。”我做了,什么也没发现。
所以真的,我错过了什么,或者我做错了什么?真的解决这个问题的唯一方法就是不使用身份验证吗?或者在每次更改时手动编辑 changeset.xmls?
任何帮助将不胜感激。
最佳答案
这里发布了一个解决方法
[JBRULES-3465]
https://issues.jboss.org/browse/JBRULES-3465
有了约束,它只适用于每个代理一个用户名
关于authentication - Drools KnowledgeAgent 和 Guvnor : authentication fails,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7819997/