如何将 URL 参数从 GWT 客户端发送到服务器端进行验证



我正在努力增强现有的GWT项目,我正在使用PING添加身份验证。

所以这是流程:

  1. 用户输入应用程序 URL http://...../library-ui
  2. 我想使用 servlet 过滤器来过滤所有 URL 并检查 URL 中的代码参数,如果我在 URL 中看不到代码参数,我想将它们重定向到 PING 身份验证 URL。
  3. 一旦 PING 通过身份验证,它就会重定向到 http://...../library-ui/?code=xxxxxx
  4. 需要此"代码"才能获得与用户相关的 JwT 令牌

我在下面添加一个过滤器:

public void doFilter(final ServletRequest request, final ServletResponse response, final FilterChain filterChain) throws IOException, ServletException {
    HttpServletRequest httpRequest = (HttpServletRequest) request;
    System.out.println(httpRequest);
    String requestURI = httpRequest.getParameter("code");
    System.out.println(requestURI);
    if (!requestURI.contains("code")) {
        HttpServletResponse httpResponse = (HttpServletResponse) response;
        httpResponse.sendRedirect("https://pingwebsite/as/authorization.oauth2?client_id=XXX&response_type=code");
    }
    filterChain.doFilter(request, response);
}

但问题是我的请求 URI 没有代码参数。

System.out.println(requestURI);打印 - 库-UI。

一旦我从 URL 获得代码,我将能够继续前进。

我能够解决这个问题,我不得不使用 window.location 从浏览器获取详细信息并对服务器端执行 RPC 调用。然后,我必须使用授权代码请求 JWT 令牌的 PING 并对其进行验证。

最新更新