You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rave.apache.org by ja...@apache.org on 2011/11/22 10:23:39 UTC

svn commit: r1204871 - in /incubator/rave/sandbox/rave-extensions/rave-extension-sso/src: main/java/org/apache/rave/portal/security/impl/DefaultSSOLoginHandler.java test/java/org/apache/rave/portal/security/impl/DefaultSSOLoginHandlerTest.java

Author: jasha
Date: Tue Nov 22 09:23:39 2011
New Revision: 1204871

URL: http://svn.apache.org/viewvc?rev=1204871&view=rev
Log:
RAVE-357 populate displayname

Modified:
    incubator/rave/sandbox/rave-extensions/rave-extension-sso/src/main/java/org/apache/rave/portal/security/impl/DefaultSSOLoginHandler.java
    incubator/rave/sandbox/rave-extensions/rave-extension-sso/src/test/java/org/apache/rave/portal/security/impl/DefaultSSOLoginHandlerTest.java

Modified: incubator/rave/sandbox/rave-extensions/rave-extension-sso/src/main/java/org/apache/rave/portal/security/impl/DefaultSSOLoginHandler.java
URL: http://svn.apache.org/viewvc/incubator/rave/sandbox/rave-extensions/rave-extension-sso/src/main/java/org/apache/rave/portal/security/impl/DefaultSSOLoginHandler.java?rev=1204871&r1=1204870&r2=1204871&view=diff
==============================================================================
--- incubator/rave/sandbox/rave-extensions/rave-extension-sso/src/main/java/org/apache/rave/portal/security/impl/DefaultSSOLoginHandler.java (original)
+++ incubator/rave/sandbox/rave-extensions/rave-extension-sso/src/main/java/org/apache/rave/portal/security/impl/DefaultSSOLoginHandler.java Tue Nov 22 09:23:39 2011
@@ -47,6 +47,7 @@ public class DefaultSSOLoginHandler impl
     private final AuthorityService authorityService;
 
     private String ssoHeaderEmail;
+    private String ssoHeaderDisplayName;
     private String defaultPageLayout;
     private String defaultUserRole;
 
@@ -67,9 +68,7 @@ public class DefaultSSOLoginHandler impl
         }
         final String email = request.getHeader(ssoHeaderEmail);
         createNewUser(username, email);
-        if (shouldAssignRoleToNewUser()){
-            assignAuthorityToUser(username);
-        }
+        updateAdditionalUserFields(username, request);
     }
 
     private void createNewUser(String username, String email) {
@@ -85,23 +84,33 @@ public class DefaultSSOLoginHandler impl
         }
     }
 
-    private boolean shouldAssignRoleToNewUser() {
-        return getDefaultUserRole() != null && !("".equals(getDefaultUserRole()));
-    }
-
-    private void assignAuthorityToUser(String username) {
+    private void updateAdditionalUserFields(String username, HttpServletRequest request) {
         User user = userService.getUserByUsername(username);
         if (user == null) {
             throw new UsernameNotFoundException("No user found for username " + username);
         }
+
+        user.setDisplayName(request.getHeader(ssoHeaderDisplayName));
+
+        if (shouldAssignRoleToNewUser()){
+            user.setAuthorities(getAuthorities());
+        }
+        userService.updateUserProfile(user);
+    }
+
+    private boolean shouldAssignRoleToNewUser() {
+        return getDefaultUserRole() != null && !("".equals(getDefaultUserRole()));
+    }
+
+    private Collection<Authority> getAuthorities() {
+        Collection<Authority> authorities = new HashSet<Authority>();
+
         Authority userRole = getUserRole();
         if (userRole == null) {
-            return;
+            return authorities;
         }
-        Collection<Authority> authorities = new HashSet<Authority>();
         authorities.add(userRole);
-        user.setAuthorities(authorities);
-        userService.updateUserProfile(user);
+        return authorities;
     }
 
     private Authority getUserRole() {
@@ -127,6 +136,10 @@ public class DefaultSSOLoginHandler impl
         this.ssoHeaderEmail = ssoHeaderEmail;
     }
 
+    public void setSsoHeaderDisplayName(String ssoHeaderDisplayName) {
+        this.ssoHeaderDisplayName = ssoHeaderDisplayName;
+    }
+
     public String getDefaultPageLayout() {
         return defaultPageLayout;
     }

Modified: incubator/rave/sandbox/rave-extensions/rave-extension-sso/src/test/java/org/apache/rave/portal/security/impl/DefaultSSOLoginHandlerTest.java
URL: http://svn.apache.org/viewvc/incubator/rave/sandbox/rave-extensions/rave-extension-sso/src/test/java/org/apache/rave/portal/security/impl/DefaultSSOLoginHandlerTest.java?rev=1204871&r1=1204870&r2=1204871&view=diff
==============================================================================
--- incubator/rave/sandbox/rave-extensions/rave-extension-sso/src/test/java/org/apache/rave/portal/security/impl/DefaultSSOLoginHandlerTest.java (original)
+++ incubator/rave/sandbox/rave-extensions/rave-extension-sso/src/test/java/org/apache/rave/portal/security/impl/DefaultSSOLoginHandlerTest.java Tue Nov 22 09:23:39 2011
@@ -23,7 +23,6 @@ import javax.servlet.http.HttpServletReq
 import org.apache.rave.portal.model.Authority;
 import org.apache.rave.portal.model.NewUser;
 import org.apache.rave.portal.model.User;
-import org.apache.rave.portal.security.impl.DefaultSSOLoginHandler;
 import org.apache.rave.portal.service.AuthorityService;
 import org.apache.rave.portal.service.NewAccountService;
 import org.apache.rave.portal.service.UserService;
@@ -56,6 +55,7 @@ public class DefaultSSOLoginHandlerTest 
         authorityService = createMock(AuthorityService.class);
         loginHandler = new DefaultSSOLoginHandler(newAccountService, userService, authorityService);
         loginHandler.setSsoHeaderEmail("EMAIL");
+        loginHandler.setSsoHeaderDisplayName("Mr Smith");
         loginHandler.setAutoCreateUser(true);
         loginHandler.setDefaultUserRole("ROLE_USER");
         loginHandler.setDefaultPageLayout("columns_2");