Pentaho не может войти в систему только с одним пользователем. Все остальные пользователи работают нормально - PullRequest
0 голосов
/ 08 июля 2019

Я использую Pentaho, интегрированный с другим разработанным приложением.Я, например, использую Multi-Tenancy 1234 @ test, и я вхожу в pentaho через приложение, а не напрямую через экран входа в pentaho.Мы используем Nginx для прокси Pentaho.Проблема в том, что все пользователи авторизуются, кроме одного.У нас около 140 аккаунтов, и только один не может войти в систему.При попытке войти в систему появляется только пустая страница.

Я пытался удалить пользователя из базы данных Pentaho и снова включил.Я пытался изменить пароль пользователя.Я проверил, были ли введенные полномочия верны, так и было.Я обнаружил, что j_security_check блокирует вход в систему.Но я не знаю, почему Когда я пытаюсь войти в систему и нажать f12, я знаю, что он перенаправляет на страницу входа в pentahos, сообщая, что произошла ошибка входа в систему, но показывает только пустую страницу (например, нет, я не уверен).

Ничто не показывает в catalina.out.localhost_access_log:

[08/Jul/2019:07:48:44 -0300] "GET /pentaho/CacheExpirationService HTTP/1.0" 200 1469
[08/Jul/2019:07:48:44 -0300] "POST /pentaho/j_spring_security_check HTTP/1.0" 302 -
[08/Jul/2019:07:48:44 -0300] "GET /pentaho/Login?login_error=1 HTTP/1.0" 200 7800

Это все, что я получаю из журналов.Мой пользователь находится в базе данных Pentaho.

Файл nginx:

location /pentaho/ {
                proxy_pass http://IP_PENTAHO:8080/pentaho/;
                }

Функция pentado doLogin () в PUCLogin.jsp:

function doLogin() {

    // if we have a valid session and we attempt to login on top of it, the server
    // will actually log us out and will not log in with the supplied credentials, you must
    // login again. So instead, if they're already logged in, we bounce out of here to
    // prevent confusion.
    if (<%=loggedIn%>) {
      bounceToReturnLocation();
      return false;
    }

    jQuery.ajax({
      type: "POST",
      url: "j_spring_security_check",
      dataType: "text",
      data: $("#login").serialize(),

      error:function (xhr, ajaxOptions, thrownError){
        if (xhr.status == 404) {
          // if we get a 404 it means login was successful but intended resource does not exist
          // just let it go - let the user get the 404
          bounceToReturnLocation();
          return;
        }
        //Fix for BISERVER-7525
        //parsereerror caused by attempting to serve a complex document like a prd report in any presentation format like a .ppt
        //does not necesarly mean that there was a failure in the login process, status is 200 so just let it serve the archive to the web browser.
        if (xhr.status == 200 && thrownError == 'parsererror') {
          document.getElementById("j_password").value = "";
          bounceToReturnLocation();
          return;
        }
        // fail
        $("#loginError").show();
        $("#loginError button").focus();
      },

      success:function(data, textStatus, jqXHR){
        if (data.indexOf("j_spring_security_check") != -1) { # HERE I GOT 1596, NOT -1
          // fail
          $("#loginError").show();
          $("#loginError button").focus();
          return false;
        } else {
          document.getElementById("j_password").value = "";
          bounceToReturnLocation();
        }
      }
    });
    return false;
  }

Как я уже сказал, этоединственный пользователь, который не может войти, и я не понимаю, почему.База данных, которую я использую в Пентахо, - Postgresql.

Надеюсь, вы, ребята, сможете мне помочь, спасибо за советы.С наилучшими пожеланиями

...