Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java RestEasy客户端到安全服务_Java_Rest_Resteasy - Fatal编程技术网

Java RestEasy客户端到安全服务

Java RestEasy客户端到安全服务,java,rest,resteasy,Java,Rest,Resteasy,我们已经部署了RestEasy服务,作为应用程序的一部分,并使用实现javax.servlet.filter的filter类保护它们。筛选器检查会话中是否存在用户类的对象。用户登录时将用户对象插入会话。一切正常 但是,我们需要创建访问这些服务的独立应用程序。我们决定使用RestEasy客户端API。如果关闭过滤器,我们可以访问这些服务,但是如何从RestEasy客户端API执行登录和会话操作。假设您的独立客户端是用Java编写的。 然后,示例代码如下所示 首先,我们需要通过调用身份验证服务对用户

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


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

假设您的独立客户端是用Java编写的。 然后,示例代码如下所示

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

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

我不理解您的设置-应用程序有一些面向客户端的javascript代码可以调用的REST端点?现在您有了另一个客户端,它在与您的REST端点对话之前没有获取会话id?我们有一个GWT web应用程序,它已经在访问REST服务了。现在我们需要一个独立的应用程序来访问这些相同的服务。你已经有一个允许你登录的服务了吗?例如,您向其发布用户名/密码并使用会话id进行回复的内容?如果不是,最简单的方法就是创建该服务,并让您的独立应用程序第一次调用该服务。所有进一步的呼叫都需要提供该id。是的,我们有这样的服务。服务的登录方法返回用户对象,同时将该对象存储到HttpSession。正如我所说,servlet过滤器使用这个对象过滤未经验证的请求。您能否提供代码示例,如何在下次服务调用中提供此id?
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());