2017-02-18 4 views
1

Java権利アプリケーションにデジタル権利管理を追加する可能性はありますか?スプリングアプリケーションのDRM

warファイルは、限定された機能で無料で使用するために出荷する必要があります。顧客は、無制限のバージョンを購入する選択肢が必要です。

標準がありますか?

答えて

0

新機能(春のプロファイルと@ConditionalOn)で追加のJAR

新しい機能を有効にする追加のjarを顧客に支払う提供することができます。このジャーは、スプリングブート自動設定機能(@ConditionalOnClassなど)を使用してロードできます。 本当に戦争が必要ですか?代わりに実行可能なjarを使用することができます(バンドルされたTomcatのjarファイル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は非常に簡単にデバッグでき、デバッグ、サイドローディングパッチコードなどに対する保護はありませんでした。

セキュリティマネージャを使用してアプリケーションを起動することができます(機密性の高い操作をブロックするため)https://docs.oracle.com/javase/tutorial/essential/environment/security.htmlでも、 。

クラウドモデル

最終ノート:展開モデルは戦争(ウェブアプリケーション)です。あなたは本当にその戦争を顧客に提供する必要がありますか?多分あなたはクラウドモデルを使うことができます:あなた自身のホストソフトウェアで、顧客にアクセスできます。特定の機能は、一部の顧客(有料顧客)に対してのみロックを解除することができます。例:GithubまたはStackoverflow(Stackoverflowは支払いをした人ではなく評判の高いユーザーのために多くの機能を開けますが、一般的なルールは同じです)。

関連する問題