【问题标题】:Pentaho REST API: Issue when using Pentaho Cookie-Based AuthenticationPentaho REST API:使用 Pentaho 基于 Cookie 的身份验证时出现问题
【发布时间】:2019-04-22 18:29:49
【问题描述】:

为此苦苦挣扎了一段时间,因此非常感谢您的帮助...

我已将 Pentaho 报告加载到 Pentaho 服务器中。这些报告通过 Iframe 调用。

我要做的是让用户只进行一次身份验证,这样他就可以运行其他报告而无需重新进行身份验证。为此,我使用 Pentaho 基于 Cookie 的身份验证,如下所述:https://help.pentaho.com/Documentation/8.0/Developer_Center/REST_API

我的问题是: 1) 我写了一个小的 php 脚本,它向 /pentaho/j_spring_security_check 发送一个 POST 请求。脚本不会返回任何错误,但不会按预期将我重定向到主页。

<?php
$data = array("j_username"=>"admin", "j_password"=>"password", 
"locale"=>"en_US");
$string = http_build_query($data);
echo $string;
$ch = 
curl_init("http://localhost:8080/pentaho/j_spring_security_check");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $string);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
echo $ch;
$return = curl_exec($ch);
echo $return;
if (curl_errno($ch)) {
   print curl_error($ch);
}
curl_close($ch);
?>  

2) 我尝试直接在浏览器中输入“http://localhost:8080/pentaho/j_spring_security_check?j_username=admin&j_password=admin”,我得到“login_error=1”结果,而登录名和密码都是正确的(预期的行为是被重定向到主页)。

这是我第一次使用 REST API,所以我可能做错了。

非常感谢

【问题讨论】:

    标签: spring-security pentaho restful-authentication


    【解决方案1】:

    在这里回答:https://community.hitachivantara.com/thread/14811-pentaho-rest-api-issue-when-using-pentaho-cookie-based-authentication

    我错过了重用该 cookie 的步骤。

    此外,使用“curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true)”帮助我理解脚本中的错误并解决它。

    正确的脚本是:

    <?php
    $data = array("user"=>"admin", "password"=>"admin");
    // $string = http_build_query($data);
    // echo $string;
    
    $cookie_jar = tempnam('/Users/pierre/Vrac','cookie');
        if (!file_exists(realpath($cookie_jar))) touch($cookie_jar);
    
    $ch = curl_init("http://localhost:8080/pentaho/j_spring_security_check? 
    j_username=admin&j_password=admin&locale=en_US");
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
    curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_jar);
    curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_HEADER, true);
    
    //echo $ch;
    $return = curl_exec($ch);
    
    echo "execution report";
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_jar);
    curl_setopt($ch, CURLOPT_URL,'http://localhost:8080/pentaho/api/repos/:public:IframeDossier:IframeTest.prpt/viewer?label=fin');
    $page = curl_exec($ch);
    echo $page;
    
    
    curl_close($ch);
    
    ?>
    

    【讨论】:

      猜你喜欢
      • 2017-11-24
      • 1970-01-01
      • 1970-01-01
      • 2014-05-28
      • 2021-02-08
      • 2020-10-08
      • 1970-01-01
      • 1970-01-01
      • 2016-05-05
      相关资源
      最近更新 更多