X-Git-Url: https://code.wpia.club/?a=blobdiff_plain;f=src%2Fclub%2Fwpia%2Fgigi%2Fpages%2Faccount%2Fcerts%2FCertificates.java;h=40faa1f147960aac822378e0b746109abc59ba3f;hb=753ce950283248b931ee9da5158c88156c21e17d;hp=5abf20e52a75035b4a88d31fed00b5611cc0cac5;hpb=6d8dc479e5fbcb31eede5c2ea04dab01aa06ed41;p=gigi.git diff --git a/src/club/wpia/gigi/pages/account/certs/Certificates.java b/src/club/wpia/gigi/pages/account/certs/Certificates.java index 5abf20e5..40faa1f1 100644 --- a/src/club/wpia/gigi/pages/account/certs/Certificates.java +++ b/src/club/wpia/gigi/pages/account/certs/Certificates.java @@ -2,6 +2,7 @@ package club.wpia.gigi.pages.account.certs; import java.io.IOException; import java.io.PrintWriter; +import java.math.BigInteger; import java.net.URLEncoder; import java.security.GeneralSecurityException; import java.security.cert.X509Certificate; @@ -13,6 +14,7 @@ import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import club.wpia.gigi.GigiApiException; import club.wpia.gigi.dbObjects.Certificate; import club.wpia.gigi.dbObjects.Certificate.CertificateStatus; import club.wpia.gigi.dbObjects.Certificate.SubjectAlternateName; @@ -71,7 +73,7 @@ public class Certificates extends Page implements HandlesMixedRequest { cer = true; pi = pi.substring(0, pi.length() - 4); } - String serial = pi; + BigInteger serial = new BigInteger(pi, 16); try { Certificate c = Certificate.getBySerial(serial); if (c == null || ( !support && LoginPage.getAuthorizationContext(req).getTarget().getId() != c.getOwner().getId())) { @@ -93,6 +95,9 @@ public class Certificates extends Page implements HandlesMixedRequest { } catch (IllegalArgumentException e) { resp.sendError(404); return true; + } catch (GigiApiException e) { + resp.sendError(404); + return true; } catch (GeneralSecurityException e) { resp.sendError(404); return true; @@ -140,7 +145,7 @@ public class Certificates extends Page implements HandlesMixedRequest { pi = pi.substring(1); String serial = pi; - Certificate c = Certificate.getBySerial(serial); + Certificate c = Certificate.getBySerial(new BigInteger(serial, 16)); Language l = LoginPage.getLanguage(req); if (c == null || ( !support && LoginPage.getAuthorizationContext(req).getTarget().getId() != c.getOwner().getId())) { @@ -226,6 +231,8 @@ public class Certificates extends Page implements HandlesMixedRequest { vars.put("login", c.isLoginEnabled()); } catch (GeneralSecurityException e) { e.printStackTrace(); + } catch (GigiApiException e) { + e.format(out, l, getDefaultVars(req)); } certDisplay.output(out, getLanguage(req), vars);