SAML changing date calculation

Signed-off-by: Erik Weber <terbolous@gmail.com>
This commit is contained in:
Erik Weber 2015-02-05 09:54:49 +01:00
parent 98b416b7f0
commit b84c8889a3

View File

@ -89,6 +89,7 @@ import java.security.cert.X509Certificate;
import java.security.spec.InvalidKeySpecException;
import java.security.spec.PKCS8EncodedKeySpec;
import java.security.spec.X509EncodedKeySpec;
import java.util.Calendar;
import java.util.Date;
import java.util.zip.Deflater;
import java.util.zip.DeflaterOutputStream;
@ -314,15 +315,22 @@ public class SAMLUtils {
}
public static X509Certificate generateRandomX509Certificate(KeyPair keyPair) throws NoSuchAlgorithmException, NoSuchProviderException, CertificateEncodingException, SignatureException, InvalidKeyException {
Date validityBeginDate = new Date(System.currentTimeMillis() - 24 * 60 * 60 * 1000);
Date validityEndDate = new Date(System.currentTimeMillis() + 3 * 365 * 24 * 60 * 60 * 1000);
Date referenceDate = new Date();
Calendar validityBeginDate = Calendar.getInstance();
validityBeginDate.setTime(referenceDate);
validityBeginDate.add(Calendar.DAY_OF_YEAR, -1);
Calendar validityEndDate = Calendar.getInstance();
validityEndDate.setTime(referenceDate);
validityEndDate.add(Calendar.YEAR, 3);
X500Principal dnName = new X500Principal("CN=ApacheCloudStack");
X509V1CertificateGenerator certGen = new X509V1CertificateGenerator();
certGen.setSerialNumber(BigInteger.valueOf(System.currentTimeMillis()));
certGen.setSubjectDN(dnName);
certGen.setIssuerDN(dnName);
certGen.setNotBefore(validityBeginDate);
certGen.setNotAfter(validityEndDate);
certGen.setNotBefore(validityBeginDate.getTime());
certGen.setNotAfter(validityEndDate.getTime());
certGen.setPublicKey(keyPair.getPublic());
certGen.setSignatureAlgorithm("SHA256WithRSAEncryption");