Package org.springframework.security.provisioning

# Interface GroupManager

All Known Implementing Classes:
  `JdbcUserDetailsManager`

public interface GroupManager
Allows management of groups of authorities and their members.

Typically this will be used to supplement the functionality of a `UserDetailsManager` in situations where the organization of application granted authorities into groups is preferred over a straight mapping of users to roles.

With this scenario, users are allocated to groups and take on the list of authorities which are assigned to the group, providing more flexible administration options.

## Method Summary

Modifier and Type
Method
Description
`void`
`addGroupAuthority(String groupName, GrantedAuthority authority)`
Assigns a new authority to a group.
`void`
`addUserToGroup(String username, String group)`
Makes a user a member of a particular group.
`void`
`createGroup(String groupName, List<GrantedAuthority> authorities)`
Creates a new group with the specified list of authorities.
`void`
`deleteGroup(String groupName)`
Removes a group, including all members and authorities.
`List<String>`
`findAllGroups()`
Returns the names of all groups that this group manager controls.
`List<GrantedAuthority>`
`findGroupAuthorities(String groupName)`
Obtains the list of authorities which are assigned to a group.
`List<String>`
`findUsersInGroup(String groupName)`
Locates the users who are members of a group
`void`
`removeGroupAuthority(String groupName, GrantedAuthority authority)`
Deletes an authority from those assigned to a group
`void`
`removeUserFromGroup(String username, String groupName)`
Deletes a user's membership of a group.
`void`
`renameGroup(String oldName, String newName)`
Changes the name of a group without altering the assigned authorities or members.

## Method Details

### findAllGroups

List<String> findAllGroups()
Returns the names of all groups that this group manager controls.

### findUsersInGroup

List<String> findUsersInGroup(String groupName)
Locates the users who are members of a group

Parameters:
  `groupName` - the group whose members are required
Returns:
  the usernames of the group members

### createGroup

void createGroup(String groupName, List<GrantedAuthority> authorities)
Creates a new group with the specified list of authorities.

Parameters:
  `groupName` - the name for the new group
  `authorities` - the authorities which are to be allocated to this group.

### deleteGroup

void deleteGroup(String groupName)
Removes a group, including all members and authorities.

Parameters:
  `groupName` - the group to remove.

### renameGroup

void renameGroup(String oldName, String newName)
Changes the name of a group without altering the assigned authorities or members.

### addUserToGroup

void addUserToGroup(String username, String group)
Makes a user a member of a particular group.

Parameters:
  `username` - the user to be given membership.
  `group` - the name of the group to which the user will be added.

### removeUserFromGroup

void removeUserFromGroup(String username, String groupName)
Deletes a user's membership of a group.

Parameters:
  `username` - the user
  `groupName` - the group to remove them from

### findGroupAuthorities

List<GrantedAuthority> findGroupAuthorities(String groupName)
Obtains the list of authorities which are assigned to a group.

### addGroupAuthority

void addGroupAuthority(String groupName, GrantedAuthority authority)
Assigns a new authority to a group.

### removeGroupAuthority

void removeGroupAuthority(String groupName, GrantedAuthority authority)
Deletes an authority from those assigned to a group