gpt4 book ai didi

java - 以编程方式使用 j_security_check

转载 作者:行者123 更新时间:2023-11-29 09:17:17 27 4
gpt4 key购买 nike

我有像 localhost:7001/MyServlet 这样的页面。我正在从下面发出一个 http 连接请求

String url = "http://localhost:7001/MyServlet"
PostMethod method = new PostMethod(url);
HttpClient client = new HttpClient();

但是“MyServlet”受 j_security_check 保护。因此,当我建立连接时,会被重定向到登录页面。

如何在一个 HttpConnection 中获得身份验证并访问我的 url

注意:我用的是apache通用的httpclient

import org.apache.commons.httpclient.HttpClient; 
import org.apache.commons.httpclient.methods.PostMethod;

最佳答案

我怀疑您能否在单个请求中登录调用服务器,除非启用了 HTTP BASIC 身份验证。虽然我还不知道 HTTPClient 的 API 的细节,但基本上您需要使用 cookie 来跟踪 session ;将您的登录信息发布到 /j_security_check;然后访问servlet。 (如果使用 ACEGI Security,相同的基本过程适用于 /j_acegi_security_check。)

Tomcat 中的一个令人讨厌的问题是,立即发布到 /j_security_check 会给出 400“错误请求”;它的身份 validator 对状态转换相当挑剔,显然在设计时并未考虑到程序化客户。需要先访问/loginEntry(可以丢掉session cookies以外的response); 然后将您的登录信息发布到/j_security_check然后 遵循结果重定向(我认为返回到 /loginEntry),这将实际存储您的新登录信息; 终于发布到所需的 servlet! NetBeans #5c3cb7fb60fe显示了使用 Tomcat 的容器身份验证登录到 Hudson 服务器的实际操作。

关于java - 以编程方式使用 j_security_check,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8600561/

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