package cn.melina.license;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Properties;
import java.util.prefs.Preferences;
import javax.security.auth.x500.X500Principal;
import de.schlichtherle.license.CipherParam;
import de.schlichtherle.license.DefaultCipherParam;
import de.schlichtherle.license.DefaultKeyStoreParam;
import de.schlichtherle.license.DefaultLicenseParam;
import de.schlichtherle.license.KeyStoreParam;
import de.schlichtherle.license.LicenseContent;
import de.schlichtherle.license.LicenseParam;
import de.schlichtherle.license.LicenseManager;
/**
* CreateLicense
* @author melina
*/
public class CreateLicense {
//common param
private static String PRIVATEALIAS = "";
private static String KEYPWD = "";
private static String STOREPWD = "";
private static String SUBJECT = "";
private static String licPath = "";
private static String priPath = "";
//license content
private static String issuedTime = "";
private static String notBefore = "";
private static String notAfter = "";
private static String consumerType = "";
private static int consumerAmount = 0;
private static String info = "";
// 为了方便直接用的API里的例子
// X500Princal是一个证书文件的固有格式,详见API
private final static X500Principal DEFAULTHOLDERANDISSUER = new X500Principal(
"CN=Duke、OU=JavaSoft、O=Sun Microsystems、C=US");
public void setParam(String propertiesPath) {
// 获取参数
Properties prop = new Properties();
InputStream in = getClass().getResourceAsStream(propertiesPath);
try {
prop.load(in);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
PRIVATEALIAS = prop.getProperty("PRIVATEALIAS");
KEYPWD = prop.getProperty("KEYPWD");
STOREPWD = prop.getProperty("STOREPWD");
SUBJECT = prop.getProperty("SUBJECT");
KEYPWD = prop.getProperty("KEYPWD");
licPath = prop.getProperty("licPath");
priPath = prop.getProperty("priPath");
//license content
issuedTime = prop.getProperty("issuedTime");
notBefore = prop.getProperty("notBefore");
notAfter = prop.getProperty("notAfter");
consumerType = prop.getProperty("consumerType");
consumerAmount = Integer.valueOf(prop.getProperty("consumerAmount"));
info = prop.getProperty("info");
}
public boolean create() {
try {
/************** 证书发布者端执行 ******************/
LicenseManager licenseManager = LicenseManagerHolder
.getLicenseManager(initLicenseParams0());
licenseManager.store((createLicenseContent()), new File(licPath));
} catch (Exception e) {
e.printStackTrace();
System.out.println("客户端证书生成失败!");
return false;
}
System.out.println("服务器端生成证书成功!");
return true;
}
// 返回生成证书时需要的参数
private static LicenseParam initLicenseParams0() {
Preferences preference = Preferences
.userNodeForPackage(CreateLicense.class);
// 设置对证书内容加密的对称密码
CipherParam cipherParam = new DefaultCipherParam(STOREPWD);
// 参数1,2从哪个Class.getResource()获得密钥库;参数3密钥库的别名;参数4密钥库存储密码;参数5密钥库密码
KeyStoreParam privateStoreParam = new DefaultKeyStoreParam(
CreateLicense.class, priPath, PRIVATEALIAS, STOREPWD, KEYPWD);
LicenseParam licenseParams = new DefaultLicenseParam(SUBJECT,
preference, privateStoreParam, cipherParam);
return licenseParams;
}
// 从外部表单拿到证书的内容
public final static LicenseContent createLicenseContent() {
DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
LicenseContent content = null;
content = new LicenseContent();
content.setSubject(SUBJECT);
content.setHolder(DEFAULTHOLDERANDISSUER);
content.setIssuer(DEFAULTHOLDERANDISSUER);
try {
content.setIssued(format.parse(issuedTime));
content.setNotBefore(format.parse(notBefore));
content.setNotAfter(format.parse(notAfter));
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
content.setConsumerType(consumerType);
content.setConsumerAmount(consumerAmount);
content.setInfo(info);
// 扩展
content.setExtra(new Object());
return content;
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
基于truelicense实现JAVA工程license机制(压缩包内有生成和验证)
共74个文件
svn-base:32个
jar:8个
class:6个
需积分: 50 81 下载量 45 浏览量
2018-01-26
10:34:27
上传
评论
收藏 1.17MB RAR 举报
温馨提示
基于truelicense实现JAVA工程license机制(压缩包内有生成和验证)
资源推荐
资源详情
资源评论
收起资源包目录
trueLicense.rar (74个子文件)
trueLicense
LicenseCreate生成
.project 389B
bigdata.lic 656B
.svn
tmp
wc.db 51KB
pristine
9c
9cd61d269c88f9fb0eb36cea1efcd596ab74772f.svn-base 254KB
de
de79530eba44111a1bf564189a1188cceb211384.svn-base 654B
96
9643deec16fdc053bd46882f33bd3eaeb6e5522a.svn-base 773B
c4
c4439919e0daf1aedf1a2e8a7678a5a16876b7be.svn-base 53KB
81
81678fe8928918910a0e46b41800949ceb25a0b6.svn-base 5KB
c8
c8bf416877263d1d9006b1a60cc6020395ee8bfb.svn-base 503B
b6
b6b6dc92cb0303c886686fa829c23548b9d382dd.svn-base 656B
4a
4a8aea65d1b2e6de249bfec318cb4d5080acfbb1.svn-base 389B
ba
bac2335b585cb29bef3e555ed30a1d37eedf28e3.svn-base 7KB
4f
4fbbb1d34e2f672376ab9f95e2dc9804f6d2d0b5.svn-base 44KB
7c
7c5903a1c73ee235e345acc1150868c926cf8a34.svn-base 307B
f1
f198486b6fb8b7cb10881405825834e6a4bb4ac9.svn-base 485B
fc
fc9daf0d5ad85f94fac2a7575b7739205ecc9835.svn-base 1KB
77
77c149e3a67c176c13fc3a0b485d90e3d2349f76.svn-base 4KB
17
1738f633fc4a9029a9b29c54a7d3fc9dfb4ca9cf.svn-base 598B
1a
1af388cb24631a1af8db5c877ad752e3529e09f9.svn-base 533B
entries 3B
format 3B
src
cn
melina
license
LicenseManagerHolder.java 503B
CreateLicense.java 4KB
licenseCreateTest.java 307B
param.properties 485B
privateKeys.store 1KB
lib
commons-codec-1.7.jar 254KB
truelicense.jar 53KB
truexml.jar 7KB
trueswing.jar 44KB
.settings
org.eclipse.jdt.core.prefs 598B
.classpath 533B
bin
cn
melina
license
licenseCreateTest.class 654B
LicenseManagerHolder.class 773B
param.properties 485B
CreateLicense.class 5KB
privateKeys.store 1KB
LicenseVerify
.project 389B
bigdata.lic 656B
.svn
tmp
wc.db 51KB
pristine
9c
9cd61d269c88f9fb0eb36cea1efcd596ab74772f.svn-base 254KB
96
9643deec16fdc053bd46882f33bd3eaeb6e5522a.svn-base 773B
9d
9d7663f2fc3a0bc4041670282d9df365802c1405.svn-base 882B
c4
c4439919e0daf1aedf1a2e8a7678a5a16876b7be.svn-base 53KB
a5
a5e2a4961062fac2f521cbf94c33dd9d43806093.svn-base 196B
c8
c8bf416877263d1d9006b1a60cc6020395ee8bfb.svn-base 503B
b6
b6b6dc92cb0303c886686fa829c23548b9d382dd.svn-base 656B
79
79686867b5f2c4d6d8d2c5bc46af84faded6b6d0.svn-base 264B
2a
2a14f17ca1e64842ba2b644edf470f66fad73b7a.svn-base 3KB
4a
4a2c0fd20fe289973f3eb97c82d8d20393a911da.svn-base 533B
ba
bac2335b585cb29bef3e555ed30a1d37eedf28e3.svn-base 7KB
4f
4fbbb1d34e2f672376ab9f95e2dc9804f6d2d0b5.svn-base 44KB
30
30334fe7a1795c99b5ee5eced80386d00b453c34.svn-base 389B
bd
bd444aaf0e05500175f4f7ec33849b0eac24f428.svn-base 654B
17
1738f633fc4a9029a9b29c54a7d3fc9dfb4ca9cf.svn-base 598B
e7
e7731d4f09cbf0a0b80b759d0edb3cb19ac71387.svn-base 2KB
entries 3B
format 3B
src
cn
melina
license
publicCerts.store 882B
LicenseManagerHolder.java 503B
VerifyLicense.java 3KB
licenseVerifyTest.java 264B
param.properties 196B
lib
commons-codec-1.7.jar 254KB
truelicense.jar 53KB
truexml.jar 7KB
trueswing.jar 44KB
.settings
org.eclipse.jdt.core.prefs 598B
.classpath 533B
bin
cn
melina
license
publicCerts.store 882B
licenseVerifyTest.class 654B
LicenseManagerHolder.class 773B
param.properties 196B
VerifyLicense.class 3KB
共 74 条
- 1
资源评论
dwwlmx
- 粉丝: 0
- 资源: 9
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功