当前位置: 首页 > article >正文

【案例71】配置https之后 IE打不开登陆页面 Uclient没有问题

问题现象

配置https之后 IE打不开登陆页面 Uclient没有问题。

jvm控制台 显示如下

basic: 已调整小应用程序大小且已将其添加到父容器中
basic: PERF: AppletExecutionRunnable - applet.init() BEGIN ; jvmLaunch dt 170755 us, pluginInit dt 722531 us, TotalTime: 893286 us
network: 找不到高速缓存条目 [url: https://127.0.0.1:80/, 版本: null]
network: 正在使用代理 DIRECT 连接 https://127.0.0.1:80/
network: 正在使用代理 DIRECT 连接 http://127.0.0.1:80/
basic: 已初始化小应用程序

问题分析

1、https配置了443端口
但是通过IE访问却走了https://127.0.0.1:80 ,删除httpd中所有关于80端口的配置,问题依旧

2、IE有问题,Uclient没有问题
IE访问的是login.jsp Uclient不是。通过 F12 查看源文件发现网页中就是调用的https://127.0.0.1:80/Client/java.exe也就是生成html就错了login.jsp ,主要就是调用的 a.jsp。

查看相关登录代码

##相关文件路径已经打码为XXX,相关文件加密为a.jsp。请不要按照此路径找,是找不到嘀~

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<c:choose>
  <c:when test="${(empty param.width )|| (empty param.height)}">
          <jsp:forward page="xxx/xxx/a.jsp">
                <jsp:param name="autoResize" value="true" />
                </jsp:forward>
  </c:when>
  <c:otherwise>
          <jsp:forward page="xxx/xxx/a.jsp" />

  </c:otherwise>
</c:choose>

查看a.jsp代码与端口有关的代码

发现强制走了强制走了80端口 应该是之前做的改动 非标准产品

String schme = request.getScheme();
String serverName = request.getServerName();
serverName = java.net.URLEncoder.encode(serverName, "UTF-8");
String port = heads.length>1?heads[1]:80 //request.getServerPort()+"";
String headStr = schme+"://"+serverName+":"+port+"/";
String userAgent = request.getHeader("user-agent");
String jreName = "xx/jre-xx-xx-i586.exe";
if(userAgent != null && userAgent.toLowerCase().indexOf("x64;") != -1)

标准的应该是自动获取相关端口 

String schme = request.getScheme();
String serverName = request.getServerName();
serverName = java.net.URLEncoder.encode(serverName, "UTF-8");
String port = request.getServerPort()+"";
String headStr = schme+"://"+serverName+":"+port+"/";
String userAgent = request.getHeader("user-agent");
String jreName = "xx/jre-xx-xx-i586.exe";
if(userAgent != null && userAgent.toLowerCase().indexOf("x64;") != -1)

解决办法

为了保障之前功能逻辑OK,改为当https的时候走443,非https的时候走80。重新刷新页面问题解决。

String basePort = '80';
if (schme.equalsIgnoreCase("https"))
    basePort = '443';
String port = heads.length>1?heads[1]:basePort; //request.getServerPort()+"";


http://www.kler.cn/news/308761.html

相关文章:

  • 《微信小程序实战(2) · 组件封装》
  • 【重学 MySQL】二十七、七种 join 连接
  • 宝塔Linux部署 Vue + Spring Boot + MySQL + Redis
  • Parallels Desktop 20 for Mac 正式发布,更新了哪些新功能(附下载链接)!
  • 深度学习驱动超材料设计领域发展
  • 用Inno Setup打包QT程序输出安装包
  • 消息队列的幂等问题解决方案
  • 51单片机+proteus+学习3(串口、矩阵按键)
  • 了解华为云容器引擎(Cloud Container Engine)
  • 关于http的206状态码和416状态码的意义、断点续传以及CORS使用Access-Control-Allow-Origin来允许跨域请求
  • 网络运维故障处理案例
  • 武汉传媒学院联合创龙教仪建设DSP教学实验箱,基于DSP C6000平台搭建
  • Pytorch详解-模型模块(RNN,CNN,FNN,LSTM,GRU,TCN,Transformer)
  • 了解云容器实例云容器实例(Cloud Container Instance)
  • JavaSE入门
  • 多线程同步
  • 【数据结构】经典题
  • 初始MYSQL数据库(5)—— 索引
  • LabVIEW减速机加载控制系统
  • HarmonyOS 实现沉浸式效果
  • Spring自定义注解
  • 超全网络安全面试题汇总(2024版)
  • 速盾:网页游戏可以开cdn吗?
  • selenium元素定位:元素点击交互异常解决方法
  • 1.数据结构-双链表
  • YOLOv8改进 - 注意力篇 - 引入CBAM注意力机制
  • TCP.IP四层模型
  • Redis命令:redis-cli
  • 【乐企】基础请求封装
  • 【基于C++的产品入库管理系统】