2016-10-20 4 views
2

데이터베이스로 postgresql과 함께 Wso2 APM 및 IDP를 사용하여 REST API를 보호하려고합니다. 아래 링크를 사용하십시오. https://docs.wso2.com/display/CLUSTER44x/Configuring+the+Identity+Server+5.2.0+as+a+Key+Manager+with+API+Manager+2.0.0WSo2 APM-IDP 통합 문제

나는 WEST2 API 관리자를 통해 게시하고, API에 가입하고 액세스 토큰을 생성하고 API를 사용할 수있는 REST API를 만들 수있었습니다. 지금까지는 좋다.

이제 응용 프로그램 - >> 프로덕션 키를 사용하여 두 번째로 새 액세스 토큰을 생성합니다. 이 시점에서 클린업 버튼을 사용하면 예외가 발생합니다. "오류! 키를 부분적으로 만들었습니다. 정리 버튼을 클릭하고 다시 시도하십시오.".

일단 정리 버튼을 클릭하면 액세스 토큰을 다시 생성 할 수 없습니다. "역할 이름 Application/apistore_PizzaShack_PRODUCTION이 이미 시스템에 있습니다 .Pick up new Role".

여기 좀 도와주세요. 두 번째로 액세스 토큰을 생성하는 데 문제가있는 이유는 무엇입니까?

WSo2IS는

<datasources-configuration xmlns:svns="http://org.wso2.securevault/configuration"> 

    <providers> 
     <provider>org.wso2.carbon.ndatasource.rdbms.RDBMSDataSourceReader</provider> 
    </providers> 

    <datasources> 

     <datasource> 
      <name>WSO2_CARBON_DB</name> 
      <description>The datasource used for registry and user manager</description> 
      <jndiConfig> 
       <name>jdbc/WSO2CarbonDB</name> 
      </jndiConfig> 
      <definition type="RDBMS"> 
       <configuration> 
        <url>jdbc:h2:repository/database/WSO2CARBON_DB;DB_CLOSE_ON_EXIT=FALSE</url> 
        <username>wso2carbon</username> 
        <password>wso2carbon</password> 
        <driverClassName>org.h2.Driver</driverClassName> 
        <maxActive>50</maxActive> 
        <maxWait>60000</maxWait> 
        <testOnBorrow>true</testOnBorrow> 
        <validationQuery>SELECT 1</validationQuery> 
        <validationInterval>30000</validationInterval> 
       </configuration> 
      </definition> 
     </datasource> 

     <datasource> 
      <name>WSO2AM_DB</name> 
      <description>The datasource used for API Manager database</description> 
      <jndiConfig> 
       <name>jdbc/WSO2AM_DB</name> 
      </jndiConfig> 
      <definition type="RDBMS"> 
       <configuration> 
        <url>jdbc:postgresql://localhost:5432/apimgt?autoReconnect=true&amp;relaxAutoCommit=true&amp;</url> 
        <username>apiuser</username> 
        <password>apimanager</password> 
        <driverClassName>org.postgresql.Driver</driverClassName> 
        <maxActive>50</maxActive> 
        <maxWait>60000</maxWait> 
        <testOnBorrow>true</testOnBorrow> 
        <defaultAutoCommit>false</defaultAutoCommit> 
        <validationInterval>30000</validationInterval> 
       </configuration> 
      </definition> 
     </datasource> 

     <datasource> 
      <name>WSO2REG_DB</name> 
      <description>The datasource used for registry</description> 
      <jndiConfig> 
       <name>jdbc/WSO2REG_DB</name> 
      </jndiConfig> 
      <definition type="RDBMS"> 
       <configuration> 
        <url>jdbc:postgresql://localhost:5432/registry?autoReconnect=true&amp;relaxAutoCommit=true&amp;</url> 
        <username>apiuser</username> 
        <password>apimanager</password> 
        <driverClassName>org.postgresql.Driver</driverClassName> 
        <maxActive>50</maxActive> 
        <maxWait>60000</maxWait> 
        <testOnBorrow>true</testOnBorrow> 
        <defaultAutoCommit>false</defaultAutoCommit> 
        <validationInterval>30000</validationInterval> 
       </configuration> 
      </definition> 
     </datasource> 

     <datasource> 
      <name>WSO2UM_DB</name> 
      <description>The datasource used for user management</description> 
      <jndiConfig> 
       <name>jdbc/WSO2UM_DB</name> 
      </jndiConfig> 
      <definition type="RDBMS"> 
       <configuration> 
        <url>jdbc:postgresql://localhost:5432/userstore?autoReconnect=true&amp;relaxAutoCommit=true&amp;</url> 
        <username>apiuser</username> 
        <password>apimanager</password> 
        <driverClassName>org.postgresql.Driver</driverClassName> 
        <maxActive>50</maxActive> 
        <maxWait>60000</maxWait> 
        <testOnBorrow>true</testOnBorrow> 
        <defaultAutoCommit>false</defaultAutoCommit> 
        <validationInterval>30000</validationInterval> 
       </configuration> 
      </definition> 
     </datasource> 

     <datasource> 
      <name>WSO2AM_STATS_DB</name> 
      <description>The datasource used for getting statistics to API Manager</description> 
      <jndiConfig> 
       <name>jdbc/WSO2AM_STATS_DB</name> 
      </jndiConfig> 
      <definition type="RDBMS"> 
       <configuration> 
        <url>jdbc:h2:<!-- Full path to JDBC database -->;AUTO_SERVER=TRUE</url> 
        <username>wso2carbon</username> 
        <password>wso2carbon</password> 
        <driverClassName>org.h2.Driver</driverClassName> 
        <maxActive>50</maxActive> 
        <maxWait>60000</maxWait> 
        <testOnBorrow>true</testOnBorrow> 
        <validationQuery>SELECT 1</validationQuery> 
        <validationInterval>30000</validationInterval> 
       </configuration> 
      </definition> 
     </datasource> 

     <datasource> 
      <name>WSO2_MB_STORE_DB</name> 
      <description>The datasource used for message broker database</description> 
      <jndiConfig> 
       <name>WSO2MBStoreDB</name> 
      </jndiConfig> 
      <definition type="RDBMS"> 
       <configuration> 
        <url>jdbc:h2:repository/database/WSO2MB_DB;DB_CLOSE_ON_EXIT=FALSE;LOCK_TIMEOUT=60000</url> 
        <username>wso2carbon</username> 
        <password>wso2carbon</password> 
        <driverClassName>org.h2.Driver</driverClassName> 
        <maxActive>50</maxActive> 
        <maxWait>60000</maxWait> 
        <testOnBorrow>true</testOnBorrow> 
        <validationQuery>SELECT 1</validationQuery> 
        <validationInterval>30000</validationInterval> 
        <defaultAutoCommit>false</defaultAutoCommit> 
       </configuration> 
      </definition> 
     </datasource> 

    </datasources> 

</datasources-configuration> 

WSO2 내가 잘못 registry.xml를 붙여 REgistry.xml

<?xml version="1.0" encoding="ISO-8859-1"?> 

<wso2registry> 
<dbConfig name="govregistry"> 
    <dataSource>jdbc/WSO2REG_DB</dataSource> 
</dbConfig> 

<remoteInstance url="https://localhost"> 
     <id>gov</id> 
     <dbConfig>govregistry</dbConfig> 
     <cacheId>[email protected]:postgresql://localhost:5432/registry</cacheId> 
     <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> 


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

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

    <handler class="org.wso2.carbon.identity.entitlement.policy.finder.registry.RegistryPolicyHandler"> 
<filter class="org.wso2.carbon.identity.entitlement.policy.finder.registry.RegistryPolicyMediaTypeMatcher"> 
<property name="mediaType">application/xacml-policy+xml</property> 
     </filter> 
    </handler> 


    <indexingConfiguration> 
     <startIndexing>false</startIndexing> 
     <startingDelayInSeconds>35</startingDelayInSeconds> 
     <indexingFrequencyInSeconds>5</indexingFrequencyInSeconds> 
     <!--number of resources submit for given indexing thread --> 
     <batchSize>40</batchSize> 
     <!--number of worker threads for indexing --> 
     <indexerPoolSize>40</indexerPoolSize> 
     <!-- location storing the time the indexing took place--> 
     <lastAccessTimeLocation>/_system/local/repository/components/org.wso2.carbon.registry/indexing/lastaccesstime</lastAccessTimeLocation> 
     <!-- the indexers that implement the indexer interface for a relevant media type/(s) --> 
     <indexers> 
      <indexer class="org.wso2.carbon.registry.indexing.indexer.MSExcelIndexer" mediaTypeRegEx="application/vnd.ms-excel"/> 
      <indexer class="org.wso2.carbon.registry.indexing.indexer.MSPowerpointIndexer" mediaTypeRegEx="application/vnd.ms-powerpoint"/> 
      <indexer class="org.wso2.carbon.registry.indexing.indexer.MSWordIndexer" mediaTypeRegEx="application/msword"/> 
      <indexer class="org.wso2.carbon.registry.indexing.indexer.PDFIndexer" mediaTypeRegEx="application/pdf"/> 
      <indexer class="org.wso2.carbon.registry.indexing.indexer.XMLIndexer" mediaTypeRegEx="application/xml"/> 
      <indexer class="org.wso2.carbon.registry.indexing.indexer.XMLIndexer" mediaTypeRegEx="application/(.)+\+xml"/> 
      <indexer class="org.wso2.carbon.registry.indexing.indexer.PlainTextIndexer" mediaTypeRegEx="application/swagger\+json"/> 
      <indexer class="org.wso2.carbon.registry.indexing.indexer.PlainTextIndexer" mediaTypeRegEx="application/(.)+\+json"/> 
      <indexer class="org.wso2.carbon.registry.indexing.indexer.PlainTextIndexer" mediaTypeRegEx="text/(.)+"/> 
      <indexer class="org.wso2.carbon.registry.indexing.indexer.PlainTextIndexer" mediaTypeRegEx="application/x-javascript"/> 
     </indexers> 
     <exclusions> 
      <exclusion pathRegEx="/_system/config/repository/dashboards/gadgets/swfobject1-5/.*[.]html"/> 
      <exclusion pathRegEx="/_system/local/repository/components/org[.]wso2[.]carbon[.]registry/mount/.*"/> 
     </exclusions> 
    </indexingConfiguration> 


    <versionResourcesOnChange>false</versionResourcesOnChange> 

    <!-- NOTE: You can edit the options under "StaticConfiguration" only before the 
    startup. --> 
    <staticConfiguration> 
     <versioningProperties>true</versioningProperties> 
     <versioningComments>true</versioningComments> 
     <versioningTags>true</versioningTags> 
     <versioningRatings>true</versioningRatings> 
    </staticConfiguration> 
</wso2registry> 

나의 사과입니다 mastersources.xml. 나는 지금 정확한 것을 붙여 넣었다. 액세스 토큰을 생성하려고 시도 할 때 예외가 발생하는 이유를 알려주십시오.

+0

사과 전에 잘못된 registry.xml을 붙여 넣었습니다. 나는 지금 정확한 것을 붙여 넣었다. 액세스 토큰을 생성하려고 시도 할 때 예외가 발생하는 이유를 알려주십시오. – user2913809

답변

1

IS (KM) 및 APIM 노드간에 Registry/UM 데이터베이스를 제대로 공유하지 않은 경우에 발생할 수 있습니다. master-datasources.xmlregistry.xml 파일을 다시 확인하십시오. 구성에 대한 도움이 필요하면 구성에 대한 질문을 업데이트하십시오.

업데이트 : 문제는 registry.xml 구성으로 의심됩니다. 2 개의 서버간에 레지스트리 (공유 레지스트리 데이터베이스)를 마운트해야합니다. 그것이 완료된 방법은 당신이 언급하고있는 동일한 문서의 9 단계에서 설명합니다.

+0

WSo2 IS 구성에 대한 xml을 추가했습니다. – user2913809

+0

대답을 업데이트했습니다. – Bee

+0

Bhatiya, 모든 도움을 주셔서 감사합니다. – user2913809