+ public static User fetchUserBySerial(String serial) {
+ if ( !serial.matches("[A-Fa-f0-9]+")) {
+ throw new Error("serial malformed.");
+ }
+
+ CertificateOwner o = CertificateOwner.getByEnabledSerial(serial);
+ if (o == null || !(o instanceof User)) {
+ return null;
+ }
+ return (User) o;
+ }
+
+ public static X509Certificate getCertificateFromRequest(HttpServletRequest req) {
+ X509Certificate[] cert = (X509Certificate[]) req.getAttribute("javax.servlet.request.X509Certificate");
+ X509Certificate uc = null;
+ if (cert != null && cert[0] != null) {
+ uc = cert[0];
+ }
+ return uc;
+ }
+
+ private static final Group LOGIN_BLOCKED = Group.getByString("blockedlogin");
+