1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.acegisecurity.concurrent;
17
18 import org.acegisecurity.Authentication;
19 import org.acegisecurity.ui.WebAuthenticationDetails;
20 import org.acegisecurity.userdetails.UserDetails;
21
22 import org.springframework.util.Assert;
23
24
25 /***
26 * Utility methods to assist with concurrent session management.
27 *
28 * @author Ben Alex
29 * @version $Id: SessionRegistryUtils.java,v 1.3 2005/11/29 13:10:09 benalex Exp $
30 */
31 public class SessionRegistryUtils {
32
33
34 public static Object obtainPrincipalFromAuthentication(Authentication auth) {
35 Assert.notNull(auth, "Authentication required");
36 Assert.notNull(auth.getPrincipal(),
37 "Authentication.getPrincipal() required");
38
39 if (auth.getPrincipal() instanceof UserDetails) {
40 return ((UserDetails) auth.getPrincipal()).getUsername();
41 } else {
42 return auth.getPrincipal();
43 }
44 }
45
46 public static String obtainSessionIdFromAuthentication(Authentication auth) {
47 Assert.notNull(auth, "Authentication required");
48 Assert.notNull(auth.getDetails(), "Authentication.getDetails() required");
49 Assert.isInstanceOf(WebAuthenticationDetails.class, auth.getDetails());
50
51 String sessionId = ((WebAuthenticationDetails) auth.getDetails())
52 .getSessionId();
53 Assert.hasText(sessionId, "WebAuthenticationDetails missing SessionId");
54
55 return sessionId;
56 }
57 }