【问题标题】:Steps to Obfuscate the spring boot application using Prodgaurd使用 Prodgaurd 混淆 Spring Boot 应用程序的步骤
【发布时间】:2019-04-25 00:07:39
【问题描述】:

我们已经使用 Spring Boot 实现了一个 Web 应用程序。它也运行良好。

现在我想混淆应用程序。我阅读了一些博客并对此有所了解,并试图了解这一点。

我在 POM 文件中添加了以下代码。它编译得很好。但是当我生成war文件时。 war 文件不会混淆(类文件的名称与原始名称没有变化)。

 <plugin>
        <groupId>com.pyx4me</groupId>
        <artifactId>proguard-maven-plugin</artifactId>
        <version>2.0.4</version>
        <executions>
            <execution>
                <phase>verify</phase>
                <goals>
                    <goal>proguard</goal>
                </goals>
            </execution>
        </executions>               
        <configuration>
            <obfuscate>true</obfuscate>
            <includeDependency>false</includeDependency> 
            <injar>${project.artifactId}-v${project.version}.war</injar>
            <outjar>${project.artifactId}-v${project.version}-obf.war</outjar> 
            <outputDirectory>${project.build.directory}</outputDirectory> 
            <maxMemory>256m</maxMemory>
            <libs>
                <!--  Java Runtime -->
                <lib>${java.home}/../Classes/classes.jar</lib>
                <lib>${java.home}/../Classes/jce.jar</lib>
            </libs>                 
            <options>
                <option>-allowaccessmodification</option>
                <option>-dontskipnonpubliclibraryclasses</option>
                <option>-dontskipnonpubliclibraryclassmembers</option>
            </options>
        </configuration>
    </plugin>

请帮助我混淆战争的方法 以及如何检查生成的文件是否被混淆? 任何帮助表示赞赏。谢谢。

【问题讨论】:

    标签: java maven spring-boot war obfuscation


    【解决方案1】:

    您应该对 WAR 的 WEB-INF/lib 目录中的库 JAR 进行混淆,而不是混淆 WAR。 WAR 需要一个已知的类名来进行声明性配置才能运行,例如web.xml 中的过滤器和 servlet 定义。

    【讨论】:

    • 感谢 Karol 的快速回复,能否请您详细说明以清楚地理解。
    猜你喜欢
    • 1970-01-01
    • 2015-02-16
    • 2021-10-21
    • 1970-01-01
    • 2021-09-07
    • 2015-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多