创建在IBM Domino中重定向的HTTP请求的方式

问题描述 投票:0回答:1

我有一个按钮,应该在执行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

如何使页面重定向到资源?

提前感谢。

java http redirect xpages lotus-domino
1个回答
0
投票

您在这里处理2个不同的http请求。第一个浏览器-> XPage和一个XPage->后端。没有代码可作用于第二个请求的结果。您可能在response1对象中具有300类(301、302)类型的响应。您需要将其交给浏览器。

使用上下文对象执行此操作。

© www.soinside.com 2019 - 2024. All rights reserved.