Use anonymous user
[lgpl/argeo-commons.git] / security / runtime / org.argeo.security.core / src / main / java / org / argeo / security / ldap / ArgeoSecurityDaoLdap.java
index 763539ce25afb8d0b39d98bb94fb40a59756ec03..2fa2ce8b964fe8f1e091a384a621e8a6b888a624 100644 (file)
@@ -1,6 +1,6 @@
 package org.argeo.security.ldap;
 
-import static org.argeo.security.core.ArgeoUserDetails.createBasicArgeoUser;
+import static org.argeo.security.core.ArgeoUserDetails.createSimpleArgeoUser;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -11,6 +11,7 @@ import javax.naming.directory.DirContext;
 
 import org.argeo.security.ArgeoSecurityDao;
 import org.argeo.security.ArgeoUser;
+import org.argeo.security.SimpleArgeoUser;
 import org.argeo.security.core.ArgeoUserDetails;
 import org.springframework.beans.factory.InitializingBean;
 import org.springframework.ldap.core.ContextExecutor;
@@ -91,13 +92,21 @@ public class ArgeoSecurityDaoLdap implements ArgeoSecurityDao, InitializingBean
        }
 
        public ArgeoUser getUser(String uname) {
-               return createBasicArgeoUser(getDetails(uname));
+               SimpleArgeoUser user = createSimpleArgeoUser(getDetails(uname));
+               user.setPassword(null);
+               return user;
+       }
+
+       public ArgeoUser getUserWithPassword(String uname) {
+               return createSimpleArgeoUser(getDetails(uname));
        }
 
        public ArgeoUser getCurrentUser() {
                Authentication authentication = SecurityContextHolder.getContext()
                                .getAuthentication();
                ArgeoUser argeoUser = ArgeoUserDetails.asArgeoUser(authentication);
+               if (argeoUser == null)
+                       return null;
                if (argeoUser.getRoles().contains(defaultRole))
                        argeoUser.getRoles().remove(defaultRole);
                return argeoUser;
@@ -115,7 +124,7 @@ public class ArgeoSecurityDaoLdap implements ArgeoSecurityDao, InitializingBean
 
                List<ArgeoUser> lst = new ArrayList<ArgeoUser>();
                for (String username : usernames) {
-                       lst.add(createBasicArgeoUser(getDetails(username)));
+                       lst.add(createSimpleArgeoUser(getDetails(username)));
                }
                return lst;
        }