Author: marcel.offermans at luminis.nl
Date: Fri Jan 21 23:41:27 2011
New Revision: 687

Log:
AMDATU-261 Properly encoded the username where it was used as part of a href.

Modified:
   
trunk/amdatu-authorization/useradmin-rest/src/main/java/org/amdatu/authorization/useradmin/rest/bean/RoleBean.java

Modified: 
trunk/amdatu-authorization/useradmin-rest/src/main/java/org/amdatu/authorization/useradmin/rest/bean/RoleBean.java
==============================================================================
--- 
trunk/amdatu-authorization/useradmin-rest/src/main/java/org/amdatu/authorization/useradmin/rest/bean/RoleBean.java
  (original)
+++ 
trunk/amdatu-authorization/useradmin-rest/src/main/java/org/amdatu/authorization/useradmin/rest/bean/RoleBean.java
  Fri Jan 21 23:41:27 2011
@@ -16,7 +16,9 @@
  */
 package org.amdatu.authorization.useradmin.rest.bean;
 
+import java.io.UnsupportedEncodingException;
 import java.net.URISyntaxException;
+import java.net.URLEncoder;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -118,6 +120,15 @@
     public static RoleBean fromRole(Role role, UserAdmin userAdmin) throws 
URISyntaxException {
         return fromRole(role, userAdmin, true);
     }
+    
+    private static String encode(String name) {
+       try {
+               return URLEncoder.encode(name, "UTF-8");
+       }
+       catch (UnsupportedEncodingException e) {
+               throw new IllegalStateException("UTF-8 must be supported by the 
JVM");
+       }
+    }
 
     public static RoleBean fromRole(Role role, UserAdmin userAdmin, boolean 
loadMembers) throws URISyntaxException {
         RoleBean roleBean = new RoleBean();
@@ -128,7 +139,7 @@
         if (role.getType() == Role.USER) {
             String[] impliedRoles = userAdmin.getAuthorization((User) 
role).getRoles();
             roleBean.setImpliedRoles(impliedRoles);
-            href += "users/" + name;
+            href += "users/" + encode(name);
         }
         else {
             if (loadMembers) {
@@ -150,7 +161,7 @@
                 }
                 roleBean.setBasicMembers(basicMembers);
             }
-            href += "groups/" + name;
+            href += "groups/" + encode(name);
         }
         // Use JAX-RS URI builder to properly encode the href
         href = UriBuilder.fromPath(href).build().toString();

Reply via email to