Esempio n. 1
0
 /**
  * 先从从前台隐藏字段取;取不到,再从request取(当使用nginx等进行https->http代理转发时,直接使用request.getRequestUrl()可能取不到客户想要的地址
  * <br>
  * 尤其在需求将url以明文提供给用户使用,如密码修改链接等场景)
  *
  * @param request
  * @return
  */
 public static String getRequestUrl(HttpServletRequest request) {
   String baseUrl = request.getParameter(RequestKey.PARA_CLIENT_BASE_URL.key());
   if (StringUtils.isNotBlank(
       baseUrl)) { // 从前台隐藏字段取,取不到再从request取(在使用nignx等进行https->http代理转发时可能取不到客户想要的地址)
     return baseUrl + request.getRequestURI();
   }
   return request.getRequestURL().toString();
 }
Esempio n. 2
0
 /**
  * 判断是否应该从https到http重定向
  *
  * @param request
  * @return
  */
 public static boolean isRedirectHttp(HttpServletRequest request) {
   String baseUrl = request.getParameter(RequestKey.PARA_CLIENT_BASE_URL.key());
   String actionBaseUrl = request.getParameter(RequestKey.PARA_CLIENT_ACTION_BASE_URL.key());
   if (StringUtils.isNotBlank(baseUrl)
       && !baseUrl.equals(
           actionBaseUrl)) { // && redirectHttpFlag){//TODO 全程SSL支持只在这里处理即可,可放到shiro的session中
     return true;
   }
   return false;
 }
Esempio n. 3
0
 /**
  * 执行post之后的重定向(主要用于https转为http)
  *
  * @param request
  * @param redirectAttributes
  * @param result 使用spring freemarker错误结果
  * @param bindingEntity
  * @param bindingEntityName
  * @param origPage
  * @return 重定向后的URL地址
  */
 public static String issueRedirectHttp(
     HttpServletRequest request,
     RedirectAttributes redirectAttributes,
     BindingResult result,
     Object bindingEntity,
     String bindingEntityName,
     String origPage) {
   if (result != null) {
     redirectAttributes.addFlashAttribute(bindingEntityName, bindingEntity);
     redirectAttributes.addFlashAttribute(
         BindingResult.MODEL_KEY_PREFIX + bindingEntityName, result);
   }
   if (!isRedirectHttp(request)) {
     return origPage;
   }
   String baseUrl = request.getParameter(RequestKey.PARA_CLIENT_BASE_URL.key());
   if (origPage.startsWith(UrlBasedViewResolver.REDIRECT_URL_PREFIX)) {
     return origPage.replaceFirst(
         UrlBasedViewResolver.REDIRECT_URL_PREFIX,
         UrlBasedViewResolver.REDIRECT_URL_PREFIX + baseUrl + request.getContextPath());
   } else {
     return baseUrl + request.getContextPath() + origPage;
   }
 }