Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 以编程方式使用j_安全检查_Java_J Security Check - Fatal编程技术网

Java 以编程方式使用j_安全检查

Java 以编程方式使用j_安全检查,java,j-security-check,Java,J Security Check,我有类似localhost:7001/MyServlet的页面。我正在从下面这样的位置发出http连接请求 String url = "http://localhost:7001/MyServlet" PostMethod method = new PostMethod(url); HttpClient client = new HttpClient(); 然而,“MyServlet”受到j_安全检查的保护。所以,当我建立连接时,会被重定向到登录页面 如何在一个HttpConnection中

我有类似localhost:7001/MyServlet的页面。我正在从下面这样的位置发出http连接请求

String url = "http://localhost:7001/MyServlet"
PostMethod method = new PostMethod(url); 
HttpClient client = new HttpClient();
然而,“MyServlet”受到j_安全检查的保护。所以,当我建立连接时,会被重定向到登录页面

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

注意:我使用apachecommonhttpclient

import org.apache.commons.httpclient.HttpClient; 
import org.apache.commons.httpclient.methods.PostMethod;
我怀疑您能否在一个请求中登录并调用服务器,除非启用了HTTP基本身份验证。虽然我还不知道HTTPClient的API的细节,但基本上您需要使用cookie跟踪会话;将您的登录信息发布到
/j_security_check
;然后访问servlet。(如果使用acegi security,则相同的基本过程适用于
/j_acegi_security\u check

Tomcat中一个令人讨厌的问题是,只要立即发布到
/j_security_check
就会给出400个“错误请求”;它的验证器对状态转换相当挑剔,并且显然没有考虑编程客户端。您需要首先访问
/loginEntry
(您可以丢弃会话cookie以外的响应);然后将您的登录信息发布到
/j_security_check
;然后按照结果重定向(我想返回到
/loginEntry
),它将实际存储您的新登录信息;最后发布到所需的servlet!NetBeans在使用Tomcat的容器身份验证登录Hudson服务器时显示了这一点。

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

Tomcat中一个令人讨厌的问题是,只要立即发布到
/j_security_check
就会给出400个“错误请求”;它的验证器对状态转换相当挑剔,并且显然没有考虑编程客户端。您需要首先访问
/loginEntry
(您可以丢弃会话cookie以外的响应);然后将您的登录信息发布到
/j_security_check
;然后按照结果重定向(我想返回到
/loginEntry
),它将实际存储您的新登录信息;最后发布到所需的servlet!NetBeans在使用Tomcat的容器身份验证登录Hudson服务器时实际显示了这一点