From 9effe1630d97039b3e01cd9b58ed07e75be1d63c Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Mon, 25 Feb 2013 08:40:30 -0500 Subject: [PATCH] Merge pull request #75 from thefake/master --- src/com/gitblit/authority/UserCertificateModel.java | 23 ++++++++++++++++++++--- 1 files changed, 20 insertions(+), 3 deletions(-) diff --git a/src/com/gitblit/authority/UserCertificateModel.java b/src/com/gitblit/authority/UserCertificateModel.java index f5d71bb..6c69a93 100644 --- a/src/com/gitblit/authority/UserCertificateModel.java +++ b/src/com/gitblit/authority/UserCertificateModel.java @@ -27,6 +27,7 @@ import com.gitblit.Constants; import com.gitblit.models.UserModel; import com.gitblit.utils.ArrayUtils; +import com.gitblit.utils.StringUtils; import com.gitblit.utils.TimeUtils; import com.gitblit.utils.X509Utils.RevocationReason; @@ -42,14 +43,20 @@ } public void update(Config config) { - if (expires != null) { + if (expires == null) { + config.unset("user", user.username, "expires"); + } else { SimpleDateFormat df = new SimpleDateFormat(Constants.ISO8601); config.setString("user", user.username, "expires", df.format(expires)); } - if (notes != null) { + if (StringUtils.isEmpty(notes)) { + config.unset("user", user.username, "notes"); + } else { config.setString("user", user.username, "notes", notes); } - if (!ArrayUtils.isEmpty(revoked)) { + if (ArrayUtils.isEmpty(revoked)) { + config.unset("user", user.username, "revoked"); + } else { config.setStringList("user", user.username, "revoked", revoked); } } @@ -64,6 +71,16 @@ revoked = new ArrayList<String>(); } revoked.add(serial.toString() + ":" + reason.ordinal()); + expires = null; + for (X509Certificate cert : certs) { + if (!isRevoked(cert.getSerialNumber())) { + if (!isExpired(cert.getNotAfter())) { + if (expires == null || cert.getNotAfter().after(expires)) { + expires = cert.getNotAfter(); + } + } + } + } } public boolean isRevoked(BigInteger serial) { -- Gitblit v1.9.1