Fix issue with LDAP context cast
authorMathieu Baudier <mbaudier@argeo.org>
Sat, 19 Sep 2009 18:07:12 +0000 (18:07 +0000)
committerMathieu Baudier <mbaudier@argeo.org>
Sat, 19 Sep 2009 18:07:12 +0000 (18:07 +0000)
git-svn-id: https://svn.argeo.org/commons/trunk@2979 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc

security/doc/services-api.txt
security/modules/org.argeo.security.webapp/WEB-INF/security-servlet.xml
security/runtime/org.argeo.security.core/pom.xml
security/runtime/org.argeo.security.core/src/main/java/org/argeo/security/BasicArgeoUser.java [deleted file]
security/runtime/org.argeo.security.core/src/main/java/org/argeo/security/SimpleArgeoUser.java [new file with mode: 0644]
security/runtime/org.argeo.security.core/src/main/java/org/argeo/security/core/ArgeoUserDetails.java
security/runtime/org.argeo.security.core/src/main/java/org/argeo/security/core/DefaultSecurityService.java
security/runtime/org.argeo.security.core/src/test/java/org/argeo/security/json/ArgeoUserJsonTest.java
security/runtime/org.argeo.security.core/src/test/java/org/argeo/security/json/JsonServerMapperTest.java
security/runtime/org.argeo.security.mvc/src/main/java/org/argeo/security/mvc/UsersRolesController.java

index a914007a9610fd7f5c0d4e54bb14a65d7e4bc450..bdb8d423ba22570bed244c363b90e489d700a486 100644 (file)
@@ -20,8 +20,11 @@ getUserDetails.security
 > param : userName <string>
 > return : userDetails <json> : full details (roles, natures, etc).
 
-createUser.security (ADMIN only)
-> params : username <string>, password <string> 
+createUser.security (ADMIN only, POST)
+> params : userDetails <json> 
+
+updateUser.security (POST)
+> params : userDetails <json> 
 
 updateUserPassword.security (ADMIN only)
 > param : username <string>, password <string>
index 3201f73e6622b343df582847f49c595da2aa2aca..bab0a82e4dabef90541dcc36c1615856456ed5ad 100644 (file)
@@ -16,7 +16,7 @@
        </bean>
 
        <bean id="userDeserializer" class="org.argeo.server.json.JsonServerMapper">
-               <property name="targetClass" value="org.argeo.security.BasicArgeoUser" />
+               <property name="targetClass" value="org.argeo.security.SimpleArgeoUser" />
                <property name="deserializers">
                        <map>
                                <entry key="org.argeo.security.UserNature">
index 374ec77bc074b055acfd746b856082ee25ee1484..3f9f04fabf553ac6632b5a6623a367198485b85a 100644 (file)
@@ -33,7 +33,8 @@
                                                        org.argeo.security.*
                                                </Export-Package>
                                                <Import-Package>*,
-                                                       org.argeo.server.json;resolution:=optional
+                                                       org.argeo.server.json;resolution:=optional,
+                                                       org.springframework.ldap.core.support;resolution:=optional
                                                </Import-Package>
                                        </instructions>
                                </configuration>
diff --git a/security/runtime/org.argeo.security.core/src/main/java/org/argeo/security/BasicArgeoUser.java b/security/runtime/org.argeo.security.core/src/main/java/org/argeo/security/BasicArgeoUser.java
deleted file mode 100644 (file)
index e7d81d0..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-package org.argeo.security;
-
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.List;
-
-public class BasicArgeoUser implements ArgeoUser, Serializable {
-       private static final long serialVersionUID = 1L;
-
-       private String username;
-       private String password;
-       private List<UserNature> userNatures = new ArrayList<UserNature>();
-       private List<String> roles = new ArrayList<String>();
-
-       public BasicArgeoUser() {
-
-       }
-
-       public BasicArgeoUser(ArgeoUser argeoUser) {
-               username = argeoUser.getUsername();
-               password = argeoUser.getPassword();
-               userNatures = new ArrayList<UserNature>(argeoUser.getUserNatures());
-               roles = new ArrayList<String>(argeoUser.getRoles());
-       }
-
-       public List<UserNature> getUserNatures() {
-               return userNatures;
-       }
-
-       public List<String> getRoles() {
-               return roles;
-       }
-
-       public String getUsername() {
-               return username;
-       }
-
-       public void setUsername(String username) {
-               this.username = username;
-       }
-
-       public void setUserNatures(List<UserNature> userNatures) {
-               this.userNatures = userNatures;
-       }
-
-       public void setRoles(List<String> roles) {
-               this.roles = roles;
-       }
-
-       public String getPassword() {
-               return password;
-       }
-
-       public void setPassword(String password) {
-               this.password = password;
-       }
-}
diff --git a/security/runtime/org.argeo.security.core/src/main/java/org/argeo/security/SimpleArgeoUser.java b/security/runtime/org.argeo.security.core/src/main/java/org/argeo/security/SimpleArgeoUser.java
new file mode 100644 (file)
index 0000000..a842781
--- /dev/null
@@ -0,0 +1,57 @@
+package org.argeo.security;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+public class SimpleArgeoUser implements ArgeoUser, Serializable {
+       private static final long serialVersionUID = 1L;
+
+       private String username;
+       private String password;
+       private List<UserNature> userNatures = new ArrayList<UserNature>();
+       private List<String> roles = new ArrayList<String>();
+
+       public SimpleArgeoUser() {
+
+       }
+
+       public SimpleArgeoUser(ArgeoUser argeoUser) {
+               username = argeoUser.getUsername();
+               password = argeoUser.getPassword();
+               userNatures = new ArrayList<UserNature>(argeoUser.getUserNatures());
+               roles = new ArrayList<String>(argeoUser.getRoles());
+       }
+
+       public List<UserNature> getUserNatures() {
+               return userNatures;
+       }
+
+       public List<String> getRoles() {
+               return roles;
+       }
+
+       public String getUsername() {
+               return username;
+       }
+
+       public void setUsername(String username) {
+               this.username = username;
+       }
+
+       public void setUserNatures(List<UserNature> userNatures) {
+               this.userNatures = userNatures;
+       }
+
+       public void setRoles(List<String> roles) {
+               this.roles = roles;
+       }
+
+       public String getPassword() {
+               return password;
+       }
+
+       public void setPassword(String password) {
+               this.password = password;
+       }
+}
index a018826f844939b8ce53e4b74d0250f8ca23fef2..7ec9ce74ee768bd780f8b9e58505e10bbf23d55f 100644 (file)
@@ -5,7 +5,7 @@ import java.util.Collections;
 import java.util.List;
 
 import org.argeo.security.ArgeoUser;
-import org.argeo.security.BasicArgeoUser;
+import org.argeo.security.SimpleArgeoUser;
 import org.argeo.security.UserNature;
 import org.springframework.security.Authentication;
 import org.springframework.security.GrantedAuthority;
@@ -60,11 +60,11 @@ public class ArgeoUserDetails extends User implements ArgeoUser {
                return arr;
        }
 
-       public static BasicArgeoUser createBasicArgeoUser(UserDetails userDetails) {
+       public static SimpleArgeoUser createBasicArgeoUser(UserDetails userDetails) {
                if (userDetails instanceof ArgeoUser) {
-                       return new BasicArgeoUser((ArgeoUser) userDetails);
+                       return new SimpleArgeoUser((ArgeoUser) userDetails);
                } else {
-                       BasicArgeoUser argeoUser = new BasicArgeoUser();
+                       SimpleArgeoUser argeoUser = new SimpleArgeoUser();
                        argeoUser.setUsername(userDetails.getUsername());
                        addAuthoritiesToRoles(userDetails.getAuthorities(), argeoUser
                                        .getRoles());
@@ -74,9 +74,9 @@ public class ArgeoUserDetails extends User implements ArgeoUser {
 
        public static ArgeoUser asArgeoUser(Authentication authentication) {
                if (authentication.getPrincipal() instanceof ArgeoUser) {
-                       return (ArgeoUser) authentication.getPrincipal();
+                       return new SimpleArgeoUser((ArgeoUser) authentication.getPrincipal());
                } else {
-                       BasicArgeoUser argeoUser = new BasicArgeoUser();
+                       SimpleArgeoUser argeoUser = new SimpleArgeoUser();
                        argeoUser.setUsername(authentication.getName());
                        addAuthoritiesToRoles(authentication.getAuthorities(), argeoUser
                                        .getRoles());
index b69e02a4097115f08fa68e4fe982d663fac47754..5959704108c27627a8725a1c7d550a327d6092d2 100644 (file)
@@ -4,7 +4,7 @@ import org.argeo.security.ArgeoSecurity;
 import org.argeo.security.ArgeoSecurityDao;
 import org.argeo.security.ArgeoSecurityService;
 import org.argeo.security.ArgeoUser;
-import org.argeo.security.BasicArgeoUser;
+import org.argeo.security.SimpleArgeoUser;
 
 public class DefaultSecurityService implements ArgeoSecurityService {
        private ArgeoSecurity argeoSecurity = new DefaultArgeoSecurity();
@@ -19,7 +19,7 @@ public class DefaultSecurityService implements ArgeoSecurityService {
        }
 
        public void updateUserPassword(String username, String password) {
-               BasicArgeoUser user = new BasicArgeoUser(securityDao.getUser(username));
+               SimpleArgeoUser user = new SimpleArgeoUser(securityDao.getUser(username));
                user.setPassword(password);
                securityDao.update(user);
        }
index df9dbe95aa8cf64db551ec72367a95887d4d7b40..64306cd060a7f5d74e4cbf95d5252b2997a27c6f 100644 (file)
@@ -9,7 +9,7 @@ import junit.framework.TestCase;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.argeo.security.ArgeoUser;
-import org.argeo.security.BasicArgeoUser;
+import org.argeo.security.SimpleArgeoUser;
 import org.argeo.security.UserNature;
 import org.argeo.security.core.ArgeoUserDetails;
 import org.argeo.security.nature.CoworkerNature;
@@ -44,7 +44,7 @@ public class ArgeoUserJsonTest extends TestCase {
                ArgeoUserDetails argeoUserDetails = new ArgeoUserDetails("USER",
                                natures, "PASSWORD", roles);
 
-               BasicArgeoUser argeoUser = new BasicArgeoUser(argeoUserDetails);
+               SimpleArgeoUser argeoUser = new SimpleArgeoUser(argeoUserDetails);
 
                StringWriter writer = new StringWriter();
 
index f841aeaf1826ea7805685b888dace028c3d722eb..12bcf081e252c91d609fe210e1018ecbe1cfa63e 100644 (file)
@@ -8,7 +8,7 @@ import junit.framework.TestCase;
 
 import org.apache.commons.io.IOUtils;
 import org.argeo.security.ArgeoUser;
-import org.argeo.security.BasicArgeoUser;
+import org.argeo.security.SimpleArgeoUser;
 import org.argeo.security.UserNature;
 import org.argeo.server.json.GenericJsonDeserializer;
 import org.argeo.server.json.JsonObjectFactoryImpl;
@@ -36,7 +36,7 @@ public class JsonServerMapperTest extends TestCase {
        @SuppressWarnings("unchecked")
        public static JsonServerMapper createJsonServerMapper() throws Exception {
                JsonServerMapper mapper = new JsonServerMapper();
-               mapper.setTargetClass(BasicArgeoUser.class);
+               mapper.setTargetClass(SimpleArgeoUser.class);
                GenericJsonDeserializer jsonDeserializer = new GenericJsonDeserializer();
                jsonDeserializer.getObjectFactories().add(new JsonObjectFactoryImpl());
                mapper.getDeserializers().put(UserNature.class, jsonDeserializer);
index e73522cf4a4b6f072c1bd7d750bdd90082dbff65..a4a2e4556360051f0cb078384d2d5c827fa9151c 100644 (file)
@@ -9,7 +9,7 @@ import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.argeo.security.ArgeoSecurityService;
 import org.argeo.security.ArgeoUser;
-import org.argeo.security.BasicArgeoUser;
+import org.argeo.security.SimpleArgeoUser;
 import org.argeo.security.core.ArgeoUserDetails;
 import org.argeo.server.BooleanAnswer;
 import org.argeo.server.DeserializingEditor;
@@ -36,7 +36,7 @@ public class UsersRolesController implements MvcConstants {
 
        @InitBinder
        public void initBinder(WebDataBinder binder) {
-               binder.registerCustomEditor(BasicArgeoUser.class,
+               binder.registerCustomEditor(SimpleArgeoUser.class,
                                new DeserializingEditor(userDeserializer));
        }