`
cloudtech
  • 浏览: 4619337 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

CAS验证

 
阅读更多

public class CASValidation {

public static String CAS_VALIDATE_PATH = "";

public void createValidateInfo() throws Exception{
boolean flag = true;
File carPath = new File(this.getClass().getResource("").getPath()+"/nos.crt");
CertificateFactory cf=CertificateFactory.getInstance("X.509");
FileInputStream in=new FileInputStream(carPath);
Certificate c=cf.generateCertificate(in);
String s=c.toString();

X509Certificate t=(X509Certificate)c;
byte [] encod2=c.getEncoded();
X509CertImpl cimp2=new X509CertImpl(encod2); //用该编码创建X509CertImpl类型对象
X509CertInfo cinfo2=(X509CertInfo)cimp2.get(X509CertImpl.NAME+"."+X509CertImpl.INFO);//获取X509CertInfo

Date begindate=new Date(); //获取当前时间
Date enddate=new Date(begindate.getTime()+30*24*60*60*1000L); //有效期为30天
System.out.println("enddate======="+enddate.toLocaleString());
System.out.println("begin======="+t.getNotBefore().toLocaleString());
System.out.println("end======="+t.getNotAfter().toLocaleString());
CertificateValidity cv=new CertificateValidity(begindate,enddate); //创建对象
cinfo2.set(X509CertInfo.VALIDITY,cv); //设置有效期

// int sn=(int)(begindate.getTime()/1000); //以当前时间为序列号
// CertificateSerialNumber csn=new CertificateSerialNumber(sn);
// cinfo2.set(X509CertInfo.SERIAL_NUMBER,csn);

//FileOutputStream out=new FileOutputStream(carPath);

System.out.println(carPath.getPath());
System.out.println(s);
}

public boolean validationSecurity(){
boolean flag = true;
try{
CertificateFactory cf=CertificateFactory.getInstance("X.509");
File carPath = new File(this.getClass().getResource("").getPath()+"/nos.crt");
FileInputStream in1=new FileInputStream(carPath);
java.security.cert.Certificate c1=cf.generateCertificate(in1);
X509Certificate t=(X509Certificate)c1;
Date TimeNow=new Date();
try{
t.checkValidity(TimeNow);
if(!validationModifyDate()){

}else{
insertLoginDate();
}
}catch(CertificateExpiredException e){ //过期
flag = false;
System.out.println("Expired");
System.out.println(e.getMessage());
}catch(CertificateNotYetValidException e){ //尚未生效
flag = false;
System.out.println("Too early");
System.out.println(e.getMessage());
}

}catch(Exception e){
flag = false;
}
return flag;
}

public boolean validationModifyDate(){
boolean flag = true;
File file = new File(this.getClass().getResource("").getPath()+"/loginDate.txt");
//File file = new File(fileName);
BufferedReader reader = null;
try {
System.out.println("以行为单位读取文件内容,一次读一整行:");
reader = new BufferedReader(new FileReader(file));
String tempString = null;
String todayStr = DateFormatUtils.format(new Date(), "yyyy-MM-dd"); //今天的日期

int line = 1;
// 一次读入一行,直到读入null为文件结束
while ((tempString = reader.readLine()) != null) {
// 显示行号
// System.out.println("line " + line + ": " + tempString);
// System.out.println("比较======="+todayStr.compareTo(tempString));
if(todayStr.compareTo(tempString)<0){
System.out.println("系统许可时间已过期,请重新申请。");
flag = false;
}
line++;
}
reader.close();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (reader != null) {
try {
reader.close();
} catch (IOException e1) {
}
}
}

return flag;
}

public void insertLoginDate() {
try {
File file = new File(this.getClass().getResource("").getPath()+"/loginDate.txt");
String todayStr = DateFormatUtils.format(new Date(), "yyyy-MM-dd"); //今天的日期
//打开一个写文件器,构造函数中的第二个参数true表示以追加形式写文件
FileWriter writer = new FileWriter(file, true);
writer.write(todayStr+"/n");
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}


/**
* 以行为单位读取文件,常用于读面向行的格式化文件
*/
public static void readFileByLines(String fileName) {
File file = new File(fileName);
BufferedReader reader = null;
try {
System.out.println("以行为单位读取文件内容,一次读一整行:");
reader = new BufferedReader(new FileReader(file));
String tempString = null;
String todayStr = DateFormatUtils.format(new Date(), "yyyy-MM-dd"); //今天的日期

int line = 1;
// 一次读入一行,直到读入null为文件结束
while ((tempString = reader.readLine()) != null) {
// 显示行号
System.out.println("line " + line + ": " + tempString);
System.out.println("比较======="+todayStr.compareTo(tempString));

line++;
}
reader.close();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (reader != null) {
try {
reader.close();
} catch (IOException e1) {
}
}
}
}


public static void main(String[] args){
CASValidation casValidation= new CASValidation();
String fileName = "D:/test/CoreFlow/WebRoot/WEB-INF/classes/com/nos/validation/cas/loginDate.txt";

//CASValidation.appendMethodA(fileName, "2010-12-03/n");
//CASValidation.readFileByLines(fileName);
//casValidation.validationModifyDate("2010-12-03");

casValidation.validationModifyDate();
casValidation.insertLoginDate();

}

}

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics