概述:我正在创建一个具有嵌入式 Web 浏览器(DJ Native Swing)的 Swing 应用程序。此 Web 浏览器需要能够显示使用 Java 和 GPG 即时解密的内容。
因此,假设您有一个简单的 a.html,其中包含以下内容:
< html >
< body >
Hello world
< img src="b.jpg">
< /body>
</ html>
处理程序首先应该看到对“a.html”的请求,然后我们的处理程序将定位文件 a.html.gpg(加密文件),将其转换为 a.html,打开它并将字节写回浏览器作为处理程序结果。
现在浏览器查看内容并意识到需要发出另一个请求,因此它尝试访问 b.jpg。我们的处理程序应该看到该请求并重复逻辑,现在将组成 b.jpg 的字节作为结果发送回来。
所以我们真正想要的是拦截 a.html、b.jpg 的每个 HTTPRequest,并且 URL 处理程序中的自定义代码将解密该文件并提供浏览器应该使用的字节并在页面上呈现 Web 组件.
解密逻辑很好,只需要一种拦截 URL 的方法,让 JWebBrowser 能够使用解密的字节来呈现页面。
我确实看到了一个方法 WebServer.addContentProvider(HTTPRequest req) 但不知道如何使用它。任何满足 Dj Native Swing 要求的替代方法也值得赞赏。