首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  程序员

Java 编写一个简单的代理?

  •  
  •   tail2 · 162 天前 · 1250 次点击
    这是一个创建于 162 天前的主题,其中的信息可能已经有所发展或是发生改变。

    做毕设, 防篡改 我想用 java 编写一个简单的代理, 拦截对运行在虚拟机上的 javaweb 服务器的请求, 然后验证请求的网页的完整性, 如果验证通过, 直接把请求转发给虚拟机, 然后把虚拟机的响应返回。 如果验证失败, 直接返回本地的缓存作为响应。

    大概要用到什么技术, 如何实现呢, 求大佬指点。

    7 回复  |  直到 2019-05-23 16:56:24 +08:00
        1
    xgfan   162 天前 via iPhone   ♥ 1
    Spring gateway 比较简单
        2
    mawerss1   162 天前
    netty ?
        3
    lhx2008   162 天前   ♥ 1
    直接用 Spring MVC 屠龙刀,半天就写好了,不过难的是校验规则。当然要性能好的话,可以用 Spring WebFlux + WebClient,基于 Netty 的,不难,不过学习曲线有点陡峭。如果要极致性能,直接写 Netty。
        4
    wdlth   162 天前   ♥ 1
    就是 API 网关吧,参考 Spring Cloud Gateway
        5
    Navee   162 天前   ♥ 1
    可以参照 https://github.com/adamfisk/LittleProxy
    即使是使用了 netty,性能也是惨不忍睹
        6
    tail2   161 天前
    @Navee 非常感谢, 感觉这个 git 项目好像可行, 性能问题不大, 本科毕设要求应该不会很高。
        7
    Chinsung   149 天前
    你的问题描述就有点问题,拦截到虚拟机的请求,我的理解是要拦截发到 javaweb 监听的端口的请求吧?
    你应该是想要在 javaweb 返回页面前通过代理来判断一下返回的页面是否被篡改,如果被篡改了的话就返回代理缓存的页面?
    如果是的话,省事可以 spring cloud gateway 写个简单的拦截。
    或者 netty 写个反向代理,netty 源码的 example 里就有例子,稍微改下就行
    但是我感觉如果只是这个需求的话,拦截器和过滤器理论上都可以做,不需要代理。
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1304 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 23ms · UTC 17:46 · PVG 01:46 · LAX 10:46 · JFK 13:46
    ♥ Do have faith in what you're doing.