登录失败:未授权,在Business Central JBPM中作为另一个用户登录时出错

登录失败:未授权,在Business Central JBPM中作为另一个用户登录时出错,jbpm,Jbpm,我对Red hat business process automation manager的工作还不熟悉。我们正在开发一个工作流应用程序。Read hat business process automation包括java业务流程管理(JBPM)。此应用程序用于生成工作流 Read hat business process automation manager有一个名为business central的应用程序,用户可以在其中验证和管理工作流 默认情况下,business process aut

我对Red hat business process automation manager的工作还不熟悉。我们正在开发一个工作流应用程序。Read hat business process automation包括java业务流程管理(JBPM)。此应用程序用于生成工作流

Read hat business process automation manager有一个名为business central的应用程序,用户可以在其中验证和管理工作流

默认情况下,business process automation manager从h2数据库(java文件系统数据库)对用户进行身份验证

现在我要求我们从h2转移到PostgreSQL数据库。在这种情况下,我需要从PostgreSQL数据库对用户进行身份验证

对于该实现,我参考并使用了以下docker图像

我已经按照所有描述的说明连接PostgreSQL数据库

h2数据库的默认用户是wbadmin

在PostgreSQL中

我使用了docker创建的默认数据库。详情如下

我在PostgreSQL中向用户登录表添加了一个用户

我在standalone/configuration/standalone.xml文件中做了以下更改

 <security-domain name="other" cache-type="default">
        <authentication>
            <login-module code="Remoting" flag="optional">
                <module-option name="password-stacking" value="useFirstPass"/>
            </login-module>
            <login-module code="org.jboss.security.auth.spi.DatabaseServerLoginModule" flag="required">
                <module-option name="dsJndiName" value="java:jboss/datasources/jBPMDS"/>
                <module-option name="principalsQuery" value="select password from userlogin where username=?"/>
                <module-option name="rolesQuery" value="select role,'Roles' from userlogin where username=?"/>
            </login-module>
            <login-module code="org.kie.security.jaas.KieLoginModule" flag="optional" module="deployment.business-central.war"/>
            <login-module name="org.kie.security.jaas.KieLoginModule-2" code="org.kie.security.jaas.KieLoginModule" flag="optional" module="deployment.jbpm-casemgmt.war"/>
        </authentication>
    </security-domain>

期待您的回复。提前感谢

在做了以下更改后,我能够使用“DatabaseServerLoginModule”登录

1) 为用户名和“角色”创建了两个不同的表。第一个表只有用户名和密码。第二个表具有用户名的相应角色

CREATE TABLE Users(username VARCHAR(64) PRIMARY KEY, passwd VARCHAR(64));
CREATE TABLE UserRoles(username VARCHAR(64), userRoles VARCHAR(64))
2) 下面是安全域配置

 <security-domain name="other" cache-type="default">
            <authentication>
                <login-module code="Remoting" flag="optional">
                     <module-option name="password-stacking" value="useFirstPass"/>
                </login-module>
                <login-module code="org.jboss.security.auth.spi.DatabaseServerLoginModule" flag="required">
                     <module-option name="dsJndiName" value="java:jboss/MySqlDS"/>
                     <module-option name="principalsQuery" value="select passwd from Users username where username=?"/>
                     <module-option name="rolesQuery" value="select userRoles, 'Roles' from UserRoles where username=?"/>
                 </login-module>
                <login-module code="org.kie.security.jaas.KieLoginModule" flag="optional" module="deployment.business-central.war"/>
             </authentication>
    </security-domain>

您是否尝试使用为DB配置的安全域更新安全域“business central.war/WEB-INF/jboss WEB.xml”?@SudhishNair,我检查过了,只有配置的安全域是“other”,我已经更改了。你好,Sudhish,谢谢。它对我有用。我以前是用逗号分隔角色,现在我改了。但是造成的另一个问题是,成功登录后,它没有显示execution server.e.sample-server.Any Idea no this?Yes..1)12:20:58813错误[org.kie.server.services.impl.KieServerImpl](EJB默认值-1)为模块“com.myspace:Demo:1.0.0-SNAPSHOT”创建容器“Demo SNAPSHOT”时出错:java.lang.RuntimeException:找不到KieModule:com.myspace:Demo:1.0.0-SNAPSHOT 2)警告:kie服务器指向非web套接字控制器,此警告持续显示,3)在与控制器同步时遇到异常我是否缺少任何步骤?是否收到身份验证错误?尝试将以下属性添加到standalone.xml。
CREATE TABLE Users(username VARCHAR(64) PRIMARY KEY, passwd VARCHAR(64));
CREATE TABLE UserRoles(username VARCHAR(64), userRoles VARCHAR(64))
 <security-domain name="other" cache-type="default">
            <authentication>
                <login-module code="Remoting" flag="optional">
                     <module-option name="password-stacking" value="useFirstPass"/>
                </login-module>
                <login-module code="org.jboss.security.auth.spi.DatabaseServerLoginModule" flag="required">
                     <module-option name="dsJndiName" value="java:jboss/MySqlDS"/>
                     <module-option name="principalsQuery" value="select passwd from Users username where username=?"/>
                     <module-option name="rolesQuery" value="select userRoles, 'Roles' from UserRoles where username=?"/>
                 </login-module>
                <login-module code="org.kie.security.jaas.KieLoginModule" flag="optional" module="deployment.business-central.war"/>
             </authentication>
    </security-domain>
username userRoles
xyz       admin
xyz       kie-server

username passwd
xyz      xyz@123