Author: owulff
Date: Fri Mar  8 18:42:18 2013
New Revision: 1454491

URL: http://svn.apache.org/r1454491
Log:
Fix NPE if user has no roles

Modified:
    
cxf/fediz/trunk/plugins/spring/src/main/java/org/apache/cxf/fediz/spring/authentication/GrantedAuthoritiesUserDetailsFederationService.java

Modified: 
cxf/fediz/trunk/plugins/spring/src/main/java/org/apache/cxf/fediz/spring/authentication/GrantedAuthoritiesUserDetailsFederationService.java
URL: 
http://svn.apache.org/viewvc/cxf/fediz/trunk/plugins/spring/src/main/java/org/apache/cxf/fediz/spring/authentication/GrantedAuthoritiesUserDetailsFederationService.java?rev=1454491&r1=1454490&r2=1454491&view=diff
==============================================================================
--- 
cxf/fediz/trunk/plugins/spring/src/main/java/org/apache/cxf/fediz/spring/authentication/GrantedAuthoritiesUserDetailsFederationService.java
 (original)
+++ 
cxf/fediz/trunk/plugins/spring/src/main/java/org/apache/cxf/fediz/spring/authentication/GrantedAuthoritiesUserDetailsFederationService.java
 Fri Mar  8 18:42:18 2013
@@ -34,16 +34,32 @@ import org.springframework.security.core
 public class GrantedAuthoritiesUserDetailsFederationService
         extends AbstractFederationUserDetailsService {
 
+    private boolean convertToUpperCase = true;
+    
     @Override
     protected UserDetails loadUserDetails(FederationResponse response) {
         
         final List<GrantedAuthority> grantedAuthorities = new 
ArrayList<GrantedAuthority>();
         
-        for (final String role : response.getRoles()) {
-            grantedAuthorities.add(new SimpleGrantedAuthority("ROLE_" + 
role.toUpperCase()));
+        if (response.getRoles() != null) {
+            for (final String role : response.getRoles()) {
+                
+                grantedAuthorities.add(new SimpleGrantedAuthority("ROLE_"
+                                        + (this.convertToUpperCase ? 
role.toUpperCase() : role)));
+            }
         }
         return new FederationUser(response.getUsername(), "N/A",
                         grantedAuthorities, new 
ClaimCollection(response.getClaims()));
         
     }
+    
+    
+    /**
+     * Converts the role value to uppercase value.
+     *
+     * @param convertToUpperCase true if it should convert, false otherwise.
+     */
+    public void setConvertToUpperCase(final boolean convertToUpperCase) {
+        this.convertToUpperCase = convertToUpperCase;
+    }
 }


Reply via email to