我正在 SBT 之上实现自定义 API。我这样做是为了在将连接返回给用户之前操纵和转换来自连接的响应。
使用用户名和密码的基本身份验证正在运行。但我似乎不知道如何在发送请求之前将 JSESSIONID 标头添加到 ClientService (ClientService.Args)。
知道如何做到这一点吗?
我正在 SBT 之上实现自定义 API。我这样做是为了在将连接返回给用户之前操纵和转换来自连接的响应。
使用用户名和密码的基本身份验证正在运行。但我似乎不知道如何在发送请求之前将 JSESSIONID 标头添加到 ClientService (ClientService.Args)。
知道如何做到这一点吗?
由于 REST 是无状态的,理论上你应该不需要 JSESSIONID cookie,它用于保存登录用户的状态。但是,如果您确实希望添加,您应该按照以下方式进行操作:
在特定的端点类(如 Basic Authentication 的 BasicEndpoint.java )中,查找初始化方法,在这种情况下它将注册一个拦截器 BasicInterceptor 。在 BasicInterceptor 的 process 方法中,您可以添加 cookie
request.setHeader("Cookie", "JESSION 字符串放在这里");
此代码拦截所有传出请求并添加 cookie 标头。
希望这可以帮助。
当您发出请求时,当您执行 BASICAUTH 时,JSESSIONID cookie 应该已经在响应中。
此外,不保证 JSESSIONID 是 WAS 应用服务器的唯一标识符。