diff --git a/README.md b/README.md index 0d65976..7319d5e 100644 --- a/README.md +++ b/README.md @@ -15,11 +15,12 @@ * FishEye * Crowd * Crucible +* Third party plugins ## 使用说明 ### 优势 -* 支持Atlassian家几乎所有产品,同时支持插件。 +* 支持Atlassian家几乎所有产品,同时支持插件(包括插件市场的第三方插件)。 * 支持DataCenter模式。 * 相比较于传统的crack来说可以很容易的升级你的服务,而不用重新再次破解。 * 提供基于java的命令行 keygen,更方便在终端环境使用。 @@ -53,6 +54,7 @@ * 你得确认已经配置好agent,参考上面说明。 * 当你试着执行`java -jar /path/to/atlassian-agent.jar`时应该可以看到输出的KeyGen参数帮助。 * 请仔细看看每个参数的作用,特别是`-p`参数的取值范围。 +* 第三方插件将其`应用密钥`作为`-p`参数。如:`-p com.gliffy.integration.confluence` * 在Atlassian服务安装时你应该能看到类似:`AAAA-BBBB-CCCC-DDDD`的server id,请留意。 * 提供了正确的参数运行KeyGen会在终端输出计算好的激活码。 * 将生成的激活码复制出来去激活你要使用的服务。 diff --git a/src/main/java/io/zhile/crack/atlassian/Usage.java b/src/main/java/io/zhile/crack/atlassian/Usage.java index bbcdc24..8a85801 100644 --- a/src/main/java/io/zhile/crack/atlassian/Usage.java +++ b/src/main/java/io/zhile/crack/atlassian/Usage.java @@ -10,8 +10,8 @@ import java.util.Map; /** * @author pengzhile - * @link https://zhile.io * @version 1.0 + * @link https://zhile.io */ public class Usage { private static final Options OPTIONS = new Options(); @@ -33,6 +33,7 @@ public class Usage { PRODUCTS.put("jsd", "JIRA Service Desk"); PRODUCTS.put("training", "Training plugin for JIRA"); PRODUCTS.put("capture", "Capture plugin for JIRA"); + PRODUCTS.put("*", "Third party plugin key, looks like: com.foo.bar"); StringBuilder sb = new StringBuilder(); for (Map.Entry entry : PRODUCTS.entrySet()) { @@ -149,11 +150,13 @@ public class Usage { property = new Capture(contactName, contactEMail, serverID, organisation); break; default: - printUsage(); - return; + property = new ThirdPlugin(contactName, contactEMail, serverID, organisation); + ((ThirdPlugin) property).setProductName(product); + break; } try { + property.init(); String licenseCode = Encoder.encode(property.toString()); System.out.println("Your license code(Don't copy this line!!!): \n"); diff --git a/src/main/java/io/zhile/crack/atlassian/license/LicenseProperty.java b/src/main/java/io/zhile/crack/atlassian/license/LicenseProperty.java index 7d36833..c1d3459 100644 --- a/src/main/java/io/zhile/crack/atlassian/license/LicenseProperty.java +++ b/src/main/java/io/zhile/crack/atlassian/license/LicenseProperty.java @@ -7,16 +7,34 @@ import java.util.Map; /** * @author pengzhile - * @link https://zhile.io * @version 1.0 + * @link https://zhile.io */ abstract public class LicenseProperty { protected Date date = new Date(); protected Map data = new HashMap<>(32); + protected String contactName; + protected String contactEMail; + protected String serverID; + protected String organisation; + protected boolean dataCenter; + abstract public String getProductName(); - public LicenseProperty(String ContactName, String ContactEMail, String ServerID, String Organisation, boolean dataCenter) { + public LicenseProperty(String contactName, String contactEMail, String serverID, String organisation, boolean dataCenter) { + this.contactName = contactName; + this.contactEMail = contactEMail; + this.serverID = serverID; + this.organisation = organisation; + this.dataCenter = dataCenter; + } + + public LicenseProperty(String contactName, String contactEMail, String serverID, String organisation) { + this(contactName, contactEMail, serverID, organisation, false); + } + + public void init() { Date expiryDate = new Date(3771590399000L); String licenseId = "L" + System.currentTimeMillis(); @@ -33,19 +51,15 @@ abstract public class LicenseProperty { setDescription("Unlimited license by https://zhile.io"); setEvaluation(false); - setContactName(ContactName); - setContactEMail(ContactEMail); - setServerID(ServerID); - setOrganisation(Organisation); + setContactName(contactName); + setContactEMail(contactEMail); + setServerID(serverID); + setOrganisation(organisation); setDataCenter(dataCenter); data.put("licenseVersion", "2"); } - public LicenseProperty(String ContactName, String ContactEMail, String ServerID, String Organisation) { - this(ContactName, ContactEMail, ServerID, Organisation, false); - } - public void setDescription(String description) { data.put("Description", description); } diff --git a/src/main/java/io/zhile/crack/atlassian/license/products/Bamboo.java b/src/main/java/io/zhile/crack/atlassian/license/products/Bamboo.java index f8b9725..f86c53b 100644 --- a/src/main/java/io/zhile/crack/atlassian/license/products/Bamboo.java +++ b/src/main/java/io/zhile/crack/atlassian/license/products/Bamboo.java @@ -5,12 +5,17 @@ import io.zhile.crack.atlassian.license.LicenseProperty; /** * @author pengzhile - * @link https://zhile.io * @version 1.0 + * @link https://zhile.io */ public class Bamboo extends LicenseProperty { - public Bamboo(String ContactName, String ContactEMail, String ServerID, String Organisation) { - super(ContactName, ContactEMail, ServerID, Organisation); + public Bamboo(String contactName, String contactEMail, String serverID, String organisation) { + super(contactName, contactEMail, serverID, organisation); + } + + @Override + public void init() { + super.init(); setLicenseEdition(LicenseEdition.UNLIMITED); setNumberOfBambooLocalAgents(-1); diff --git a/src/main/java/io/zhile/crack/atlassian/license/products/Bitbucket.java b/src/main/java/io/zhile/crack/atlassian/license/products/Bitbucket.java index 54c7ced..e15fd71 100644 --- a/src/main/java/io/zhile/crack/atlassian/license/products/Bitbucket.java +++ b/src/main/java/io/zhile/crack/atlassian/license/products/Bitbucket.java @@ -4,16 +4,16 @@ import io.zhile.crack.atlassian.license.LicenseProperty; /** * @author pengzhile - * @link https://zhile.io * @version 1.0 + * @link https://zhile.io */ public class Bitbucket extends LicenseProperty { - public Bitbucket(String ContactName, String ContactEMail, String ServerID, String Organisation, boolean dataCenter) { - super(ContactName, ContactEMail, ServerID, Organisation, dataCenter); + public Bitbucket(String contactName, String contactEMail, String serverID, String organisation, boolean dataCenter) { + super(contactName, contactEMail, serverID, organisation, dataCenter); } - public Bitbucket(String ContactName, String ContactEMail, String ServerID, String Organisation) { - this(ContactName, ContactEMail, ServerID, Organisation, false); + public Bitbucket(String contactName, String contactEMail, String serverID, String organisation) { + super(contactName, contactEMail, serverID, organisation); } @Override diff --git a/src/main/java/io/zhile/crack/atlassian/license/products/Capture.java b/src/main/java/io/zhile/crack/atlassian/license/products/Capture.java index f8cb9f3..f0f9669 100644 --- a/src/main/java/io/zhile/crack/atlassian/license/products/Capture.java +++ b/src/main/java/io/zhile/crack/atlassian/license/products/Capture.java @@ -1,26 +1,14 @@ package io.zhile.crack.atlassian.license.products; -import io.zhile.crack.atlassian.license.LicenseType; - /** * @author pengzhile - * @link https://zhile.io * @version 1.0 + * @link https://zhile.io */ -public class Capture extends Plugin { - public Capture(String ContactName, String ContactEMail, String ServerID, String Organisation) { - super(ContactName, ContactEMail, ServerID, Organisation); +public class Capture extends ThirdPlugin { + public Capture(String contactName, String contactEMail, String serverID, String organisation) { + super(contactName, contactEMail, serverID, organisation); - setServerID(null); - } - - @Override - public String getProductName() { - return "bonfire"; - } - - @Override - public void setLicenseType(LicenseType licenseType) { - data.put("LicenseTypeName", licenseType.toString()); + setProductName("bonfire"); } } diff --git a/src/main/java/io/zhile/crack/atlassian/license/products/Confluence.java b/src/main/java/io/zhile/crack/atlassian/license/products/Confluence.java index 5be1daf..9e06714 100644 --- a/src/main/java/io/zhile/crack/atlassian/license/products/Confluence.java +++ b/src/main/java/io/zhile/crack/atlassian/license/products/Confluence.java @@ -4,16 +4,16 @@ import io.zhile.crack.atlassian.license.LicenseProperty; /** * @author pengzhile - * @link https://zhile.io * @version 1.0 + * @link https://zhile.io */ public class Confluence extends LicenseProperty { - public Confluence(String ContactName, String ContactEMail, String ServerID, String Organisation, boolean dataCenter) { - super(ContactName, ContactEMail, ServerID, Organisation, dataCenter); + public Confluence(String contactName, String contactEMail, String serverID, String organisation, boolean dataCenter) { + super(contactName, contactEMail, serverID, organisation, dataCenter); } - public Confluence(String ContactName, String ContactEMail, String ServerID, String Organisation) { - this(ContactName, ContactEMail, ServerID, Organisation, false); + public Confluence(String contactName, String contactEMail, String serverID, String organisation) { + super(contactName, contactEMail, serverID, organisation); } @Override diff --git a/src/main/java/io/zhile/crack/atlassian/license/products/Crowd.java b/src/main/java/io/zhile/crack/atlassian/license/products/Crowd.java index 7f13642..b9067bd 100644 --- a/src/main/java/io/zhile/crack/atlassian/license/products/Crowd.java +++ b/src/main/java/io/zhile/crack/atlassian/license/products/Crowd.java @@ -4,16 +4,16 @@ import io.zhile.crack.atlassian.license.LicenseProperty; /** * @author pengzhile - * @link https://zhile.io * @version 1.0 + * @link https://zhile.io */ public class Crowd extends LicenseProperty { - public Crowd(String ContactName, String ContactEMail, String ServerID, String Organisation, boolean dataCenter) { - super(ContactName, ContactEMail, ServerID, Organisation, dataCenter); + public Crowd(String contactName, String contactEMail, String serverID, String organisation, boolean dataCenter) { + super(contactName, contactEMail, serverID, organisation, dataCenter); } - public Crowd(String ContactName, String ContactEMail, String ServerID, String Organisation) { - this(ContactName, ContactEMail, ServerID, Organisation, false); + public Crowd(String contactName, String contactEMail, String serverID, String organisation) { + super(contactName, contactEMail, serverID, organisation); } @Override diff --git a/src/main/java/io/zhile/crack/atlassian/license/products/Crucible.java b/src/main/java/io/zhile/crack/atlassian/license/products/Crucible.java index 6e3394d..d5f3bfb 100644 --- a/src/main/java/io/zhile/crack/atlassian/license/products/Crucible.java +++ b/src/main/java/io/zhile/crack/atlassian/license/products/Crucible.java @@ -4,12 +4,12 @@ import io.zhile.crack.atlassian.license.LicenseProperty; /** * @author pengzhile - * @link https://zhile.io * @version 1.0 + * @link https://zhile.io */ public class Crucible extends LicenseProperty { - public Crucible(String ContactName, String ContactEMail, String ServerID, String Organisation) { - super(ContactName, ContactEMail, ServerID, Organisation); + public Crucible(String contactName, String contactEMail, String serverID, String organisation) { + super(contactName, contactEMail, serverID, organisation); } @Override diff --git a/src/main/java/io/zhile/crack/atlassian/license/products/FishEye.java b/src/main/java/io/zhile/crack/atlassian/license/products/FishEye.java index 1f13bef..4ca3b23 100644 --- a/src/main/java/io/zhile/crack/atlassian/license/products/FishEye.java +++ b/src/main/java/io/zhile/crack/atlassian/license/products/FishEye.java @@ -4,12 +4,12 @@ import io.zhile.crack.atlassian.license.LicenseProperty; /** * @author pengzhile - * @link https://zhile.io * @version 1.0 + * @link https://zhile.io */ public class FishEye extends LicenseProperty { - public FishEye(String ContactName, String ContactEMail, String ServerID, String Organisation) { - super(ContactName, ContactEMail, ServerID, Organisation); + public FishEye(String contactName, String contactEMail, String serverID, String organisation) { + super(contactName, contactEMail, serverID, organisation); } @Override diff --git a/src/main/java/io/zhile/crack/atlassian/license/products/JIRACore.java b/src/main/java/io/zhile/crack/atlassian/license/products/JIRACore.java index 7218cea..b88d771 100644 --- a/src/main/java/io/zhile/crack/atlassian/license/products/JIRACore.java +++ b/src/main/java/io/zhile/crack/atlassian/license/products/JIRACore.java @@ -6,12 +6,17 @@ import io.zhile.crack.atlassian.license.LicenseType; /** * @author pengzhile - * @link https://zhile.io * @version 1.0 + * @link https://zhile.io */ public class JIRACore extends LicenseProperty { - public JIRACore(String ContactName, String ContactEMail, String ServerID, String Organisation) { - super(ContactName, ContactEMail, ServerID, Organisation); + public JIRACore(String contactName, String contactEMail, String serverID, String organisation) { + super(contactName, contactEMail, serverID, organisation); + } + + @Override + public void init() { + super.init(); setLicenseEdition(LicenseEdition.UNLIMITED); } diff --git a/src/main/java/io/zhile/crack/atlassian/license/products/JIRAServiceDesk.java b/src/main/java/io/zhile/crack/atlassian/license/products/JIRAServiceDesk.java index ecdb1d8..c2114d6 100644 --- a/src/main/java/io/zhile/crack/atlassian/license/products/JIRAServiceDesk.java +++ b/src/main/java/io/zhile/crack/atlassian/license/products/JIRAServiceDesk.java @@ -5,21 +5,26 @@ import io.zhile.crack.atlassian.license.LicenseType; /** * @author pengzhile - * @link https://zhile.io * @version 1.0 + * @link https://zhile.io */ public class JIRAServiceDesk extends LicenseProperty { - public JIRAServiceDesk(String ContactName, String ContactEMail, String ServerID, String Organisation, boolean dataCenter) { - super(ContactName, ContactEMail, ServerID, Organisation, dataCenter); + public JIRAServiceDesk(String contactName, String contactEMail, String serverID, String organisation, boolean dataCenter) { + super(contactName, contactEMail, serverID, organisation, dataCenter); + } + + public JIRAServiceDesk(String contactName, String contactEMail, String serverID, String organisation) { + super(contactName, contactEMail, serverID, organisation); + } + + @Override + public void init() { + super.init(); setEnterprise(true); setNumRoleCount(-1); } - public JIRAServiceDesk(String ContactName, String ContactEMail, String ServerID, String Organisation) { - this(ContactName, ContactEMail, ServerID, Organisation, false); - } - @Override public String getProductName() { return "jira.product.jira-servicedesk"; diff --git a/src/main/java/io/zhile/crack/atlassian/license/products/JIRASoftware.java b/src/main/java/io/zhile/crack/atlassian/license/products/JIRASoftware.java index c7127a7..7968d47 100644 --- a/src/main/java/io/zhile/crack/atlassian/license/products/JIRASoftware.java +++ b/src/main/java/io/zhile/crack/atlassian/license/products/JIRASoftware.java @@ -6,21 +6,26 @@ import io.zhile.crack.atlassian.license.LicenseType; /** * @author pengzhile - * @link https://zhile.io * @version 1.0 + * @link https://zhile.io */ public class JIRASoftware extends LicenseProperty { - public JIRASoftware(String ContactName, String ContactEMail, String ServerID, String Organisation, boolean dataCenter) { - super(ContactName, ContactEMail, ServerID, Organisation, dataCenter); + public JIRASoftware(String contactName, String contactEMail, String serverID, String organisation, boolean dataCenter) { + super(contactName, contactEMail, serverID, organisation, dataCenter); + } + + public JIRASoftware(String contactName, String contactEMail, String serverID, String organisation) { + super(contactName, contactEMail, serverID, organisation); + } + + @Override + public void init() { + super.init(); setLicenseEdition(LicenseEdition.UNLIMITED); setEnterprise(true); } - public JIRASoftware(String ContactName, String ContactEMail, String ServerID, String Organisation) { - this(ContactName, ContactEMail, ServerID, Organisation, false); - } - @Override public String getProductName() { return "jira.product.jira-software"; diff --git a/src/main/java/io/zhile/crack/atlassian/license/products/Plugin.java b/src/main/java/io/zhile/crack/atlassian/license/products/Plugin.java index 018d4ed..c1015e8 100644 --- a/src/main/java/io/zhile/crack/atlassian/license/products/Plugin.java +++ b/src/main/java/io/zhile/crack/atlassian/license/products/Plugin.java @@ -4,21 +4,26 @@ import io.zhile.crack.atlassian.license.LicenseProperty; /** * @author pengzhile - * @link https://zhile.io * @version 1.0 + * @link https://zhile.io */ abstract public class Plugin extends LicenseProperty { - Plugin(String ContactName, String ContactEMail, String ServerID, String Organisation, boolean dataCenter) { - super(ContactName, ContactEMail, ServerID, Organisation, dataCenter); + public Plugin(String contactName, String contactEMail, String serverID, String organisation, boolean dataCenter) { + super(contactName, contactEMail, serverID, organisation, dataCenter); + } + + public Plugin(String contactName, String contactEMail, String serverID, String organisation) { + super(contactName, contactEMail, serverID, organisation); + } + + @Override + public void init() { + super.init(); setLicenseID(null); setEnterprise(true); } - Plugin(String ContactName, String ContactEMail, String ServerID, String Organisation) { - this(ContactName, ContactEMail, ServerID, Organisation, false); - } - @Override public void setNumberOfUsers(int numberOfUsers) { data.put("NumberOfUsers", String.valueOf(numberOfUsers)); diff --git a/src/main/java/io/zhile/crack/atlassian/license/products/Portfolio.java b/src/main/java/io/zhile/crack/atlassian/license/products/Portfolio.java index 86b3d3a..f3175e3 100644 --- a/src/main/java/io/zhile/crack/atlassian/license/products/Portfolio.java +++ b/src/main/java/io/zhile/crack/atlassian/license/products/Portfolio.java @@ -2,16 +2,16 @@ package io.zhile.crack.atlassian.license.products; /** * @author pengzhile - * @link https://zhile.io * @version 1.0 + * @link https://zhile.io */ public class Portfolio extends Plugin { - public Portfolio(String ContactName, String ContactEMail, String ServerID, String Organisation, boolean dataCenter) { - super(ContactName, ContactEMail, ServerID, Organisation, dataCenter); + public Portfolio(String contactName, String contactEMail, String serverID, String organisation, boolean dataCenter) { + super(contactName, contactEMail, serverID, organisation, dataCenter); } - public Portfolio(String ContactName, String ContactEMail, String ServerID, String Organisation) { - this(ContactName, ContactEMail, ServerID, Organisation, false); + public Portfolio(String contactName, String contactEMail, String serverID, String organisation) { + super(contactName, contactEMail, serverID, organisation); } @Override diff --git a/src/main/java/io/zhile/crack/atlassian/license/products/Questions.java b/src/main/java/io/zhile/crack/atlassian/license/products/Questions.java index 2f011ba..e9ea963 100644 --- a/src/main/java/io/zhile/crack/atlassian/license/products/Questions.java +++ b/src/main/java/io/zhile/crack/atlassian/license/products/Questions.java @@ -2,16 +2,16 @@ package io.zhile.crack.atlassian.license.products; /** * @author pengzhile - * @link https://zhile.io * @version 1.0 + * @link https://zhile.io */ public class Questions extends Plugin { - public Questions(String ContactName, String ContactEMail, String ServerID, String Organisation, boolean dataCenter) { - super(ContactName, ContactEMail, ServerID, Organisation, dataCenter); + public Questions(String contactName, String contactEMail, String serverID, String organisation, boolean dataCenter) { + super(contactName, contactEMail, serverID, organisation, dataCenter); } - public Questions(String ContactName, String ContactEMail, String ServerID, String Organisation) { - this(ContactName, ContactEMail, ServerID, Organisation, false); + public Questions(String contactName, String contactEMail, String serverID, String organisation) { + super(contactName, contactEMail, serverID, organisation); } @Override diff --git a/src/main/java/io/zhile/crack/atlassian/license/products/TeamCalendars.java b/src/main/java/io/zhile/crack/atlassian/license/products/TeamCalendars.java index 77d9833..350c76d 100644 --- a/src/main/java/io/zhile/crack/atlassian/license/products/TeamCalendars.java +++ b/src/main/java/io/zhile/crack/atlassian/license/products/TeamCalendars.java @@ -2,16 +2,16 @@ package io.zhile.crack.atlassian.license.products; /** * @author pengzhile - * @link https://zhile.io * @version 1.0 + * @link https://zhile.io */ public class TeamCalendars extends Plugin { - public TeamCalendars(String ContactName, String ContactEMail, String ServerID, String Organisation, boolean dataCenter) { - super(ContactName, ContactEMail, ServerID, Organisation, dataCenter); + public TeamCalendars(String contactName, String contactEMail, String serverID, String organisation, boolean dataCenter) { + super(contactName, contactEMail, serverID, organisation, dataCenter); } - public TeamCalendars(String ContactName, String ContactEMail, String ServerID, String Organisation) { - this(ContactName, ContactEMail, ServerID, Organisation, false); + public TeamCalendars(String contactName, String contactEMail, String serverID, String organisation) { + super(contactName, contactEMail, serverID, organisation); } @Override diff --git a/src/main/java/io/zhile/crack/atlassian/license/products/ThirdPlugin.java b/src/main/java/io/zhile/crack/atlassian/license/products/ThirdPlugin.java new file mode 100644 index 0000000..d9124e1 --- /dev/null +++ b/src/main/java/io/zhile/crack/atlassian/license/products/ThirdPlugin.java @@ -0,0 +1,30 @@ +package io.zhile.crack.atlassian.license.products; + +import io.zhile.crack.atlassian.license.LicenseType; + +/** + * @author pengzhile + * @version 1.0 + * @link https://zhile.io + */ +public class ThirdPlugin extends Plugin { + protected String productName; + + public ThirdPlugin(String contactName, String contactEMail, String serverID, String organisation) { + super(contactName, contactEMail, serverID, organisation); + } + + @Override + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } + + @Override + public void setLicenseType(LicenseType licenseType) { + data.put("LicenseTypeName", licenseType.toString()); + } +} diff --git a/src/main/java/io/zhile/crack/atlassian/license/products/Training.java b/src/main/java/io/zhile/crack/atlassian/license/products/Training.java index 80d1641..8041c5a 100644 --- a/src/main/java/io/zhile/crack/atlassian/license/products/Training.java +++ b/src/main/java/io/zhile/crack/atlassian/license/products/Training.java @@ -2,12 +2,17 @@ package io.zhile.crack.atlassian.license.products; /** * @author pengzhile - * @link https://zhile.io * @version 1.0 + * @link https://zhile.io */ public class Training extends Plugin { - public Training(String ContactName, String ContactEMail, String ServerID, String Organisation) { - super(ContactName, ContactEMail, ServerID, Organisation); + public Training(String contactName, String contactEMail, String serverID, String organisation) { + super(contactName, contactEMail, serverID, organisation); + } + + @Override + public void init() { + super.init(); setSubscription(true); }