gpt4 book ai didi

java - 使用 Java 客户端实现 Spring Security

转载 作者:行者123 更新时间:2023-12-04 05:09:15 25 4
gpt4 key购买 nike

客户端

我有一个使用基本 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)。

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

服务器端

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

我知道 spring 安全性基于浏览器的 cookie,当它是 WebApp 时保存有关 session id的信息.但就我而言,没有浏览器。
  • 我需要模拟JSESSIONID的存储吗?并将其发送回服务器?我不确定这是否可行,因为我需要调用 conn.addRequestProperty(key, value)这是不可能的。
  • 有没有其他办法?

  • 谢谢。

    [编辑]

    正如@zagyi 所指出的,我可以使用 URL 将 session token 传递给 Spring,但我仍然不知道如何进行。

    最佳答案

    在 url 中传递 jsessionid 只是将它附加到 url 末尾的问题,如下所示:

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

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

    关于java - 使用 Java 客户端实现 Spring Security,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15096764/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com