Changeset 942
- Timestamp:
- 11/26/10 17:12:05 (14 years ago)
- Location:
- VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main/java/eu/clarin/cmdi/virtualcollectionregistry/gui
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main/java/eu/clarin/cmdi/virtualcollectionregistry/gui/ApplicationSession.java
r906 r942 2 2 3 3 import java.security.Principal; 4 import java.util.regex.Pattern; 4 5 5 6 import org.apache.wicket.Request; … … 7 8 import org.apache.wicket.authorization.strategies.role.Roles; 8 9 10 import eu.clarin.cmdi.virtualcollectionregistry.gui.auth.AuthPrincipal; 11 9 12 10 13 @SuppressWarnings("serial") 11 14 public class ApplicationSession extends AuthenticatedWebSession { 15 private static final String[] ATTRIBUTE_NAMES_NAME = 16 { "cn", "commonName", "displayName" }; 17 private static final Pattern PERSITENT_ID_REGEX = 18 Pattern.compile("^[^!]+![^!]+![^!]+$"); 12 19 private static final Roles ROLES_USER = 13 20 new Roles(Roles.USER); 14 21 private static final Roles ROLES_ADMIN = 15 22 new Roles(new String[] { Roles.USER, Roles.ADMIN}); 16 private Principal principal;23 private String user; 17 24 private boolean isAdmin; 25 private String userDisplay; 18 26 19 27 public ApplicationSession(Request request) { … … 26 34 result = signIn(principal.getName(), null); 27 35 if (result) { 28 // XXX: possibly do something with attributes 29 this.principal = principal; 30 this.isAdmin = 31 ((Application) getApplication()).isAdmin(getUser()); 36 user = principal.getName(); 37 isAdmin = ((Application) getApplication()).isAdmin(user); 38 userDisplay = findDisplayName(principal); 32 39 } 33 40 } … … 53 60 54 61 public Principal getPrincipal() { 55 return principal; 62 return new Principal() { 63 @Override 64 public String getName() { 65 return user; 66 } 67 }; 56 68 } 57 69 58 70 public String getUser() { 59 return principal.getName(); 71 return user; 72 } 73 74 public String getUserDisplay() { 75 if (userDisplay != null) { 76 return userDisplay; 77 } 78 if (PERSITENT_ID_REGEX.matcher(user).matches()) { 79 return "Authenticated via Shibboleth"; 80 } 81 return user; 60 82 } 61 83 … … 64 86 } 65 87 88 private static String findDisplayName(Principal p) { 89 if (p instanceof AuthPrincipal) { 90 final AuthPrincipal principal = (AuthPrincipal) p; 91 for (String attr : ATTRIBUTE_NAMES_NAME ) { 92 String name = principal.getAttibute(attr); 93 if (name != null) { 94 return name; 95 } 96 } 97 String givenName = principal.getAttibute("givenName"); 98 String surname = principal.getAttibute("surname"); 99 if ((givenName != null) && (surname != null)) { 100 return givenName + " " + surname; 101 } 102 } 103 return null; 104 } 105 66 106 } // class ApplicationSession -
VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main/java/eu/clarin/cmdi/virtualcollectionregistry/gui/pages/AuthenticationStatePanel.java
r933 r942 84 84 protected void onBeforeRender() { 85 85 ApplicationSession session = (ApplicationSession) getSession(); 86 usernameLabel.setDefaultModel(new Model<String>(session.getUser())); 86 final Model<String> userModel = 87 new Model<String>(session.getUserDisplay()); 88 usernameLabel.setDefaultModel(userModel); 87 89 super.onBeforeRender(); 88 90 }
Note: See TracChangeset
for help on using the changeset viewer.