Class UserManagerImpl

java.lang.Object
ubic.gemma.core.security.authentication.UserManagerImpl
All Implemented Interfaces:
gemma.gsec.authentication.GroupManager, gemma.gsec.authentication.UserDetailsManager, org.springframework.security.core.userdetails.UserDetailsService, org.springframework.security.provisioning.GroupManager, org.springframework.security.provisioning.UserDetailsManager, UserManager

@Service("userManager") public class UserManagerImpl extends Object implements UserManager
Implementation for Spring Security, plus some other handy methods.
Author:
pavlidis
  • Constructor Details

    • UserManagerImpl

      public UserManagerImpl()
  • Method Details

    • changePasswordForUser

      @Transactional public String changePasswordForUser(String email, String username, String newPassword) throws org.springframework.security.core.AuthenticationException
      Specified by:
      changePasswordForUser in interface gemma.gsec.authentication.UserDetailsManager
      Specified by:
      changePasswordForUser in interface UserManager
      Throws:
      org.springframework.security.core.AuthenticationException
    • findAllUsers

      @Transactional(readOnly=true) public Collection<String> findAllUsers()
      Specified by:
      findAllUsers in interface gemma.gsec.authentication.UserDetailsManager
    • createUser

      @Transactional public gemma.gsec.authentication.UserDetailsImpl createUser(String username, String email, String password)
      Specified by:
      createUser in interface UserManager
    • findByEmail

      @Transactional(readOnly=true) public User findByEmail(String emailAddress)
      Specified by:
      findByEmail in interface UserManager
    • findByUserName

      @Transactional(readOnly=true) public User findByUserName(String userName)
      Specified by:
      findByUserName in interface UserManager
    • findGroupsForUser

      @Transactional(readOnly=true) public Collection<String> findGroupsForUser(String userName)
      Specified by:
      findGroupsForUser in interface gemma.gsec.authentication.GroupManager
      Specified by:
      findGroupsForUser in interface UserManager
    • generateSignupToken

      public String generateSignupToken(String username)
      Specified by:
      generateSignupToken in interface gemma.gsec.authentication.UserDetailsManager
    • getCurrentUser

      @Transactional(readOnly=true) public User getCurrentUser()
      Description copied from interface: UserManager
      Obtain the User corresponding to the currently logged in user.
      Specified by:
      getCurrentUser in interface UserManager
      Returns:
      the user, or null if no user is logged in
    • getCurrentUsername

      public String getCurrentUsername()
      Description copied from interface: UserManager
      Obtain the username of the currently logged in user.

      If no user is logged in, the principal of the anonymous authentication token is returned.

      Specified by:
      getCurrentUsername in interface gemma.gsec.authentication.UserDetailsManager
      Specified by:
      getCurrentUsername in interface UserManager
    • groupExists

      @Transactional(readOnly=true) public boolean groupExists(String groupName)
      Specified by:
      groupExists in interface gemma.gsec.authentication.GroupManager
    • loadAll

      @Transactional(readOnly=true) public Collection<User> loadAll()
      Specified by:
      loadAll in interface UserManager
    • loggedIn

      public boolean loggedIn()
      Specified by:
      loggedIn in interface gemma.gsec.authentication.UserDetailsManager
    • reauthenticate

      public void reauthenticate(String username, String password)
      Specified by:
      reauthenticate in interface gemma.gsec.authentication.UserDetailsManager
    • userWithEmailExists

      @Transactional(readOnly=true) public boolean userWithEmailExists(String emailAddress)
      Specified by:
      userWithEmailExists in interface gemma.gsec.authentication.UserDetailsManager
      Specified by:
      userWithEmailExists in interface UserManager
    • validateSignupToken

      @Transactional public boolean validateSignupToken(String username, String key)
      Specified by:
      validateSignupToken in interface gemma.gsec.authentication.UserDetailsManager
      Specified by:
      validateSignupToken in interface UserManager
    • createUser

      @Transactional public void createUser(org.springframework.security.core.userdetails.UserDetails user)
      Specified by:
      createUser in interface org.springframework.security.provisioning.UserDetailsManager
      Specified by:
      createUser in interface UserManager
    • updateUser

      @Transactional public void updateUser(org.springframework.security.core.userdetails.UserDetails user)
      Specified by:
      updateUser in interface org.springframework.security.provisioning.UserDetailsManager
      Specified by:
      updateUser in interface UserManager
    • updateUserGroups

      @Transactional public void updateUserGroups(org.springframework.security.core.userdetails.UserDetails userDetails, Collection<String> groups)
      Description copied from interface: UserManager
      Update the groups a user belong to.
      Specified by:
      updateUserGroups in interface UserManager
    • deleteUser

      @Transactional public void deleteUser(String username)
      Specified by:
      deleteUser in interface org.springframework.security.provisioning.UserDetailsManager
      Specified by:
      deleteUser in interface UserManager
    • changePassword

      @Transactional public void changePassword(String oldPassword, String newPassword) throws org.springframework.security.core.AuthenticationException
      Specified by:
      changePassword in interface org.springframework.security.provisioning.UserDetailsManager
      Specified by:
      changePassword in interface UserManager
      Throws:
      org.springframework.security.core.AuthenticationException
    • userExists

      @Transactional(readOnly=true) public boolean userExists(String username)
      Specified by:
      userExists in interface org.springframework.security.provisioning.UserDetailsManager
      Specified by:
      userExists in interface UserManager
    • findAllGroups

      @Transactional(readOnly=true) public List<String> findAllGroups()
      Specified by:
      findAllGroups in interface org.springframework.security.provisioning.GroupManager
    • findUsersInGroup

      @Transactional(readOnly=true) public List<String> findUsersInGroup(String groupName)
      Specified by:
      findUsersInGroup in interface org.springframework.security.provisioning.GroupManager
    • createGroup

      @Transactional public void createGroup(String groupName, List<org.springframework.security.core.GrantedAuthority> authorities)
      Specified by:
      createGroup in interface org.springframework.security.provisioning.GroupManager
    • deleteGroup

      @Transactional public void deleteGroup(String groupName)
      Specified by:
      deleteGroup in interface org.springframework.security.provisioning.GroupManager
    • renameGroup

      @Transactional public void renameGroup(String oldName, String newName)
      Specified by:
      renameGroup in interface org.springframework.security.provisioning.GroupManager
    • addUserToGroup

      @Transactional public void addUserToGroup(String username, String groupName)
      Specified by:
      addUserToGroup in interface org.springframework.security.provisioning.GroupManager
    • removeUserFromGroup

      @Transactional public void removeUserFromGroup(String username, String groupName)
      Specified by:
      removeUserFromGroup in interface org.springframework.security.provisioning.GroupManager
    • findGroupAuthorities

      @Transactional(readOnly=true) public List<org.springframework.security.core.GrantedAuthority> findGroupAuthorities(String groupName)
      Specified by:
      findGroupAuthorities in interface org.springframework.security.provisioning.GroupManager
    • addGroupAuthority

      @Transactional public void addGroupAuthority(String groupName, org.springframework.security.core.GrantedAuthority authority)
      Specified by:
      addGroupAuthority in interface org.springframework.security.provisioning.GroupManager
    • removeGroupAuthority

      @Transactional public void removeGroupAuthority(String groupName, org.springframework.security.core.GrantedAuthority authority)
      Specified by:
      removeGroupAuthority in interface org.springframework.security.provisioning.GroupManager
    • isEnableAuthorities

      public boolean isEnableAuthorities()
    • setEnableAuthorities

      public void setEnableAuthorities(boolean enableAuthorities)
    • isEnableGroups

      public boolean isEnableGroups()
    • setEnableGroups

      public void setEnableGroups(boolean enableGroups)
    • loadUserByUsername

      @Transactional(readOnly=true) public org.springframework.security.core.userdetails.UserDetails loadUserByUsername(String username) throws org.springframework.security.core.userdetails.UsernameNotFoundException
      Specified by:
      loadUserByUsername in interface org.springframework.security.core.userdetails.UserDetailsService
      Throws:
      org.springframework.security.core.userdetails.UsernameNotFoundException
    • loadUsersByUsername

      protected List<org.springframework.security.core.userdetails.UserDetails> loadUsersByUsername(String username)