UserRegistry尝试对无效用户

时间:2016-11-23 07:18:07

标签: wso2-am wso2carbon

我关注https://docs.wso2.com/display/CLUSTER44x/Clustering+API+Manager+2.0.0

http://wso2.com/library/articles/2016/10/article-scalable-traffic-manager-deployment-patterns-for-wso2-api-manager-part-1/

在上述文件中引用。我使用的是Postgress而不是MySQL,但我知道JDBC连接器在这个配置中工作,并且在单实例模式下运行wso2am服务器。

我收到了主题中提到的错误。我启动密钥管理器,然后使用./wso2server.sh -Dprofile = traffic-manager的流量管理器然后获得异常,说流量管理器上的索引失败以及密钥管理器上的无效用户错误。这告诉我流量管理器确实连接到keymanager注册表(或尝试),因此端口是打开的等等。我也通过使用我的浏览器连接到端点并使用telnet到端口来检查这一点。

我找不到任何文档或注册表,碳或轴配置文件中用于连接到注册表的用户的任何引用。或者我错过了什么?

此致 安德烈

我对registry.xml的更改

<currentDBConfig>wso2registry</currentDBConfig>
<readOnly>false</readOnly>
<enableCache>true</enableCache>
<registryRoot>/</registryRoot>

<dbConfig name="wso2registry">
    <dataSource>jdbc/WSO2CarbonDB</dataSource>
</dbConfig>

<remoteInstance url="https://api-keymanager-1:9443/registry">
  <id>InstanceId</id>
  <cacheId>jdbc:postgresql://api-db-1:5432/WSO2_CARBON_DB</cacheId>
  <dbConfig>wso2registry</dbConfig>
  <readOnly>false</readOnly>
  <enableCache>true</enableCache>
  <registryRoot>/</registryRoot>
  <username>wso2am</username>
  <password>wso2am</password>
  <driverClassName>org.postgresql.Driver</driverClassName>
</remoteInstance>

<mount path="/_system/config" overwrite="true">
  <instanceId>InstanceId</instanceId>
  <targetPath>/_system/config</targetPath>
</mount>

<mount path="/_system/governance" overwrite="true">
  <instanceId>InstanceId</instanceId>
  <targetPath>/_system/governance</targetPath>
</mount>

我使用WSO2_CARBON_DB作为注册表数据库,我打算使用CustomUserDB。 如果我注释掉安装部分我没有问题。如果我把它放入,我的用户错误无效,如上所述。

我可以补充一点,我正在运行api-keymanager-1主机作为keymanager,这个配置在我开始的api-trafficmanager-1主机上./wso2server.sh -Dprofile = traffic-manager

我有一个问题,所有这个InstanceId都没有在任何配置的api-keymanager-1上的任何地方定义,这在文档中没有提到,除非我错过了什么?这有关系吗?

1 个答案:

答案 0 :(得分:0)

您似乎有两个问题。首先,通过停止服务,备份和删除/ APIM / solr目录以及重新启动服务来重新索引Solr索引。这应解决索引问题。

接下来,您的注册表配置不太正确。在APIM 1.10.0中配置远程注册表安装时,我们遇到了类似的问题。您的registry.xml定义中需要两个dbconfig个节点,并且您的远程实例应指向远程治理注册表dbconfig

<currentDBConfig>wso2registry</currentDBConfig>
...
<dbConfig name="wso2registry">
     <dataSource>jdbc/WSO2CarbonDB</dataSource> <!-- this is the local h2 db -->
</dbConfig>
<dbConfig name="govregistry">
     <dataSource>your-remote-dbsource</dataSource> <!-- this is the remote db -->
</dbConfig>

<remoteInstance url="remote-endpoint-here">
    <id>InstanceId</id>
    <dbConfig>govregistry</dbConfig>
    ...
</remoteInstance>

<mount path="/_system/governance" overwrite="true">
    <instanceId>InstanceId</instanceId>
    <targetPath>/_system/governance</targetPath>
</mount>

WSO2没有正确解释为什么需要本地Carbon db来实现远程注册表设置,但这就是我们配置注册表的方式,它适用于1.10.0和2.0的分布式部署。 / p>