Доступ к защищенному API отдыха на стороне сервера, сгенерированному сервером отдыха Hyperledger Composer - PullRequest
0 голосов
/ 04 июля 2018

Я генерирую остальные API, используя composer-rest-server. Я аутентифицирую остальные API, используя Passport-JWT. На сервере отдыха композитора мы получаем access_token в cookie.

Мы можем установить withCredentials: true для доступа к этим API-интерфейсам на стороне клиента, но как мы можем вызывать эти API-интерфейсы на стороне сервера

Теперь, когда мы делаем тот же вызов API, инициированный со стороны сервера (java), он завершается неудачно. Дает нам 401: Authorization Required error.

Так что мой вопрос - можно ли вызывать API-интерфейсы защищенного композитора со стороны сервера (java)? Если кто-то пробовал это раньше, пожалуйста, дайте мне знать.

1 Ответ

0 голосов
/ 26 ноября 2018

Попробуйте этот код, чтобы получить куки:

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

...