我有一个rest api,它有一个使用shiro进行身份验证的登录资源。例如,当从postMan客户端调用登录然后尝试执行操作时,我监视休息服务器端的shiro会话,它始终是相同的。
另外我有一个使用Jersey创建HTTP请求的java客户端,但是在运行它时我注意到每个调用都有不同的shiro会话!
登录时创建一次客户端:
Client client = ClientBuilder.newClient();
baseTarget = client.target(baseUrl);
然后在每次通话中我都有类似的东西:
Invocation.Builder builder;
builder = baseTarget.path(apiPath + "blabla")
.queryParam("bla", bla)
.
.
.
.request(MediaType.APPLICATION_JSON);
Response response = builder.post(Entity.json(null));
我怎样才能保证每次通话都有相同的会话?!
您需要发送包含关联的会话cookie(默认为JSESSIONID
)。