I want to develop confluence and JIRA plugins.
How can I protect my plugin with license?
I want licensing with checking the allowed user of the license key and allowed user of confluence/JIRA. (like greenhopper).
Is there a library/tool for license validation and automatic license generation ?
As licensing is a critical part so you might also want to write your own solution and take full control of your licensing process.
Nowadays, most licenses are based on the same idea like signing emails:
1) Generate license content (like an email)
2) Sign content using a private certificate at server side (Your licensing server)
3) Use the public key of your private certificate to validate (from your plugin) the content of the issued license.
As JIRA plugins are written in Java then you need a crypto Java library like provided by http://www.bouncycastle.org/ and write your onw license server by using Tomcat+Java web app.
Of course, that might be a bit hard for begginers, so you may also use some free Java library providing more high level licensing features. Basically, those sort of libraries are built on top of Bouncycastle adding some tricks to detect licensing manipulation.
Furthermore, as Java is a quite easy to get code from binaries then I would say that obfuscate your code (mainly license validation) might also help you to protect your your plugin.
I used that approach to write my own license server and protect my plugin.
With the release fo the Atlassian Marketplace there is a standard way for license management and also invoicing, that is supported by Atlassian and used in there own products. So I would recommend to use that mechanism.
More information can be found at https://developer.atlassian.com/display/MARKET/Atlassian+Marketplace.
As Ellen mentioned, you can publish your licensed plugin on the Atlassian Marketplace. In doing so, you would use Atlassian's Licensing API. Using our Licensing API should provide the easiest and fastest way to get your plugin licensed and sold, while providing your customers with a unified, consistent license management expierience.
The Marketplace is now accepting submissions of licensed plugins. You can specify your plugin to be Marketplace-ready when publishing your plugin version to the Plugin Exchange.
We tried PLM first but somehow we could not overcome the problems on production. May be we did something wrong.
We had a license generator prepared with TrueLicense and Proguard.
We modified it for our plugin and prepared a License generator executable. Here is the working mechanism (main principle is like Pablo said).
1. Client downloads and installs the plugin.
2. Client gets the Server ID from plugin configuration page and fills the license request form on our web site.
3. Our web site gets the user count, server id, update deadline and license expiry information and send a request to GSS Server on Private Network.
4. Our GSS Server gets the XML request and converts it to a command and runs the license Generator. Then returns the output (license content) to the web site. (GSS Server converts an executable to a service).
5. By the way, license generator embeds the server_id, update expiry, license expiry and user data into the license data.
6. Web site provides the license to the user as a file.
7. User installs the license through plugin configuration page.
8. Plugin config page shows the license content.
In fact, using TrueLicense is a little bit hard because of lack of documentation. We met some obstacles but overcame with some tricks. Thanks to quisapps developers for sharing an osgi solution. If anybody needs, I can help on this.
We may check and use bouncycastle later.
Hey there Community! Atlassian Open is kicking off in less than a month and we can't wait to touch down in Vienna, Sydney and Boston. This is an opportunity to create the future of teamwork with ...
Connect with like-minded Atlassian users at free events near you!Find an event
Connect with like-minded Atlassian users at free events near you!
Unfortunately there are no Community Events near you at the moment.Host an event
You're one step closer to meeting fellow Atlassian users at your local event. Learn more about Community Events