使用 Java 客户端实现 Spring Security

2023-12-02

客户端

我有一个使用基本 POST 或 GET 方法连接到远程服务器的 java 应用程序:

URL url = new URL(urlStr);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("POST");
conn.setDoOutput(true);
conn.setDoInput(true);
conn.setAllowUserInteraction(false);
conn.setRequestProperty("Content-type", "text/xml; charset=" + ENCODING);

conn.connect();
conn.getOutputStream().write(data.getBytes(ENCODING));
conn.getOutputStream().close();

(我无法更改此代码,我唯一可以更改的是urlStrdata调用该方法时发送到服务器)。

[EDIT]:客户端可以是java客户端或任何其他客户端(c++,objective-c,..)。这里的重点是我只能访问帖子正文中的内容以及 URL。

服务器端

在我的服务器端,我想实现 Spring Security(SecurityContext 和会话持久性)。

我知道 Spring Security 是基于浏览器的 Cookie 的WebApp保存有关的信息session id。但就我而言,没有浏览器。

  • 我需要模拟存储吗JSESSIONID并将其发送回服务器?我不确定这是否可能,因为我需要打电话conn.addRequestProperty(key, value)这是不可能的。

  • 还有其他办法吗?

谢谢。

[EDIT]

正如@zagyi 所指出的,我可以使用 URL 将会话令牌传递给 Spring,但我仍然不知道如何操作。


在 url 中传递 jsessionid 只需将其附加到 url 末尾即可,如下所示:

http://localhost:8080/example/auth/login;jsessionid=A06F00609BBA8A4C2B005FB25F90C4C9

如果您将浏览器配置为不接受任何 cookie,您可以在工作中看到这一点,在这种情况下,服务器会自动在 url 中包含会话 ID(假设默认的 tomcat 配置)。这个话题也被讨论在这个问题.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Java 客户端实现 Spring Security 的相关文章

随机推荐