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、エラー: 要求に必要なトークンがありません)