转发 https -> http 网页访问

正常的smiley-http-proxy-servlet 写法,

可以转发https接口到http,http接口到http,http访问转发至http网页,

但是没有办法转发https到http的访问,会提示当前网页已更改地址之类的,总之就是网页无响应,

1. 源码直接copy到项目里,调整源码

  结果代码copy进来了,但是并没有被代理,搜索了一大圈,没结果就不搜了

2. 扩大了搜索范围

  在网上搜索了很久都没有找到相关 https 网页访问转发至http网页访问的,所以就扩大了搜索范围

  搜索了一篇,可以动态代理目标地址的博文,关系不大,我这边也就只有一个网址,随便试试,简单调一下,居然ok了?!

原博文:https://www.cnblogs.com/changxy-codest/p/13093132.html

调整后更新如下:

import org.apache.http.client.utils.URIUtils;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.net.URI; public class ProxyServlet extends org.mitre.dsmiley.httpproxy.ProxyServlet { private static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(ProxyServlet.class);
@Override
protected void service(HttpServletRequest servletRequest, HttpServletResponse servletResponse) throws ServletException, IOException {
servletRequest.setAttribute(ATTR_TARGET_URI, null);
URI uri = null;
try {
uri = new URI(targetUri);
} catch (java.net.URISyntaxException e) {
logger.error("创建URI对象出错, targetUri[{}]", targetUri, e);
}
servletRequest.setAttribute(ATTR_TARGET_HOST, null);
super.targetHost = URIUtils.extractHost(uri);
super.service(servletRequest, servletResponse); } }

下面都是默认的一般配置:

//import org.mitre.dsmiley.httpproxy.ProxyServlet;
import xxxx.xxx.xx.ProxyServlet;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; @Configuration
public class ProxyServletConfiguration { @Value("${proxy.forward.servlet_url_one}")
private String proxyUrl; @Value("${proxy.forward.target_url_one}")
private String targetUrl; @Bean
public org.springframework.boot.web.servlet.ServletRegistrationBean servletRegistrationBean(){
org.springframework.boot.web.servlet.ServletRegistrationBean servletRegistrationBean = new org.springframework.boot.web.servlet.ServletRegistrationBean(new ProxyServlet(), proxyUrl);
//这个setName必须要设置,并且多个的时候,名字需要不一样
servletRegistrationBean.setName("forward1");
servletRegistrationBean.addInitParameter("targetUri", targetUrl);
servletRegistrationBean.addInitParameter(ProxyServlet.P_LOG, "true");
return servletRegistrationBean;
} // @Bean
// public org.springframework.boot.web.servlet.FilterRegistrationBean registration(org.springframework.web.filter.HiddenHttpMethodFilter filter) {
// FilterRegistrationBean registration = new FilterRegistrationBean(filter);
// registration.setEnabled(false);
// return registration;
// }
}
 <!--ProxyFilter的引入依赖-->
<dependency>
<groupId>org.mitre.dsmiley.httpproxy</groupId>
<artifactId>smiley-http-proxy-servlet</artifactId>
<version>1.12.1</version>
</dependency>
# 端口号及ssl配置
server:
port: 10000
ssl:
key-store: classpath:xxx
key-store-password: xxx
key-password: xxx
key-store-type: xxx
enabled: true
key-alias: xxxx
proxy:
forward:
servlet_url_one: /*
target_url_one: http://tarhetUrlIP:port/

smiley-http-proxy-servlet 转发https至 http网页访问的更多相关文章

  1. Set Java Proxy for Http/Https

     Command Line JVM Settings The proxy settings are given to the JVM via command line arguments: java ...

  2. nodejs 实现 http proxy 透明转发

    这两天需要安装一个Linux虚拟机,接下来要通过 yum 来安装需要的软件. 因单位的网络需要通过代理才能访问外网,公司代理服务器:proxy.xxxx.com,给yum增加了proxy设置: # v ...

  3. Servlet转发到JSP页面的路径问题

    一.现象与概念 1. 问题 在Servlet转发到JSP页面时,此时浏览器地址栏上显示的是Servlet的路径,而若JSP页面的超链接还是相对于该JSP页面的地址且该Servlet和该JSP页面不在同 ...

  4. servlet转发与重定向区别

    servlet转发与重定向   HttpServletRequest: 表示浏览器向服务器发送的请求报文,由Tomcat创建然后作为参数传递给我们doget,dopost方法. 功能:getParam ...

  5. 关于配置websocket,nginx转发https至wss问题

    在本地测试通过的socket,再放到现在的有nginx代理之后发现会报:failed: Error in connection establishment: net::ERR_NAME_NOT_RES ...

  6. java web中servlet、jsp、html 互相访问的路径问题

    java web中servlet.jsp.html 互相访问的路径问题 在java web种经常出现 404找不到网页的错误,究其原因,一般是访问的路径不对. java web中的路径使用按我的分法可 ...

  7. 如何让springboot打包的项目部署在阿里云上使用https和http方式访问

    前言 问题描述:怎么让springboot部署在服务器上使用https协议方式访问我们的接口或者域名,目的是某些平台请求的是https协议,而不是https 部署环境:阿里云 centos7服务器,s ...

  8. Java Servlet(十一):一个servlet被10个浏览器客户端访问时会创建几个servlet实例?

    一般Servlet只初始化一次(只有一个实例).对于更多的客户端请求,Server创建新的请求和响应对象,仍然激活此Servlet的service()方法,将这两个对象作为参数传递给该方法.如此重复以 ...

  9. HTTPS的内网访问和访问外网

    https://launchpad.support.sap.com/#/notes/2461900 https://wiki.scn.sap.com/wiki/display/Security/Tro ...

  10. Fiddler: 如何抓取HTTPS协议的网页

    作者:韦玮  转载请注明出处 Fiddler默认只能抓取HTTP协议的网页,不能抓取HTTPS协议的网页,而我们很多时候,都需要抓HTTPS协议的网页,比如抓淘宝数据等.今天,韦玮老师会为大家讲解如何 ...

随机推荐

  1. day02模板与配置

    一.WXML模板语法 1.1 数据绑定 绑定内容 跟vue差不多,在页面的js文件定义到data里面 然后通过插值语法用在wxml中即可 绑定属性 直接写上插值语法,没有: 三元运算 生成一个十以内的 ...

  2. nginx配置端口转发 并修改swagger路径配置

    项目服务器为linux,仅开放特定外网端口 所以部署的docker服务需要通过nginx 做端口转发 这里的配置使用的是 nginx docker服务 配置步骤: 1. 修改nginx配置文件,我这里 ...

  3. vscode插件记录

    前言 vscode因插件而强大. 记录一下好用的插件,以备后续参考. 插件汇总 内容1-14来源于<正点原子 I.MX6U驱动开发指南>4.5节, C/C++,这个肯定是必须的; C/C+ ...

  4. java 类的执行顺序

    java代码 package net.cybclass.sp; public class Test01 { public static void main(String[] args) { new c ...

  5. C++ 中的 lowbit

    lowbit 的定义 首先了解 lowbit 的定义 \(lowbit(n)\) ,为 \(n\) 的二进制原码中最低的一位 \(1\) 以及其后面的 \(0\) 所表示的数 举个简单的例子: 将 \ ...

  6. 持久化技术Mybatis知识精讲【形成知识体系篇】

    环境要求 JDK1.8及以上版本 MySQL数据库 Apache Maven 3.6.1构建工具 IDEA/VSCode/Eclipse开发工具任选其一 思维导图:Xmind ZEN 技术要求 熟悉J ...

  7. 奇思妙想,动手 DIY 你的浏览器主页

    实战开发和上线一个极客范儿的浏览器主页,原来如此简单! 大家好我是鱼皮,前段时间上线了一个程序员必备的浏览器主页,得到了很多同学的好评. 地址:https://home.code-nav.cn/ 其实 ...

  8. Webpack3.x升级至 4.x 小记

    近期项目部署遇到点问题,需要升级webpack版本,特此整理一小记,记录升级过程中的依赖包及报错处理. 本次升级的依赖包及对应版本对照表: npm 包 当前版本 升级版本 S/D vue ^2.5.1 ...

  9. 基于.NET开源、强大易用的短链生成及监控系统

    前言 今天大姚给大家分享一个基于.NET开源(MIT License).免费.强大易用的短链生成及监控系统:SuperShortLink. 项目介绍 SuperShortLink是一个基于.NET开源 ...

  10. 如何正确使用@Bulider与<T>返回数据

    @Data @ToString @Builder @AllArgsConstructor public class PageResult<T> implements Serializabl ...