日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

系統集群驗證簽名

更新時間:

本文介紹如何進行系統集群驗證簽名。

說明

網關提供服務端 Demo 代碼供用戶下載測試,下載 API 提供者 Demo 后,Demo 接口位置為:com.alipay.gateway.common.GatewayFilter。

操作步驟如下:

  1. 引入網關 SDK

  2. 配置 API 服務密鑰

  3. 配置 Filter

引入網關 SDK

API 網關的客戶端依賴 gateway-sdk。對服務端而言主要是配置 spring 攔截器,對請求進行驗簽以及對響應進行加簽。您需要在本地工程 pom.xml 中添加如下 SDK。

說明
  • 如網關和服務端之間不需要雙向認證,則無需引入 gateway-sdk,直接編寫 HTTP API 服務即可。

  • 網關 SDK 新增了數據加密的功能,請參見 數據加密。

<dependency>
<groupId>com.alipay.sofa</groupId>
<artifactId>gateway-sdk</artifactId>
<version>2.5.0</version>
</dependency>

配置密鑰

如果 API 服務發布的系統集群配置了 密鑰 的認證方式,您還需要在工程中配置相應的 Access Key 和 Secret Key,推薦使用啟動參數和環境變量的形式。

# 服務發布方的ak、sk,也就是系統集群的密鑰信息
pub.app.accessKey=<yourAccessKeyId>
pub.app.secretKey=<yourAccessKeySecret>

配置 Filter

您需要為服務添加驗簽 filter。HTTP API 服務支持 REST 及 Spring MVC 框架。

Spring MVC 服務

    @Bean
    public FilterRegistrationBean filterRegistrationBean(@Value("${pub.app.accessKey}") String keyId,
                                                         @Value("${pub.app.secretKey}") String secretKey) {
        FilterRegistrationBean registration = new FilterRegistrationBean();
        registration.setFilter(apiServletSignFilter(keyId, secretKey));
        registration.addUrlPatterns("/sign"); // filter生效的uri路徑,表示對 /sign 開頭的路徑生效
        registration.setName("apiServletSignFilter");
        registration.setOrder(Ordered.HIGHEST_PRECEDENCE);
        return registration;
    }

    @Bean
    public ApiServletSignFilter apiServletSignFilter(@Value("${pub.app.accessKey}") String keyId,
                                                     @Value("${pub.app.secretKey}") String secretKey
    ) {
        ApiSecretKey apiSecretKey = new ApiSecretKey(keyId, secretKey);
        ApiServletSignFilter filter = new ApiServletSignFilter();
        List<ApiSecretKey> secretKeys = new ArrayList<>();
        secretKeys.add(apiSecretKey);
        filter.setApiSecretKeys(secretKeys);
        filter.setCheckSign(true);
        filter.setSignUriRegex("/j"); // 開啟驗簽加簽的uri路徑,表示對 /j 開頭的路徑做加簽驗簽,其他路徑則不驗簽
        return filter;
    }

REST 服務

說明

當系統集群需要密鑰認證時,需要開啟響應驗簽,并在方法中加上 @NeedSign。

1


    // 給 rest 服務添加filter,請求驗簽
    @Bean
    public ApiRestSignFilter apiRestSignFilter(@Value("${pub.app.accessKey}") String keyId,
                                               @Value("${pub.app.secretKey}") String secretKey) {
       ApiSecretKey apiSecretKey = new ApiSecretKey(keyId, secretKey);
        List<ApiSecretKey> secretKeys = new ArrayList<>();
        secretKeys.add(apiSecretKey);
        ApiRestSignFilter filter = new ApiRestSignFilter();
        filter.setApiSecretKeys(secretKeys);
        filter.setCheckSign(false);//請求驗簽開關
        //
        JAXRSProviderManager.registerCustomProviderInstance(filter);

        return filter;
    }