2017-02-18 89 views
1

將數字權利管理添加到java彈簧應用程序有什麼可能性?適用於彈簧應用的DRM

戰爭文件應該被運送免費使用與有限的功能。客戶應該有選擇購買無限版本。

有沒有這方面的標準?

回答

0

具有新功能(春季型材和@ConditionalOn)

附加JAR你能提供客戶支付額外的罐子,使新的功能。該jar可以使用spring引導自動配置功能加載(例如@ConditionalOnClass)。 你真的需要戰爭嗎?你可以使用可執行的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(附加功能)添加到classpath並且應用程序會將其拾取出來非常容易。請參閱http://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-developing-auto-configuration.html瞭解詳情。

OSGi

您還可以使用OSGi模塊啓用新功能。

但是,這不是真正的DRM,只是定製。一位客戶仍然可以複製來自其他客戶的功能特定的罐子。

你可以建立jar per-customer(jar中的硬件客戶細節)並對其進行混淆,但我認爲它仍然會非常容易中斷。 Java有非常容易的調試,並沒有防止調試,側載加載修補代碼等。

您可以用SecurityManager啓動您的應用程序(阻止一些敏感操作)https://docs.oracle.com/javase/tutorial/essential/environment/security.html但我認爲它仍然會很容易繞過。

雲模型

最後說明:您的部署模型是war(web應用程序)。你真的需要爲客戶提供這場戰爭嗎?也許你可以自己使用雲模型:主機軟件,只需要客戶訪問。特定功能只能爲部分(付費客戶)解鎖。示例:Github甚至Stackoverflow(Stackoverflow爲更多聲譽的用戶解鎖更多功能,而不是那些付費的用戶,但一般規則是相同的)。