0

我尝试在同一个 VM 上进行生产设置(WSO2 MB 3.1.0 和 WSO2 ESB 4.9.0)。为了保护我的生产环境,我将管理员用户的默认管理员密码更改为更安全的密码。同时我创建了一个新的 MB 用户 (ESB),我在 ESB jndi.properties 中将其用作“技术用户”

当我重新启动服务器时,我开始在尝试连接到 MB 的 ESB 中收到以下异常:[2016-10-07 16:47:31,427] 错误 - AMQStateManager Notifying Waiters([org.wso2.andes.client.state .StateWaiter@654a6148]) for error:not allowed [2016-10-07 16:47:31,427] INFO - AMQConnection Unable to connect to broker at tcp://localhost:5673 org.wso2.andes.client.AMQAuthenticationException: not在 org.wso2.andes.client.handler.ClientMethodDispatcherImpl.dispatchConnectionClose(ClientMethodDispatcherImpl.java:192 的 org.wso2.andes.client.handler.ConnectionCloseMethodHandler.methodReceived(ConnectionCloseMethodHandler.java:79) 允许 [错误代码 530:不允许] ) 在 org.wso2.andes.client.state.AMQStateManager 的 org.wso2.andes.framing.amqp_0_91.ConnectionCloseBodyImpl.execute(ConnectionCloseBodyImpl.java:140)。org.wso2.andes.client.protocol.AMQProtocolHandler.methodBodyReceived 处的方法接收(AMQStateManager.java:111)(AMQProtocolHandler.java:517)

我将问题追溯到 ADMIN psw 的更改。当我将其设置回默认 ADMIN 时:ADMIN 一切都恢复正常。

知道为什么吗?显然,在我关注这篇文章https://docs.wso2.com/display/MB220/Changing+User+Passwords
的所有地方,psw 都没有改变, 但是我的配置 xmls 不包含管理员 psw。

非常感谢你。

4

1 回答 1

0

AFAIU,以下是您遵循的步骤。

  1. 更改了 MB 默认用户名/密码。
  2. 在 MB 中创建新用户(“技术用户”)并将这些用户名/密码添加到 ESB“jndi.properties”文件中。
  3. 重新启动的服务器和 ESB 开始引发身份验证异常。

事情会出错(至少我能想到的)如下:

  1. 不知何故,您在用户名“技术用户”中间输入了空格(即使它已在 MB 管理控制台中验证) 解决方案:不要在用户名中使用空格。
  2. 即使您在 MB 中创建了一个新用户(并将其正确添加到 ESB 的 jndi.properties 文件中),您也没有分配有权订阅主题/队列的角色。(这很可能是你搞砸了:))

    如果您尚未分配具有订阅队列/主题权限的角色,ESB 将无法在传输启动期间使用给定的凭据进行订阅,这会导致身份验证异常。

    MB 具有基于角色的权限模型,如果您尚未将用户分配给具有足够权限的角色,用户将无法向 MB 进行身份验证。要验证这一理论,您可以从 MB 管理控制台(“主页 > 配置 > 帐户和凭据 > 用户和角色 > 用户”)下为新创建的用户分配“管理员”角色,然后重新启动 ESB 服务器。请仔细阅读以下文档[1] 以获取更多权限/用户/用户角色相关信息。

    [1] https://docs.wso2.com/display/MB310/Managing+Queues

    https://docs.wso2.com/display/MB310/Configuring+Users

    https://docs.wso2.com/display/MB310/Role-Based+Permissions

于 2016-10-09T12:57:40.193 回答