记录下Xjar部署问题

记录下 java + Xjar部署问题

项目是部署在客户端springboot项目,打包jar后静态资源都范文异常 net::ERR_CONTENT_LENGTH_MISMATCH 200

Xjar

Xjar是什么?

无需侵入代码,只需要把编译好的JAR包通过工具加密即可。
完全内存解密,杜绝源码以及字节码泄露或反编译。
支持所有JDK内置加解密算法。
可选择需要加解密的字节码或其他资源文件,避免计算资源浪费。

项目引用的是旧版本:v2.0.x
Xjar - GITHUB

静态资源问题处理

下面是官网给出的介绍:

静态文件浏览器无法加载完成问题:
由于静态文件被加密后文件体积变大,Spring Boot 会采用文件的大小作为 Content-Length 头返回给浏览器, 但实际上通过 XJar 加载解密后文件大小恢复了原本的大小,所以浏览器认为还没接收完导致一直等待服务端。 由此我们需要在加密时忽略静态文件的加密,实际上静态文件也没加密的必要,因为即便加密了用户在浏览器 查看源代码也是能看到完整的源码的。通常情况下静态文件都会放在 static/ 和 META-INF/resources/ 目录下, 我们只需要在加密时通过过滤器排除这些资源即可,可以采用以下的过滤器:

XKit.not(
        XKit.or()
            .mix(new XJarAntEntryFilter("static/**"))
            .mix(new XJarAntEntryFilter("META-INF/resources/**"))
);

maven插件处理方式:

<plugin>
    <groupId>com.github.core-lib</groupId>
    <artifactId>xjar-maven-plugin</artifactId>
    <version>v2.0.5</version>
    <executions>
        <execution>
            <goals>
                <goal>build</goal>
            </goals>
            <phase>package</phase>
            <!-- 或使用
            <phase>install</phase>
            -->
            <configuration>
                <password>io.xjar</password>
                <excludes>
                    <exclude>static/**</exclude>
                    <exclude>META-INF/resources/**</exclude>
                </excludes>
            </configuration>
        </execution>
    </executions>
</plugin>

如果是代码方式则把过滤器就到 XBoot.encrypt 中:如图

   // Spring-Boot Jar包加密
        String password = "123456;
        XKey xKey = XKit.key(password);
        //

        XEntryFilter not  = XKit.not(
                XKit.or()
                        .mix(new XJarAntEntryFilter("static/**"))
                        .mix(new XJarAntEntryFilter("META-INF/resources/**")));

        XBoot.encrypt("path/input/jar", "path/out/jar", xKey, XConstants.MODE_DANGER,not);

到此新的jar可以正常加载出静态资源里面的页面内容了!!

关于 xjar + proguard 双重防护代码反编译风险可以浏览下面文章

《Java + proguard 代码混淆》
《Java + Xjar + proguard 双重加密提高反编译泄露风险》

添加GZ获取用例!!回复 “混淆”
在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值