Changeset 5472
- Timestamp:
- 07/10/14 09:23:47 (10 years ago)
- Location:
- VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main/java/eu/clarin/cmdi/virtualcollectionregistry/gui
- Files:
-
- 1 added
- 1 deleted
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main/java/eu/clarin/cmdi/virtualcollectionregistry/gui/ApplicationSession.java
r5417 r5472 1 1 package eu.clarin.cmdi.virtualcollectionregistry.gui; 2 2 3 import de.mpg.aai.shhaa.model.AuthAttribute; 4 import de.mpg.aai.shhaa.model.AuthPrincipal; 3 5 import java.security.Principal; 4 6 import java.util.regex.Pattern; 5 6 7 import org.apache.wicket.Request; 7 8 import org.apache.wicket.authentication.AuthenticatedWebSession; 8 9 import org.apache.wicket.authorization.strategies.role.Roles; 9 10 import eu.clarin.cmdi.virtualcollectionregistry.gui.auth.AuthPrincipal; 11 10 import org.slf4j.Logger; 11 import org.slf4j.LoggerFactory; 12 12 13 13 @SuppressWarnings("serial") 14 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("^[^!]+![^!]+![^!]+$"); 19 private static final Roles ROLES_USER = 20 new Roles(Roles.USER); 21 private static final Roles ROLES_ADMIN = 22 new Roles(new String[] { Roles.USER, Roles.ADMIN}); 15 16 private final static Logger logger = LoggerFactory.getLogger(ApplicationSession.class); 17 18 private static final String[] ATTRIBUTE_NAMES_NAME 19 = {"cn", "commonName", "displayName"}; 20 private static final Pattern PERSITENT_ID_REGEX 21 = Pattern.compile("^[^!]+![^!]+![^!]+$"); 22 private static final Roles ROLES_USER 23 = new Roles(Roles.USER); 24 private static final Roles ROLES_ADMIN 25 = new Roles(new String[]{Roles.USER, Roles.ADMIN}); 23 26 private String user; 24 27 private boolean isAdmin; … … 30 33 31 34 public boolean signIn(Principal principal) { 35 logger.trace("Signing in principal {}", principal); 32 36 boolean result = false; 33 37 if (principal != null) { … … 37 41 isAdmin = ((Application) getApplication()).isAdmin(user); 38 42 userDisplay = findDisplayName(principal); 43 logger.debug("Principal is signed in [user = {}, display name = {}, isAdmin = {}]", user, userDisplay, isAdmin); 39 44 } 40 45 } … … 83 88 84 89 private static String findDisplayName(Principal p) { 90 logger.trace("Looking for display name for principal {}", p); 85 91 if (p instanceof AuthPrincipal) { 86 92 final AuthPrincipal principal = (AuthPrincipal) p; 87 for (String attr : ATTRIBUTE_NAMES_NAME 88 String name = principal.getAttibute(attr);93 for (String attr : ATTRIBUTE_NAMES_NAME) { 94 final String name = getAttribute(principal, attr); 89 95 if (name != null) { 96 logger.debug("Display name found for principal: {}", name); 90 97 return name; 91 98 } 92 99 } 93 String givenName = principal.getAttibute("givenName");94 String surname = principal.getAttibute("surname");100 String givenName = getAttribute(principal, "givenName"); 101 String surname = getAttribute(principal, "surname"); 95 102 if ((givenName != null) && (surname != null)) { 96 return givenName + " " + surname; 103 final String name = givenName + " " + surname; 104 logger.debug("Display name found for principal: {}", name); 105 return name; 106 } 107 } 108 logger.debug("No display name found for principal"); 109 return null; 110 } 111 112 private static String getAttribute(final AuthPrincipal principal, String attr) { 113 logger.trace("Looking for attribute {}", attr); 114 final AuthAttribute<?> attribute = principal.getAttribues().get(attr); 115 if (attribute != null) { 116 final Object value = attribute.getValue(); 117 if (value != null) { 118 logger.trace("Found attribute value: {} = {}", attr, value); 119 return value.toString(); 97 120 } 98 121 } -
VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main/java/eu/clarin/cmdi/virtualcollectionregistry/gui/pages/AuthenticationStatePanel.java
r5417 r5472 1 1 package eu.clarin.cmdi.virtualcollectionregistry.gui.pages; 2 2 3 import org.apache.wicket.Page;3 import eu.clarin.cmdi.virtualcollectionregistry.gui.ApplicationSession; 4 4 import org.apache.wicket.authentication.AuthenticatedWebSession; 5 5 import org.apache.wicket.markup.html.basic.Label; 6 import org.apache.wicket.markup.html.link. StatelessLink;6 import org.apache.wicket.markup.html.link.Link; 7 7 import org.apache.wicket.markup.html.panel.Fragment; 8 8 import org.apache.wicket.markup.html.panel.Panel; 9 9 import org.apache.wicket.model.Model; 10 11 import eu.clarin.cmdi.virtualcollectionregistry.gui.ApplicationSession;12 10 13 11 @SuppressWarnings("serial") … … 22 20 23 21 private class LoginFragment extends Fragment { 22 24 23 public LoginFragment(String id) { 25 24 super(id, "loginFragment", AuthenticationStatePanel.this); 26 25 setRenderBodyOnly(true); 27 final StatelessLink loginLink = new StatelessLink("loginLink") { 26 add(new Link("loginLink") { 27 28 28 @Override 29 29 public void onClick() { 30 setResponsePage(new DummyLoginPage(getPage().getPageReference())); 30 31 } 31 32 @Override 33 protected CharSequence getURL() { 34 final Page page = getPage(); 35 StringBuilder url = 36 new StringBuilder(urlFor(page.getClass(), 37 page.getPageParameters())); 38 if (url.indexOf("?") != -1) { 39 url.append('&'); 40 } else { 41 url.append('?'); 42 } 43 url.append("authAction=LOGIN"); 44 return url.toString(); 45 } 46 }; 47 add(loginLink); 32 }); 48 33 } 49 34 … … 60 45 61 46 private class LogoutFragment extends Fragment { 47 62 48 private final Label usernameLabel; 63 49 … … 84 70 protected void onBeforeRender() { 85 71 ApplicationSession session = (ApplicationSession) getSession(); 86 final Model<String> userModel =87 new Model<String>(session.getUserDisplay());72 final Model<String> userModel 73 = new Model<String>(session.getUserDisplay()); 88 74 usernameLabel.setDefaultModel(userModel); 89 75 super.onBeforeRender();
Note: See TracChangeset
for help on using the changeset viewer.