1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 package info.magnolia.cms.security;
35
36 import java.util.Date;
37
38 import javax.servlet.http.HttpServletRequest;
39 import javax.servlet.http.HttpSession;
40
41 import org.slf4j.Logger;
42 import org.slf4j.LoggerFactory;
43 import info.magnolia.context.MgnlContext;
44
45
46
47
48
49
50 public final class Lock {
51
52 private static Logger log = LoggerFactory.getLogger(Lock.class);
53
54
55
56
57 private static final String SESSION_LOCK = "mgnlSessionLock";
58
59
60
61
62 private static boolean isSystemLocked;
63
64
65
66
67 private static Date lockSetDate;
68
69
70
71
72 private Lock() {
73
74 }
75
76
77
78
79 public static void setSessionLock(HttpServletRequest request) {
80 log.info("Session lock enabled for user ( {} ) on {}", MgnlContext.getUser().getName(), new Date());
81
82 HttpSession httpsession = request.getSession(true);
83 httpsession.setAttribute(SESSION_LOCK, (new Date()).toString());
84 }
85
86
87
88
89
90
91 public static boolean isSessionLocked(HttpServletRequest request) {
92
93 if (request.getSession(true).getAttribute(Lock.SESSION_LOCK) != null) {
94 return true;
95 }
96 return false;
97 }
98
99
100
101
102 public static void resetSessionLock(HttpServletRequest request) {
103 if (!Lock.isSessionLocked(request)) {
104 log.debug("No Lock found to reset");
105 }
106 else {
107 log.debug("Resetting session lock");
108 Lock.isSystemLocked = false;
109 }
110
111 HttpSession httpsession = request.getSession(true);
112 httpsession.removeAttribute(Lock.SESSION_LOCK);
113 }
114
115
116
117
118 public static void setSystemLock() {
119 if (Lock.isSystemLocked()) {
120 log.debug("System lock exist, created on {}", Lock.lockSetDate);
121 }
122 else {
123 Lock.isSystemLocked = true;
124 Lock.lockSetDate = new Date();
125 log.debug("New System lock created on {}", Lock.lockSetDate);
126 }
127 }
128
129
130
131
132 public static void resetSystemLock() {
133 if (!Lock.isSystemLocked()) {
134 log.debug("No Lock found to reset");
135 }
136 else {
137 log.debug("Resetting system lock created on {}", Lock.lockSetDate);
138 Lock.isSystemLocked = false;
139 }
140 }
141
142
143
144
145
146 public static boolean isSystemLocked() {
147 return Lock.isSystemLocked;
148 }
149 }