1 package org.apache.turbine.om.security;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import java.io.ByteArrayOutputStream;
23 import java.io.PrintWriter;
24 import java.util.Date;
25 import java.util.HashMap;
26 import java.util.Map;
27 import java.util.Set;
28
29 import javax.servlet.http.HttpSessionBindingEvent;
30
31 import org.apache.fulcrum.security.model.turbine.entity.TurbineUser;
32 import org.apache.fulcrum.security.model.turbine.entity.TurbineUserGroupRole;
33 import org.apache.turbine.services.security.TurbineSecurity;
34 import org.apache.turbine.util.ObjectUtils;
35
36
37
38
39
40
41
42
43
44 public class DefaultUserImpl implements User
45 {
46
47 private static final long serialVersionUID = -1866504873085624111L;
48
49
50 private Date lastAccessDate = null;
51
52
53 private Map<String, Object> permStorage = null;
54
55
56 private Map<String, Object> tempStorage = null;
57
58
59 private TurbineUser userDelegate = null;
60
61
62
63
64
65
66 public DefaultUserImpl(TurbineUser user)
67 {
68 super();
69 this.userDelegate = user;
70 setCreateDate(new Date());
71 tempStorage = new HashMap<String, Object>(10);
72 setHasLoggedIn(Boolean.FALSE);
73 }
74
75
76
77
78
79
80
81 @Override
82 public void valueBound(HttpSessionBindingEvent hsbe)
83 {
84
85 }
86
87
88
89
90
91
92
93 @Override
94 public void valueUnbound(HttpSessionBindingEvent hsbe)
95 {
96 try
97 {
98 if (hasLoggedIn())
99 {
100 TurbineSecurity.saveOnSessionUnbind(this);
101 }
102 }
103 catch (Exception e)
104 {
105
106
107
108
109
110 ByteArrayOutputStream ostr = new ByteArrayOutputStream();
111 e.printStackTrace(new PrintWriter(ostr, true));
112 String stackTrace = ostr.toString();
113 System.out.println(stackTrace);
114 }
115 }
116
117
118
119
120
121
122 @Override
123 public String getName()
124 {
125 return userDelegate.getName();
126 }
127
128
129
130
131
132
133
134 @Override
135 public void setName(String name)
136 {
137 userDelegate.setName(name);
138 }
139
140
141
142
143
144
145 @Override
146 public Object getId()
147 {
148 return userDelegate.getId();
149 }
150
151
152
153
154
155
156
157 @Override
158 public void setId(Object id)
159 {
160 userDelegate.setId(id);
161 }
162
163
164
165
166
167
168
169
170
171
172
173
174
175 @Override
176 public String getPassword()
177 {
178 return userDelegate.getPassword();
179 }
180
181
182
183
184
185
186
187
188 @Override
189 public void setPassword(String password)
190 {
191 userDelegate.setPassword(password);
192 }
193
194
195
196
197
198
199
200 @Override
201 public String getFirstName()
202 {
203 return userDelegate.getFirstName();
204 }
205
206
207
208
209
210
211 @Override
212 public void setFirstName(String firstName)
213 {
214 userDelegate.setFirstName(firstName);
215 }
216
217
218
219
220
221
222 @Override
223 public String getLastName()
224 {
225 return userDelegate.getLastName();
226 }
227
228
229
230
231
232
233 @Override
234 public void setLastName(String lastName)
235 {
236 userDelegate.setLastName(lastName);
237 }
238
239
240
241
242
243
244 @Override
245 public String getEmail()
246 {
247 return userDelegate.getEmail();
248 }
249
250
251
252
253
254
255 @Override
256 public void setEmail(String address)
257 {
258 userDelegate.setEmail(address);
259 }
260
261
262
263
264
265
266
267
268
269 @Override
270 public byte[] getObjectdata()
271 {
272 return userDelegate.getObjectdata();
273 }
274
275
276
277
278
279
280 @Override
281 public void setObjectdata(byte[] objectdata)
282 {
283 userDelegate.setObjectdata(objectdata);
284 }
285
286
287
288
289
290
291 @Override
292 public <T extends TurbineUserGroupRole> Set<T> getUserGroupRoleSet()
293 {
294 return userDelegate.getUserGroupRoleSet();
295 }
296
297
298
299
300
301
302
303 @Override
304 public <T extends TurbineUserGroupRole> void setUserGroupRoleSet(Set<T> userGroupRoleSet)
305 {
306 userDelegate.setUserGroupRoleSet(userGroupRoleSet);
307 }
308
309
310
311
312
313
314
315 @Override
316 public void addUserGroupRole(TurbineUserGroupRole userGroupRole)
317 {
318 userDelegate.addUserGroupRole(userGroupRole);
319 }
320
321
322
323
324
325
326
327 @Override
328 public void removeUserGroupRole(TurbineUserGroupRole userGroupRole)
329 {
330 userDelegate.removeUserGroupRole(userGroupRole);
331 }
332
333
334
335
336
337
338 @Override
339 public int getAccessCounter()
340 {
341 try
342 {
343 return ((Integer) getPerm(User.ACCESS_COUNTER)).intValue();
344 }
345 catch (Exception e)
346 {
347 return 0;
348 }
349 }
350
351
352
353
354
355
356 @Override
357 public int getAccessCounterForSession()
358 {
359 try
360 {
361 return ((Integer) getTemp(User.SESSION_ACCESS_COUNTER)).intValue();
362 }
363 catch (Exception e)
364 {
365 return 0;
366 }
367 }
368
369
370
371
372 @Override
373 public void incrementAccessCounter()
374 {
375
376 setAccessCounter(getAccessCounter() + 1);
377 }
378
379
380
381
382 @Override
383 public void incrementAccessCounterForSession()
384 {
385 setAccessCounterForSession(getAccessCounterForSession() + 1);
386 }
387
388
389
390
391
392
393 @Override
394 public void setAccessCounter(int cnt)
395 {
396 setPerm(User.ACCESS_COUNTER, Integer.valueOf(cnt));
397 }
398
399
400
401
402
403
404
405 @Override
406 public void setAccessCounterForSession(int cnt)
407 {
408 setTemp(User.SESSION_ACCESS_COUNTER, Integer.valueOf(cnt));
409 }
410
411
412
413
414
415
416
417 @Override
418 public java.util.Date getLastAccessDate()
419 {
420 if (lastAccessDate == null)
421 {
422 setLastAccessDate();
423 }
424 return lastAccessDate;
425 }
426
427
428
429
430
431 @Override
432 public void setLastAccessDate()
433 {
434 lastAccessDate = new java.util.Date();
435 }
436
437
438
439
440
441
442
443 @Override
444 public Map<String, Object> getPermStorage()
445 {
446 if (permStorage == null)
447 {
448 byte [] objectdata = getObjectdata();
449
450 if (objectdata != null)
451 {
452 permStorage = ObjectUtils.deserialize(objectdata);
453 }
454
455 if (permStorage == null)
456 {
457 permStorage = new HashMap<String, Object>();
458 }
459 }
460
461 return permStorage;
462 }
463
464
465
466
467
468
469
470 @Override
471 public void setPermStorage(Map<String, Object> permStorage)
472 {
473 if (permStorage != null)
474 {
475 this.permStorage = permStorage;
476 }
477 }
478
479
480
481
482
483
484
485 @Override
486 public Map<String, Object> getTempStorage()
487 {
488 if (tempStorage == null)
489 {
490 tempStorage = new HashMap<String, Object>();
491 }
492 return tempStorage;
493 }
494
495
496
497
498
499
500
501 @Override
502 public void setTempStorage(Map<String, Object> tempStorage)
503 {
504 if (tempStorage != null)
505 {
506 this.tempStorage = tempStorage;
507 }
508 }
509
510
511
512
513
514
515
516 @Override
517 public Object getPerm(String name)
518 {
519 return getPermStorage().get(name);
520 }
521
522
523
524
525
526
527
528
529
530 @Override
531 public Object getPerm(String name, Object def)
532 {
533 try
534 {
535 Object val = getPermStorage().get(name);
536 return (val == null ? def : val);
537 }
538 catch (Exception e)
539 {
540 return def;
541 }
542 }
543
544
545
546
547
548
549
550 @Override
551 public void setPerm(String name, Object value)
552 {
553 getPermStorage().put(name, value);
554 }
555
556
557
558
559
560
561
562 @Override
563 public Object getTemp(String name)
564 {
565 return getTempStorage().get(name);
566 }
567
568
569
570
571
572
573
574
575
576 @Override
577 public Object getTemp(String name, Object def)
578 {
579 Object val;
580 try
581 {
582 val = getTempStorage().get(name);
583 if (val == null)
584 {
585 val = def;
586 }
587 }
588 catch (Exception e)
589 {
590 val = def;
591 }
592 return val;
593 }
594
595
596
597
598
599
600
601 @Override
602 public void setTemp(String name, Object value)
603 {
604 getTempStorage().put(name, value);
605 }
606
607
608
609
610
611
612
613 @Override
614 public Object removeTemp(String name)
615 {
616 return getTempStorage().remove(name);
617 }
618
619
620
621
622
623
624 @Override
625 public String getConfirmed()
626 {
627 return (String) getPerm(User.CONFIRM_VALUE);
628 }
629
630
631
632
633
634
635 @Override
636 public void setConfirmed(String confirm)
637 {
638 setPerm(User.CONFIRM_VALUE, confirm);
639 }
640
641
642
643
644
645
646 @Override
647 public java.util.Date getCreateDate()
648 {
649 return (java.util.Date)getPerm(CREATE_DATE, new java.util.Date());
650 }
651
652
653
654
655
656
657 @Override
658 public void setCreateDate(java.util.Date createDate)
659 {
660 setPerm(CREATE_DATE, createDate);
661 }
662
663
664
665
666
667
668 @Override
669 public java.util.Date getLastLogin()
670 {
671 return (java.util.Date) getPerm(User.LAST_LOGIN);
672 }
673
674
675
676
677
678
679 @Override
680 public void setLastLogin(java.util.Date lastLogin)
681 {
682 setPerm(User.LAST_LOGIN, lastLogin);
683 }
684
685
686
687
688
689
690 @Override
691 public boolean hasLoggedIn()
692 {
693 Boolean loggedIn = (Boolean) getTemp(User.HAS_LOGGED_IN);
694 return (loggedIn != null && loggedIn.booleanValue());
695 }
696
697
698
699
700
701
702
703 @Override
704 public void setHasLoggedIn(Boolean value)
705 {
706 setTemp(User.HAS_LOGGED_IN, value);
707 }
708
709
710
711
712
713
714
715
716
717 @Override
718 public boolean isConfirmed()
719 {
720 String value = getConfirmed();
721 return (value != null && value.equals(User.CONFIRM_DATA));
722 }
723
724
725
726
727
728
729 @Override
730 public void updateLastLogin()
731 throws Exception
732 {
733 setLastLogin(new java.util.Date());
734 }
735
736
737
738
739
740
741 public TurbineUser getUserDelegate()
742 {
743 return userDelegate;
744 }
745
746
747
748
749
750
751 public void setUserDelegate(TurbineUser userDelegate)
752 {
753 this.userDelegate = userDelegate;
754 }
755 }