Move security admin services
[lgpl/argeo-commons.git] / security / runtime / org.argeo.security.core / src / main / java / org / argeo / security / core / DefaultSecurityService.java
diff --git a/security/runtime/org.argeo.security.core/src/main/java/org/argeo/security/core/DefaultSecurityService.java b/security/runtime/org.argeo.security.core/src/main/java/org/argeo/security/core/DefaultSecurityService.java
deleted file mode 100644 (file)
index 62ce6c7..0000000
+++ /dev/null
@@ -1,177 +0,0 @@
-/*
- * Copyright (C) 2010 Mathieu Baudier <mbaudier@argeo.org>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *         http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.argeo.security.core;
-
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Set;
-
-import org.argeo.security.ArgeoSecurity;
-import org.argeo.security.ArgeoSecurityDao;
-import org.argeo.security.ArgeoSecurityService;
-import org.argeo.security.ArgeoUser;
-import org.argeo.security.SimpleArgeoUser;
-import org.argeo.security.UserAdminService;
-import org.springframework.core.task.SimpleAsyncTaskExecutor;
-import org.springframework.core.task.TaskExecutor;
-import org.springframework.security.Authentication;
-import org.springframework.security.AuthenticationManager;
-import org.springframework.security.context.SecurityContext;
-import org.springframework.security.context.SecurityContextHolder;
-
-public class DefaultSecurityService extends DefaultCurrentUserService implements
-               UserAdminService, ArgeoSecurityService {
-       private ArgeoSecurity argeoSecurity = new DefaultArgeoSecurity();
-       private ArgeoSecurityDao securityDao;
-       private AuthenticationManager authenticationManager;
-
-       private String systemAuthenticationKey;
-
-       public ArgeoSecurityDao getSecurityDao() {
-               return securityDao;
-       }
-
-       public void newRole(String role) {
-               securityDao.createRole(role, argeoSecurity.getSuperUsername());
-       }
-
-       public void updateUserPassword(String username, String password) {
-               SimpleArgeoUser user = new SimpleArgeoUser(
-                               securityDao.getUser(username));
-               user.setPassword(encodePassword(password));
-               securityDao.updateUser(user);
-       }
-
-       public void newUser(ArgeoUser user) {
-               argeoSecurity.beforeCreate(user);
-               // normalize password
-               if (user instanceof SimpleArgeoUser) {
-                       if (user.getPassword() == null || user.getPassword().equals(""))
-                               ((SimpleArgeoUser) user).setPassword(encodePassword(user
-                                               .getUsername()));
-                       else if (!user.getPassword().startsWith("{"))
-                               ((SimpleArgeoUser) user).setPassword(encodePassword(user
-                                               .getPassword()));
-               }
-               securityDao.createUser(user);
-       }
-
-       public ArgeoUser getUser(String username) {
-               return securityDao.getUser(username);
-       }
-
-       public Boolean userExists(String username) {
-               return securityDao.userExists(username);
-       }
-
-       public void updateUser(ArgeoUser user) {
-               String password = user.getPassword();
-               if (password == null)
-                       password = securityDao.getUserWithPassword(user.getUsername())
-                                       .getPassword();
-               if (!password.startsWith("{"))
-                       password = encodePassword(user.getPassword());
-               SimpleArgeoUser simpleArgeoUser = new SimpleArgeoUser(user);
-               simpleArgeoUser.setPassword(password);
-               securityDao.updateUser(simpleArgeoUser);
-       }
-
-       public void deleteUser(String username) {
-               securityDao.deleteUser(username);
-
-       }
-
-       public void deleteRole(String role) {
-               securityDao.deleteRole(role);
-       }
-
-       @Deprecated
-       public TaskExecutor createSystemAuthenticatedTaskExecutor() {
-               return new SimpleAsyncTaskExecutor() {
-                       private static final long serialVersionUID = -8126773862193265020L;
-
-                       @Override
-                       public Thread createThread(Runnable runnable) {
-                               return super
-                                               .createThread(wrapWithSystemAuthentication(runnable));
-                       }
-
-               };
-       }
-
-       /**
-        * Wraps another runnable, adding security context <br/>
-        * TODO: secure the call to this method with Java Security
-        */
-       @Deprecated
-       public Runnable wrapWithSystemAuthentication(final Runnable runnable) {
-               return new Runnable() {
-
-                       public void run() {
-                               SecurityContext securityContext = SecurityContextHolder
-                                               .getContext();
-                               Authentication auth = authenticationManager
-                                               .authenticate(new InternalAuthentication(
-                                                               systemAuthenticationKey));
-                               securityContext.setAuthentication(auth);
-
-                               runnable.run();
-                       }
-               };
-       }
-
-       public Set<ArgeoUser> listUsersInRole(String role) {
-               Set<ArgeoUser> lst = new HashSet<ArgeoUser>(
-                               securityDao.listUsersInRole(role));
-               Iterator<ArgeoUser> it = lst.iterator();
-               while (it.hasNext()) {
-                       if (it.next().getUsername()
-                                       .equals(argeoSecurity.getSuperUsername())) {
-                               it.remove();
-                               break;
-                       }
-               }
-               return lst;
-       }
-
-       public Set<ArgeoUser> listUsers() {
-               return securityDao.listUsers();
-       }
-
-       public Set<String> listEditableRoles() {
-               // TODO Auto-generated method stub
-               return securityDao.listEditableRoles();
-       }
-
-       public void setArgeoSecurity(ArgeoSecurity argeoSecurity) {
-               this.argeoSecurity = argeoSecurity;
-       }
-
-       public void setSecurityDao(ArgeoSecurityDao dao) {
-               this.securityDao = dao;
-               setCurrentUserDao(dao);
-       }
-
-       public void setAuthenticationManager(
-                       AuthenticationManager authenticationManager) {
-               this.authenticationManager = authenticationManager;
-       }
-
-       public void setSystemAuthenticationKey(String systemAuthenticationKey) {
-               this.systemAuthenticationKey = systemAuthenticationKey;
-       }
-}