From 2aca456729297c8ab8dff530bb4631a2abf84132 Mon Sep 17 00:00:00 2001 From: Robert von Burg Date: Thu, 21 Mar 2024 14:23:04 +0100 Subject: [PATCH] [New] Added CertificateThreadLocal --- .../model/CertificateThreadLocal.java | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 privilege/src/main/java/li/strolch/privilege/model/CertificateThreadLocal.java diff --git a/privilege/src/main/java/li/strolch/privilege/model/CertificateThreadLocal.java b/privilege/src/main/java/li/strolch/privilege/model/CertificateThreadLocal.java new file mode 100644 index 000000000..7132f5f7c --- /dev/null +++ b/privilege/src/main/java/li/strolch/privilege/model/CertificateThreadLocal.java @@ -0,0 +1,27 @@ +package li.strolch.privilege.model; + +public class CertificateThreadLocal extends ThreadLocal { + + private static final CertificateThreadLocal instance = new CertificateThreadLocal(); + + public static boolean hasCert() { + return instance.get() != null; + } + + public static Certificate getCert() { + Certificate cert = instance.get(); + if (cert == null) + throw new IllegalStateException("No Cert available on thread " + Thread.currentThread().getName()); + return cert; + } + + public static void setCert(Certificate cert) { + if (instance.get() != null) + throw new IllegalStateException("THIS THREAD HAS ALREADY HAS A CERT!"); + instance.set(cert); + } + + public static void removeCert() { + instance.remove(); + } +}