"访问用于API密钥验证的后端服务时出错#34;使用wso2apim和mysql

时间:2014-04-23 07:21:04

标签: wso2 wso2carbon

我想使用相同的mysql DB来使用wso2apim的多个实例。 首先我尝试使用mysql数据库配置单个实例,如下所示: https://docs.wso2.org/display/CLUSTER420/Clustering+API+Manager

我设法让所有的webapp都在运行。 - 使用发布者创建了一个新的API。 - 在商店里唱了一个新用户。 - 以订户身份登录商店 - 订阅API并生成访问令牌。

但是当我尝试访问此API时,我收到错误900900 Unclassified Authentication Failure - Error while accessing backend services for API key validation

以下是我的一些配置文件

主-datascources.xml

<datasource>
    <name>WSO2AM_DB</name>
    <description>The datasource used for the API Manager database</description>
    <jndiConfig>
        <name>jdbc/WSO2AM_DB</name>
    </jndiConfig>
    <definition type="RDBMS">
        <configuration>
            <url>jdbc:mysql://apimgtdb.mysql-wso2.com:3306/apimgtdb?autoReconnect=true&amp;relaxAutoCommit=true</url>
            <username>root</username>
            <password>mypassword</password>
            <driverClassName>com.mysql.jdbc.Driver</driverClassName>
            <maxActive>50</maxActive>
            <maxWait>60000</maxWait>
            <testOnBorrow>true</testOnBorrow>
            <validationQuery>SELECT 1</validationQuery>
            <validationInterval>30000</validationInterval>
        </configuration>
    </definition>
</datasource>

<datasource>
    <name>WSO2UM_DB</name>
    <description>The datasource used by user manager</description>
    <jndiConfig>
        <name>jdbc/WSO2UM_DB</name>
    </jndiConfig>
    <definition type="RDBMS">
        <configuration>
            <url>jdbc:mysql://userdb.mysql-wso2.com:3306/userdb?autoReconnect=true&amp;relaxAutoCommit=true</url>
            <username>root</username>
            <password>mypassword</password>
            <driverClassName>com.mysql.jdbc.Driver</driverClassName>
            <maxActive>50</maxActive>
            <maxWait>60000</maxWait>
            <testOnBorrow>true</testOnBorrow>
            <validationQuery>SELECT 1</validationQuery>
            <validationInterval>30000</validationInterval>
        </configuration>
    </definition>
</datasource>

<datasource>
    <name>WSO2REG_DB</name>
    <description>The datasource used by user manager</description>
    <jndiConfig>
        <name>jdbc/WSO2REG_DB</name>
    </jndiConfig>
    <definition type="RDBMS">
        <configuration>
            <url>jdbc:mysql://regdb.mysql-wso2.com:3306/regdb?autoReconnect=true&amp;relaxAutoCommit=true</url>
            <username>root</username>
            <password>mypassword</password>
            <driverClassName>com.mysql.jdbc.Driver</driverClassName>
            <maxActive>50</maxActive>
            <maxWait>60000</maxWait>
            <testOnBorrow>true</testOnBorrow>
            <validationQuery>SELECT 1</validationQuery>
            <validationInterval>30000</validationInterval>
        </configuration>
    </definition>
</datasource>

API-manager.xml

<AuthManager>
        <ServerURL>https://keymanager.apim-wso2.com:${mgt.transport.https.port}/services/</ServerURL>
        <Username>admin</Username>
        <Password>admin</Password>
    </AuthManager>

    <APIGateway>

    <Environments>
        <Environment type="hybrid">
                <Name>Production and Sandbox</Name>
                <ServerURL>https://gwmanager.apim-wso2.com:${mgt.transport.https.port}/services/</ServerURL>
                <Username>admin</Username>
                <Password>admin</Password>
                <GatewayEndpoint>http://${carbon.local.ip}:${http.nio.port},https://${carbon.local.ip}:${https.nio.port}</GatewayEndpoint>
        </Environment>
    </Environments>

    <APIKeyManager>
        <ServerURL>https://keymanager.apim-wso2.com:${mgt.transport.https.port}/services/</ServerURL>
        <Username>admin</Username>
        <Password>admin</Password>
        .
        .
    </APIKeyManager>

registry.xml

<currentDBConfig>wso2registry</currentDBConfig>
<readOnly>false</readOnly>
<enableCache>true</enableCache>
<registryRoot>/</registryRoot>
<dbConfig name="wso2registry">
    <dataSource>jdbc/WSO2CarbonDB</dataSource>
</dbConfig>


<dbConfig name="govregistry">
  <dataSource>jdbc/WSO2REG_DB</dataSource>
</dbConfig>
<remoteInstance url="https://publisher.apim-wso2.com"> 
   <id>gov</id>
   <cacheId>user@jdbc:mysql://regdb.mysql-wso2.com:3306/regdb</cacheId>
   <dbConfig>govregistry</dbConfig>
   <readOnly>false</readOnly>
   <enableCache>true</enableCache>
   <registryRoot>/</registryRoot>
</remoteInstance>
<mount path="/_system/governance" overwrite="true">
   <instanceId>gov</instanceId>
   <targetPath>/_system/governance</targetPath>
</mount>
<mount path="/_system/config" overwrite="true">
   <instanceId>gov</instanceId>
   <targetPath>/_system/config</targetPath>
</mount>

.
.
.
.

用户-mgt.xml

<UserManager>
    <Realm>
        <Configuration>
        <AddAdmin>true</AddAdmin>
                <AdminRole>admin</AdminRole>
                <AdminUser>
                     <UserName>admin</UserName>
                     <Password>admin</Password>
                </AdminUser>
            <EveryOneRoleName>everyone</EveryOneRoleName> <!-- By default users in this role sees the registry root -->
            <Property name="dataSource">jdbc/WSO2CarbonDB</Property>
        </Configuration>

        <UserStoreManager class="org.wso2.carbon.user.core.jdbc.JDBCUserStoreManager">
            <Property name="TenantManager">org.wso2.carbon.user.core.tenant.JDBCTenantManager</Property>
            <Property name="dataSource">jdbc/WSO2UM_DB</Property>
            <Property name="ReadOnly">false</Property>
            <Property name="MaxUserNameListLength">100</Property>
            <Property name="IsEmailUserName">false</Property>
            <Property name="DomainCalculation">default</Property>
            <Property name="PasswordDigest">SHA-256</Property>
            <Property name="StoreSaltedPassword">true</Property>
            <Property name="ReadGroups">true</Property>
            <Property name="WriteGroups">true</Property>
            <Property name="UserNameUniqueAcrossTenants">false</Property>
            <Property name="PasswordJavaRegEx">^[\S]{5,30}$</Property>
            <Property name="PasswordJavaScriptRegEx">^[\S]{5,30}$</Property>
            <Property name="UsernameJavaRegEx">^[^~!#$;%^*+={}\\|\\\\&lt;&gt;,\'\"]{3,30}$</Property>
            <Property name="UsernameJavaScriptRegEx">^[\S]{3,30}$</Property>
            <Property name="RolenameJavaRegEx">^[^~!#$;%^*+={}\\|\\\\&lt;&gt;,\'\"]{3,30}$</Property>
            <Property name="RolenameJavaScriptRegEx">^[\S]{3,30}$</Property>
            <Property name="UserRolesCacheEnabled">true</Property>
            <Property name="MaxRoleNameListLength">100</Property>
            <Property name="MaxUserNameListLength">100</Property>
            <Property name="SharedGroupEnabled">false</Property>
            <Property name="SCIMEnabled">false</Property>
        </UserStoreManager>

        <AuthorizationManager
            class="org.wso2.carbon.user.core.authorization.JDBCAuthorizationManager">
            <Property name="AdminRoleManagementPermissions">/permission</Property>
            <Property name="AuthorizationCacheEnabled">true</Property>
        </AuthorizationManager>
    </Realm>
    </UserManager>

我还注意到,即使在这样做之后,在碳主页上,DBMS仍显示为&#34; H2&#34;。这是否与此错误有关?

enter image description here

0 个答案:

没有答案