RestEasy客户端到安全服务

时间:2014-10-01 11:31:34

标签: java rest resteasy

我们已经部署了RestEasy服务,作为应用程序的一部分,并使用filter(一个实现javax.servlet.Filter的类)来保护它们。过滤器检查会话中是否存在User类的对象。用户登录时会将用户对象插入到会话中。一切正常。

但是,我们需要创建访问这些服务的独立应用程序。我们决定使用RestEasy客户端API。如果过滤器已关闭,我们可以访问这些服务,但我们如何从RestEasy客户端API执行此登录和会话操作。

1 个答案:

答案 0 :(得分:0)

让我们假设您的独立客户端是用Java编写的 然后示例代码看起来像这样。

首先,我们需要通过调用您的身份验证服务来验证用户身份并获取有效的会话ID。让我们假设获得的会话ID等同于" f47cdba8-d066-48e8-ad29-8c4222906bc7 "。然后我们可以使用有效的会话ID作为HTTP头参数来调用REST服务。

String url = "http://localhost:8081/AuthService/";

URL obj = new URL(url);
HttpURLConnection con = (HttpURLConnection) obj.openConnection();

// optional default is GET
con.setRequestMethod("GET");

//add request header
con.setRequestProperty("User-Agent", USER_AGENT);
con.setRequestProperty("Authorization", "token=f47cdba8-d066-48e8-ad29-8c4222906bc7");

int responseCode = con.getResponseCode();
System.out.println("\nSending 'GET' request to URL : " + url);
System.out.println("Response Code : " + responseCode);

BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();

while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();

//print result
System.out.println(response.toString());

在后端,您需要处理此基于会话ID的HTTP标头参数,并在提供之前验证即将到来的请求 希望这会有所帮助。

相关问题