弹簧应用的DRM

时间:2017-02-18 17:51:17

标签: spring drm

将数字版权管理添加到java spring应用程序有哪些可能性?

war文件应免费提供,功能有限。客户应该可以选择购买无限制版本。

有没有这方面的标准?

1 个答案:

答案 0 :(得分:0)

具有新功能的附加JAR(弹簧配置文件和@ConditionalOn)

您可以为付费客户提供额外的jar,以启用新功能。可以使用spring boot autoconfiguration功能(例如@ConditionalOnClass)加载该jar。 你真的需要战争吗?你可以使用可执行jar(jar与捆绑的Tomcat http://docs.spring.io/spring-boot/docs/current/reference/html/build-tool-plugins-maven-plugin.html#build-tool-plugins-maven-plugin)。

最终结果是相同的Web应用程序。但是使用jar,可以很容易地将另一个jar(带有附加功能)添加到类路径中,应用程序会将其拾取。

有关详细信息,请参阅http://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-developing-auto-configuration.html

的OSGi

您还可以使用OSGi模块启用新功能。

但这不是真正的DRM,只是定制。一个客户仍然可以从另一个客户复制特定于功能的jar。

您可以为每个客户构建jar(jar中的硬编码客户详细信息)并对其进行模糊处理,但我认为它仍然非常容易破解。 Java非常容易调试,并且没有防止debuging,侧载补丁代码等的保护。

您可以使用SecurityManager启动应用程序(阻止某些敏感操作)https://docs.oracle.com/javase/tutorial/essential/environment/security.html但我认为它仍然很容易绕过。

云模型

最后注意:您的部署模型是战争(Web应用程序)。你真的需要为客户提供这场战争吗?也许你可以使用云模型:自己的主机软件,只是让客户访问。特定功能可以仅针对某些(付费客户)解锁。示例:Github甚至Stackoverflow(Stackoverflow为具有更多声誉的用户解锁更多功能,而不是那些付费的用户,但一般规则是相同的。)