java - 在服务器端访问由超级账本作曲家休息服务器生成的安全休息 api
问题描述
我正在使用 composer-rest-server 生成休息 api。我正在使用passport-jwt 验证rest api。在作曲家休息服务器中,我们在 cookie 中获得 access_token。
我们可以设置 withCredentials:true 以使用客户端访问这些 api,但是我们如何使用服务器端调用这些 api
现在,当我们从服务器端(java)发起相同的 api 调用时,它会失败。给我们401: Authorization Required error
。
所以我的问题是 - 是否可以从服务器端(java)调用安全的作曲家 API?如果有人以前尝试过这个,请告诉我。
解决方案
试试这个代码来检索 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