1

Java API を使用してリソースを APIM 2.0.0 のレジストリにプッシュすると失敗します。

APIM 1.10.0 に対して使用される同じコードは成功します。

再現するサンプルコードはそのようなものです

    String tenantDomain = “mytenant.com"; 
    String url = "https://localhost:9443/t/"+tenantDomain+"/registry"; 
    String userName = “admin@mytenant.com"; 

    String password = “admin"; 

    System.setProperty("carbon.repo.write.mode", "true"); 


    //Get the file which needs to be added to the registry
    File file = new File(“/home/bob/Desktop/myPayload.json"); 
    RemoteRegistry remote_registry = new RemoteRegistry(new URL(url), userName, password); 

    //Import the file to config registry
    RegistryClientUtils.importToRegistry(file ,"/_system/config" ,remote_registry); 

    //Export  from registry 
    //RegistryClientUtils.exportFromRegistry(file ,"/_system/governance/SomePayload.json" ,remote_registry);

への呼び出し RegistryClientUtils.importToRegistry(file ,"/_system/config" ,remote_registry); は失敗します。APIM 1.10.0 に対して実行された同じコードは、ESB などの他の製品で常に行われてきたように、正常に動作します。

一般的な例外は次のとおりです。

原因: org.wso2.carbon.registry.core.exceptions.RegistryException: リソースの追加に失敗しました。推奨パス: /_system/governance/apimgt/applicationdata/customdata/somedata、応答ステータス: 403、応答タイプ: CLIENT_ERROR at org.wso2.carbon.registry.app.RemoteRegistry.put(RemoteRegistry.java:543) at org.wso2 .carbon.registry.core.utils.RegistryClientUtils.processImport(RegistryClientUtils.java:113) org.wso2.carbon.registry.core.utils.RegistryClientUtils.processImport(RegistryClientUtils.java:102) org.wso2.carbon.registry .core.utils.RegistryClientUtils.processImport(RegistryClientUtils.java:102) org.wso2.carbon.registry.core.utils.RegistryClientUtils.processImport(RegistryClientUtils.java:102) at org.wso2.carbon.registry.core.utils .RegistryClientUtils.importToRegistry(RegistryClientUtils.java:65)

APIM 2.0.0 ログには、通常、

[2016-08-18 15:57:34,699] 警告 - JavaLogger の潜在的なクロスサイト リクエスト フォージェリ (CSRF) 攻撃が阻止されました (user:、ip:127.0.0.1、method:POST、uri:/registry/atom/_system/governance /apimgt/applicationdata/customdata/somedata、エラー: 要求に必要なトークンがありません)

4

3 に答える 3

1

APIM 2.0.0 では、CSRF の構成に行がありません。レジストリ エンドポイントは、ストアおよびパブリッシャー用に構成されたエンドポイントに追加する必要があります。[APIM_HOME]/repository/conf/security ディレクトリにある「Owasp.CsrfGuard.Carbon.properties」ファイルにエンドポイントを追加します。このファイルの最後に、以下の行を追加します。

org.owasp.csrfguard.unprotected.registry=%servletContext%/t/*

于 2016-08-22T17:10:58.467 に答える
0

<APIM_HOME>/repository/conf/security/Owasp.CsrfGuard.Carbon.propertiesファイルの最後に以下の行を追加してみてください。

org.owasp.csrfguard.unprotected.reg=%servletContext%/registry/*

更新: JDK 1.8.0_151 のバグが原因で、同じエラーが発生します。

wso2 api マネージャー カーボン ページで 403 Forbidden が返されるのを参照してください。

于 2016-08-22T15:37:34.483 に答える