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();