gpt4 book ai didi

tomcat - 使用 cURL 的 j_security 身份验证

转载 作者:行者123 更新时间:2023-11-28 23:48:05 25 4
gpt4 key购买 nike

我正在使用 Tomcat JDBCRealm 对访问 protected 页面的用户进行身份验证。到达 protected 页面时,身份验证工作正常。现在我想使用 cURL 自动执行此过程。我写了下面的代码,但它不起作用:

$domainUrl = "http://mydomain.com/protectedArea?j_username=john&j_password=doe";
$ch = curl_init ();
curl_setopt ( $ch, CURLOPT_URL, $domainUrl );
//curl_setopt ( $ch, CURLOPT_POST, true );
//curl_setopt ( $ch, CURLOPT_POSTFIELDS, $post );
curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_FRESH_CONNECT, true);
curl_setopt ( $ch, CURLOPT_TIMEOUT, 7 );

$output = curl_exec ( $ch );
curl_close ( $ch );

在 tomcat 日志中我们只能看到 http GET :

[07/Aug/2012:11:51:24 +0200] GET http://mydomain.com/protectedArea?j_username=john&j_password=doe HTTP/1.1 200 1618

而我们应该有这样的东西:

[07/Aug/2012:11:57:06 +0200] GET http://mydomain.com/protectedArea?j_username=john&j_password=doe HTTP/1.1 200 1516
[07/Aug/2012:11:57:06 +0200] POST http://mydomain.com/j_security_check HTTP/1.1 302 -

有人知道吗?

谢谢你的帮助

问候

最佳答案

看起来您只有一个 curl_exec 调用...您是否期​​望一次调用会导致对服务器的两个单独请求?您必须执行以下操作才能编写基于表单的登录到符合规范的服务器的脚本:

  1. 向 protected 资源发出请求。任何人都可以。
  2. j_security_check 发出请求并包含j_usernamej_password 请求参数。 POST 是避免 Web 服务器记录凭据的好主意。如果认证成功,你应该得到最初在#1中请求的资源。
  3. 向您真正想要访问的 protected 资源发出请求。

关于tomcat - 使用 cURL 的 j_security 身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11843585/

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