Java Spring-页面在第二次重定向调用后未重定向

时间:2019-04-30 17:46:16

标签: java spring redirect

在我的Spring应用程序中,当调用浏览器时,我有一个为JSP页面提供服务的终结点。这很好。 JSP收集一些信息,并在我的控制器类中调用第二个API来处理已收集的数据。如果由于某种原因数据无效,我将向我创建的登录页面的浏览器发送第二次重定向操作。该流程正在运行,当我检查网络流量时,看到对我的登录页面的OPTIONS调用,然后是获取HTML的第二个调用,但是浏览器停留在我的“请稍候...”初始页面中,而JSP没有切换上下文。控制器的示例为:

@RequestMapping(value = "/token/{token_code}", method = {RequestMethod.GET})
public void validateToken(HttpServletRequest servletRequest, HttpServletResponse servletResponse, @PathVariable String token_code) {
  //set some servlet request attributes from incoming packet info
  if(isTokenValid(token_code)) {
       servletRequest.getRequestDispatcher(MyConstants.JSP_DEVICE_INFO).forward(servletRequest, servletResponse);
   }
  else {
     servletRequest.getRequestDispatcher(MyConstants.FAILURE_URL).forward(servletRequest, servletResponse);
  }
}

@RequestMapping(value = "/token/tokenRedirect", method = {RequestMethod.POST},headers = "content-type=application/json",consumes = {MediaType.APPLICATION_JSON_VALUE})
public ModelAndView getSession(HttpServletRequest servletRequest,
                                   HttpServletResponse servletResponse,
                                   @RequestBody TokenValidateRequest request)
{
  boolean isValid = verifyCollectedInfo(request);
  if(isValid) {
      return new ModelAndView("redirect:" + request.url());
  }
  else {
      return new ModelAndView("redirect:" + MyConstants.FAILURE_URL);
  }
}

我的JSP从第一个端点提供服务,并使用收集的信息调用第二个端点进行验证。如果信息有误,我应该点击该登录页面,但是就像我说的那样,我是通过GET调用从登录页面获取HTML的,但是没有发生重定向操作。为了安全起见,浏览器是否会停止第二次重定向操作?

0 个答案:

没有答案