Кук ie удаляется локально, но не при развертывании - PullRequest
0 голосов
/ 20 февраля 2020

Я пытаюсь сделать недействительным повар ie, созданный моим кодом. Я хочу сделать это, создав новую конечную точку для выхода из системы. Я должен выбрать между двумя путями для перенаправления в зависимости от того, возвращает ли конечная точка данные или нет. Когда я запускаю код локально, он работает как шарм. Удаляет cook ie и перенаправляет на правильный URL-адрес, но, если я тестирую его, развернутый на удаленном сервере, он не работает, а это означает, что он перенаправляет правильно, но не истекает cook ie и не изменяет его значение. Весь мой код должен быть внутренним, поэтому я не могу перенаправить на javascript, который удалит повара ie и перенаправит снова.

@RequestMapping(value = "/logout", method = RequestMethod.GET)
public void cookieKiller(
        @CookieValue(name = "theCookie", required = false) Cookie myCookie,
        HttpServletResponse response, HttpServletRequest request) {


    if (myCookie != null) {
    } else { // Just being cautious, if the cookie is not retrieved, would be overwritten anyway just in case
        myCookie = new Cookie("theCookie","");
    }
    myCookie.setMaxAge(0);
    myCookie.setValue("");
    myCookie.setPath("/");
    response.addCookie(myCookie);

    boolean endpointHealthy = true;

    if(haveITheEndpointUrls()) {
        endpointHealthy = false;
    } else {
        try {
            String eaiResponseJson = restTemplateAutowired.getForEntity(new URI(oneUrl),String.class).getBody();

            if (eaiResponseJson != null && !eaiResponseJson.isBlank()) {
                response.sendRedirect(eaiSamlUrl);
            } else {
                endpointHealthy = false;
            }

        } catch (IOException e) {
            endpointHealthy = false;
        } catch (ResourceAccessException e) {
            endpointHealthy = false;
        } catch (HttpClientErrorException e) {
            endpointHealthy = false;
        } catch (Exception e) {
            endpointHealthy = false;
        }
    }

    if (!endpointHealthy) {
        try {
            response.sendRedirect(request.getContextPath() + "/internal/Path");
        } catch (IOException ex) {
            // ...
        }
    }

}

Если я добавлю нового повара ie, Генерируемый домен отличается от исходного, представленного в передней части приложения. Будучи последним "domain.com" и первым ".domain.com", так что я думаю, что это доменная вещь

Я пытался изменить путь, изменить значение, et c, но это тоже не сработает, я много занимался поиском ответа, но безрезультатно. Некоторые предложения или подсказки о доменах или какие-либо подсказки, которые я мог пропустить?

1 Ответ

0 голосов
/ 21 февраля 2020

Мой локальный код генерировал Cook ie, как domain.com, но SHibboleth нужно готовить ie доменов, начиная с точки Я пытался создать повара ie таким способом, но это не было возможно в Tomcat, если вы не используете LegacyCookieManager.

...