package com.plexobject.rbac.utils; public class CurrentRequest { private static final ThreadLocal<String> domain = new ThreadLocal<String>(); private static final ThreadLocal<String> subjectName = new ThreadLocal<String>(); private static final ThreadLocal<String> ipAddress = new ThreadLocal<String>(); public static void startRequest(final String domain, final String subjectName, final String ipAddress) { CurrentRequest.domain.set(domain); CurrentRequest.subjectName.set(subjectName); CurrentRequest.ipAddress.set(ipAddress); } public static void setSubjectName(String subjectName) { CurrentRequest.subjectName.set(subjectName); } public static void endRequest() { CurrentRequest.domain.set(null); CurrentRequest.subjectName.set(null); CurrentRequest.ipAddress.set(null); } public static String getDomain() { return domain.get(); } public static String getSubjectName() { return subjectName.get(); } public static String getIPAddress() { return ipAddress.get(); } }