Способ создания HTTP-запроса, который перенаправляет в IBM Domino - PullRequest
0 голосов
/ 08 ноября 2019

У меня есть кнопка, которая должна перенаправлять пользователя после выполнения запроса GET. Код для кнопки ниже:

 <xp:eventHandler event="onclick" submit="true"
    refreshMode="complete">
    <xp:this.action><![CDATA[#{javascript:

    var redirectUrl = 'https://oursystem.ru';
    var errorRedirectUrl = 'https://oursystem.ru/errorPage';

    var EGRZAuthObject = new ru.iteko.egrz.requestprocessors.EGRZAuthorization();

    EGRZAuthObject.initializeAuthProcess(redirectUrl, errorRedirectUrl);

    }]]></xp:this.action>
 </xp:eventHandler>

Метод выглядит следующим образом:

public static void initializeAuthProcess(String redirectUrl, String apiRedirectUrl) throws ClientProtocolException, IOException 
{
    HttpClient instance = HttpClientBuilder.create()
    .setRedirectStrategy(new LaxRedirectStrategy()).build();
    String urlToGoTo = AuthURLs.ESIALoginURL(redirectUrl, apiRedirectUrl);
    System.out.println(urlToGoTo);
    HttpGet httpGet = new HttpGet(urlToGoTo);
    HttpResponse response1 = instance.execute(httpGet);
    System.out.println("resp code " + response1.getStatusLine());
}

Вот что происходит:

  1. Мы отправляем запрос GETк API
  2. API перенаправляет нас в другой сервис для авторизации

Однако, похоже, это не работает. Запрос выполняется успешно, но, похоже, не перенаправляет. (когда мы нажимаем на кнопку). Из предыдущего кода мы получаем

http://lk.egrz-test.i-teco.ru/fws/api/esia/login?errorRedirectUrl=https://oursystem.ru&redirectUrl=https://oursystem.ru/errorPage

resp code HTTP/1.1 200 OK

Как заставить страницу перенаправить на ресурс?

Заранее спасибо.

1 Ответ

1 голос
/ 09 ноября 2019

Вы имеете дело с 2 различными http-запросами здесь. Первый браузер -> XPage и один XPage -> Backend. Нет кода, который воздействует на результат второго запроса. Возможно, у вас есть ответ типа 300 (301, 302) в объекте response1. Вы должны передать это обратно в браузер.

Используйте объект контекста, чтобы сделать это.

...