public String login()

in src/com/intellij/idea/plugin/hybris/tools/remote/http/AbstractHybrisHacHttpClient.java [99:139]


    public String login(@NotNull final Project project, @NotNull final RemoteConnectionSettings settings) {
        final var hostHacURL = settings.getGeneratedURL();
        retrieveCookies(hostHacURL, project, settings);
        final var sessionId = Optional.ofNullable(cookiesPerSettings.get(settings))
            .map(it -> it.get(COOKIE_JSESSIONID))
            .orElse(null);
        if (sessionId == null) {
            return "Unable to obtain sessionId for " + hostHacURL;
        }
        final var csrfToken = getCsrfToken(hostHacURL, settings);
        final var params = List.of(
            new BasicNameValuePair("j_username", settings.getUsername()),
            new BasicNameValuePair("j_password", settings.getPassword()),
            new BasicNameValuePair("_csrf", csrfToken)
        );
        final var loginURL = hostHacURL + "/j_spring_security_check";
        final HttpResponse response = post(project, loginURL, params, false, DEFAULT_HAC_TIMEOUT, settings);
        if (response.getStatusLine().getStatusCode() == HttpStatus.SC_MOVED_TEMPORARILY) {
            final Header location = response.getFirstHeader("Location");
            if (location != null && location.getValue().contains("login_error")) {
                return "Wrong username/password. Set your credentials in [y] tool window.";
            }
        }
        final var newSessionId = CookieParser.getInstance().getSpecialCookie(response.getAllHeaders());
        if (newSessionId != null) {
            Optional.ofNullable(cookiesPerSettings.get(settings))
                .ifPresent(cookies -> cookies.put(COOKIE_JSESSIONID, newSessionId));
            return StringUtils.EMPTY;
        }
        final int statusCode = response.getStatusLine().getStatusCode();
        final StringBuilder sb = new StringBuilder();
        sb.append("HTTP ");
        sb.append(statusCode);
        sb.append(' ');
        switch (statusCode) {
            case HTTP_OK -> sb.append("Unable to obtain sessionId from response");
            case HTTP_MOVED_TEMP -> sb.append(response.getFirstHeader("Location"));
            default -> sb.append(response.getStatusLine().getReasonPhrase());
        }
        return sb.toString();
    }