首页 > 解决方案 > 在服务器端访问由超级账本作曲家休息服务器生成的安全休息 api

问题描述

我正在使用 composer-rest-server 生成休息 api。我正在使用passport-jwt 验证rest api。在作曲家休息服务器中,我们在 cookie 中获得 access_token。

我们可以设置 withCredentials:true 以使用客户端访问这些 api,但是我们如何使用服务器端调用这些 api

现在,当我们从服务器端(java)发起相同的 api 调用时,它会失败。给我们401: Authorization Required error

所以我的问题是 - 是否可以从服务器端(java)调用安全的作曲家 API?如果有人以前尝试过这个,请告诉我。

标签: javaspring-boothyperledger-fabrichyperledger-composer

解决方案


试试这个代码来检索 cookie:

public void getCookieUsingCookieHandler() { 
try {       
    // Instantiate CookieManager;
    // make sure to set CookiePolicy
    CookieManager manager = new CookieManager();
    manager.setCookiePolicy(CookiePolicy.ACCEPT_ALL);
    CookieHandler.setDefault(manager);

    // get content from URLConnection;
    // cookies are set by web site
    URL url = new URL("http://host.example.com");
    URLConnection connection = url.openConnection();
    connection.getContent();

    // get cookies from underlying
    // CookieStore
    CookieStore cookieJar =  manager.getCookieStore();
    List <HttpCookie> cookies =
        cookieJar.getCookies();
    for (HttpCookie cookie : cookies) {
            if (cookie.getName().equalsIgnoreCase("access_token")) {
                System.out.println("CookieHandler retrieved cookie: " + cookie.getValue());
                break;
            }

        }
} catch(Exception e) {
    System.out.println("Unable to get cookie using CookieHandler");
    e.printStackTrace();
}
}

可以从这里参考:https ://docs.oracle.com/javase/tutorial/deployment/doingMoreWithRIA/accessingCookies.html


推荐阅读