X-Git-Url: https://code.wpia.club/?p=gigi.git;a=blobdiff_plain;f=src%2Fclub%2Fwpia%2Fgigi%2Fpages%2Faccount%2Fcerts%2FCertificates.java;h=78d8a09f1fa696dfb9d9b1623a92926376e6ef7c;hp=e2244e99b5a823a75c43a3a12bf8668810371264;hb=a507c4de2568faaf53bb8d6e003ffbe1ced5d539;hpb=bccd4cc0dba0f89aa045b113bac46eb8cc1dab4e diff --git a/src/club/wpia/gigi/pages/account/certs/Certificates.java b/src/club/wpia/gigi/pages/account/certs/Certificates.java index e2244e99..78d8a09f 100644 --- a/src/club/wpia/gigi/pages/account/certs/Certificates.java +++ b/src/club/wpia/gigi/pages/account/certs/Certificates.java @@ -13,13 +13,14 @@ 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; import club.wpia.gigi.dbObjects.CertificateOwner; import club.wpia.gigi.dbObjects.Organisation; import club.wpia.gigi.dbObjects.SupportedUser; import club.wpia.gigi.dbObjects.User; -import club.wpia.gigi.dbObjects.Certificate.CertificateStatus; -import club.wpia.gigi.dbObjects.Certificate.SubjectAlternateName; import club.wpia.gigi.localisation.Language; import club.wpia.gigi.output.TrustchainIterable; import club.wpia.gigi.output.template.Form; @@ -74,7 +75,7 @@ public class Certificates extends Page implements HandlesMixedRequest { String serial = pi; try { Certificate c = Certificate.getBySerial(serial); - if (c == null || LoginPage.getAuthorizationContext(req).getTarget().getId() != c.getOwner().getId()) { + if (c == null || ( !support && LoginPage.getAuthorizationContext(req).getTarget().getId() != c.getOwner().getId())) { resp.sendError(404); return true; } @@ -93,6 +94,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; @@ -143,11 +147,11 @@ public class Certificates extends Page implements HandlesMixedRequest { Certificate c = Certificate.getBySerial(serial); Language l = LoginPage.getLanguage(req); - if ( !support && (c == null || LoginPage.getAuthorizationContext(req).getTarget().getId() != c.getOwner().getId())) { + if (c == null || ( !support && LoginPage.getAuthorizationContext(req).getTarget().getId() != c.getOwner().getId())) { resp.sendError(404); return; } - HashMap vars = new HashMap<>(); + Map vars = getDefaultVars(req); vars.put("serial", URLEncoder.encode(serial, "UTF-8")); CertificateStatus st = c.getStatus(); @@ -226,6 +230,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); } certDisplay.output(out, getLanguage(req), vars);