|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
The Security Service manages Users, Groups Roles and Permissions in the system. The task performed by the security service include creation and removal of accounts, groups, roles, and permissions; assigning users roles in groups; assigning roles specific permissions and construction of objects representing these logical entities.
Because of pluggable nature of the Services, it is possible to create
multiple implementations of SecurityService, for example employing database
and directory server as the data backend.
Field Summary | |
static java.lang.String |
SECURE_PASSWORDS_ALGORITHM_DEFAULT
the default algorithm for password encryption (SHA) |
static java.lang.String |
SECURE_PASSWORDS_ALGORITHM_KEY
the key within services's properties for secure passwords algorithm (secure.passwords.algorithm) |
static java.lang.String |
SECURE_PASSWORDS_DEFAULT
the value of secure passwords flag (false) |
static java.lang.String |
SECURE_PASSWORDS_KEY
the key within services's properties for secure passwords flag (secure.passwords) |
static java.lang.String |
SERVICE_NAME
The name of the service |
static java.lang.String |
USER_CLASS_DEFAULT
the default implementation of User interface (org.apache.turbine.om.security.DBUser) |
static java.lang.String |
USER_CLASS_KEY
the key within services's properties for user implementation classname (user.class) |
static java.lang.String |
USER_MANAGER_DEFAULT
the default implementation of UserManager interface (org.apache.turbine.services.security.DBUserManager) |
static java.lang.String |
USER_MANAGER_KEY
the key within services's properties for user implementation classname (user.manager) |
Method Summary | |
boolean |
accountExists(java.lang.String username)
Check whether a specified user's account exists. |
boolean |
accountExists(User user)
Check whether a specified user's account exists. |
Group |
addGroup(Group group)
Creates a new group with specified attributes. |
Permission |
addPermission(Permission permission)
Creates a new permission with specified attributes. |
Role |
addRole(Role role)
Creates a new role with specified attributes. |
void |
addUser(User user,
java.lang.String password)
Creates new user account with specified attributes. |
void |
changePassword(User user,
java.lang.String oldPassword,
java.lang.String newPassword)
Change the password for an User. |
java.lang.String |
encryptPassword(java.lang.String password)
This method provides client-side encryption mechanism for passwords. |
void |
forcePassword(User user,
java.lang.String password)
Forcibly sets new password for an User. |
AccessControlList |
getACL(User user)
Constructs an AccessControlList for a specific user. |
GroupSet |
getAllGroups()
Retrieves all groups defined in the system. |
PermissionSet |
getAllPermissions()
Retrieves all permissions defined in the system. |
RoleSet |
getAllRoles()
Retrieves all roles defined in the system. |
User |
getAnonymousUser()
Constructs an User object to represent an anonymous user of the application. |
User |
getAuthenticatedUser(java.lang.String username,
java.lang.String password)
Authenticates an user, and constructs an User object to represent him/her. |
Group |
getGlobalGroup()
Provides a reference to the Group object that represents the global group. |
Group |
getGroup(java.lang.String name)
Retrieve a Group object with specified name. |
GroupSet |
getGroups(Criteria criteria)
Retrieve a set of Groups that meet the specified Criteria. |
Group |
getNewGroup(java.lang.String groupName)
Retrieves a new Group. |
Permission |
getNewPermission(java.lang.String permissionName)
Retrieves a new Permission. |
Role |
getNewRole(java.lang.String roleName)
Retrieves a new Role. |
Permission |
getPermission(java.lang.String name)
Retrieve a Permission object with specified name. |
PermissionSet |
getPermissions(Criteria criteria)
Retrieve a set of Permissions that meet the specified Criteria. |
PermissionSet |
getPermissions(Role role)
Retrieves all permissions associated with a role. |
Role |
getRole(java.lang.String name)
Retrieve a Role object with specified name. |
RoleSet |
getRoles(Criteria criteria)
Retrieve a set of Roles that meet the specified Criteria. |
User |
getUser(java.lang.String username)
Constructs an User object to represent a registered user of the application. |
java.lang.Class |
getUserClass()
Returns the Class object for the implementation of User interface used by the system. |
User |
getUserInstance()
Construct a blank User object. |
User[] |
getUsers(Criteria criteria)
Retrieve a set of users that meet the specified criteria. |
void |
grant(Role role,
Permission permission)
Grants a Role a Permission |
void |
grant(User user,
Group group,
Role role)
Grant an User a Role in a Group. |
void |
removeGroup(Group group)
Removes a Group from the system. |
void |
removePermission(Permission permission)
Removes a Permission from the system. |
void |
removeRole(Role role)
Removes a Role from the system. |
void |
removeUser(User user)
Removes an user account from the system. |
void |
renameGroup(Group group,
java.lang.String name)
Renames an existing Group. |
void |
renamePermission(Permission permission,
java.lang.String name)
Renames an existing Permission. |
void |
renameRole(Role role,
java.lang.String name)
Renames an existing Role. |
void |
revoke(Role role,
Permission permission)
Revokes a Permission from a Role. |
void |
revoke(User user,
Group group,
Role role)
Revoke a Role in a Group from an User. |
void |
revokeAll(Role role)
Revokes all permissions from a Role. |
void |
revokeAll(User user)
Revokes all roles from an User. |
void |
saveGroup(Group group)
Stores Group's attributes. |
void |
savePermission(Permission permission)
Stores Permission's attributes. |
void |
saveRole(Role role)
Stores Role's attributes. |
void |
saveUser(User user)
Saves User's data in the permanent storage. |
Methods inherited from interface org.apache.turbine.services.Service |
getConfiguration, getName, getProperties, setName, setServiceBroker |
Methods inherited from interface org.apache.turbine.services.Initable |
getInit, init, init, setInitableBroker, shutdown |
Field Detail |
public static final java.lang.String SERVICE_NAME
public static final java.lang.String USER_CLASS_KEY
public static final java.lang.String USER_CLASS_DEFAULT
public static final java.lang.String USER_MANAGER_KEY
public static final java.lang.String USER_MANAGER_DEFAULT
public static final java.lang.String SECURE_PASSWORDS_KEY
public static final java.lang.String SECURE_PASSWORDS_DEFAULT
public static final java.lang.String SECURE_PASSWORDS_ALGORITHM_KEY
public static final java.lang.String SECURE_PASSWORDS_ALGORITHM_DEFAULT
Method Detail |
public java.lang.Class getUserClass() throws UnknownEntityException
UnknownEntityException
- if the system's implementation of User
interface could not be determined.public User getUserInstance() throws UnknownEntityException
UnknownEntityException
- if the object could not be instantiated.public boolean accountExists(java.lang.String username) throws DataBackendException
user
- The user to be checked.DataBackendException
- if there was an error accessing the data backend.public boolean accountExists(User user) throws DataBackendException
usename
- The name of the user to be checked.DataBackendException
- if there was an error accessing the data backend.public User getAuthenticatedUser(java.lang.String username, java.lang.String password) throws DataBackendException, UnknownEntityException, PasswordMismatchException
username
- The user name.password
- The user password.DataBackendException
- if there was an error accessing the data backend.UnknownEntityException
- if user account is not present.PasswordMismatchException
- if the supplied password was incorrect.public User getUser(java.lang.String username) throws DataBackendException, UnknownEntityException
username
- The user name.DataBackendException
- if there was an error accessing the data backend.UnknownEntityException
- if user account is not present.public User[] getUsers(Criteria criteria) throws DataBackendException
User
interface, plus the names
of the custom attributes you added to your user representation
in the data storage. Use verbatim names of the attributes -
without table name prefix in case of DB implementation.criteria
- The criteria of selection.DataBackendException
- if there is a problem accessing the
storage.public User getAnonymousUser() throws UnknownEntityException
UnknownEntityException
- if the anonymous User object couldn't be
constructed.public void saveUser(User user) throws UnknownEntityException, DataBackendException
UnknownEntityException
- if the user's account does not
exist in the database.DataBackendException
- if there is a problem accessing the
storage.public void addUser(User user, java.lang.String password) throws DataBackendException, EntityExistsException
user
- the object describing account to be created.DataBackendException
- if there was an error accessing the data backend.EntityExistsException
- if the user account already exists.public void removeUser(User user) throws DataBackendException, UnknownEntityException
user
- the object describing the account to be removed.DataBackendException
- if there was an error accessing the data backend.UnknownEntityException
- if the user account is not present.public java.lang.String encryptPassword(java.lang.String password)
password
- the password to processpublic void changePassword(User user, java.lang.String oldPassword, java.lang.String newPassword) throws PasswordMismatchException, UnknownEntityException, DataBackendException
user
- an User to change password for.oldPassword
- the current password supplied by the user.newPassword
- the current password requested by the user.PasswordMismatchException
- if the supplied password was
incorrect.UnknownEntityException
- if the user's record does not
exist in the database.DataBackendException
- if there is a problem accessing the
storage.public void forcePassword(User user, java.lang.String password) throws UnknownEntityException, DataBackendException
user
- an User to change password for.password
- the new password.UnknownEntityException
- if the user's record does not
exist in the database.DataBackendException
- if there is a problem accessing the
storage.public AccessControlList getACL(User user) throws DataBackendException, UnknownEntityException
user
- the user for whom the AccessControlList are to be retrievedDataBackendException
- if there was an error accessing the data backend.UnknownEntityException
- if user account is not present.public PermissionSet getPermissions(Role role) throws DataBackendException, UnknownEntityException
role
- the role name, for which the permissions are to be retrieved.DataBackendException
- if there was an error accessing the data backend.UnknownEntityException
- if the role is not present.public void grant(User user, Group group, Role role) throws DataBackendException, UnknownEntityException
User
- the user.Group
- the group.Role
- the role.DataBackendException
- if there was an error accessing the data backend.UnknownEntityException
- if user account, group or role is not present.public void revoke(User user, Group group, Role role) throws DataBackendException, UnknownEntityException
User
- the user.Group
- the group.Role
- the role.DataBackendException
- if there was an error accessing the data backend.UnknownEntityException
- if user account, group or role is not present.public void revokeAll(User user) throws DataBackendException, UnknownEntityException
user
- the User.DataBackendException
- if there was an error accessing the data backend.UnknownEntityException
- if the account is not present.public void grant(Role role, Permission permission) throws DataBackendException, UnknownEntityException
role
- the Role.permission
- the Permission.DataBackendException
- if there was an error accessing the data backend.UnknownEntityException
- if role or permission is not present.public void revoke(Role role, Permission permission) throws DataBackendException, UnknownEntityException
role
- the Role.permission
- the Permission.DataBackendException
- if there was an error accessing the data backend.UnknownEntityException
- if role or permission is not present.public void revokeAll(Role role) throws DataBackendException, UnknownEntityException
role
- the RoleDataBackendException
- if there was an error accessing the data backend.UnknownEntityException
- if the Role is not present.public Group getGlobalGroup()
public Group getNewGroup(java.lang.String groupName)
groupName
- The name of the Group to be retrieved.public Role getNewRole(java.lang.String roleName)
roleName
- The name of the Role to be retrieved.public Permission getNewPermission(java.lang.String permissionName)
permissionName
- The name of the Permission to be retrieved.public Group getGroup(java.lang.String name) throws DataBackendException, UnknownEntityException
name
- the name of the Group.public Role getRole(java.lang.String name) throws DataBackendException, UnknownEntityException
name
- the name of the Role.public Permission getPermission(java.lang.String name) throws DataBackendException, UnknownEntityException
name
- the name of the Permission.public GroupSet getGroups(Criteria criteria) throws DataBackendException
a
- Criteria of Group selection.public RoleSet getRoles(Criteria criteria) throws DataBackendException
a
- Criteria of Roles selection.public PermissionSet getPermissions(Criteria criteria) throws DataBackendException
a
- Criteria of Permissions selection.public GroupSet getAllGroups() throws DataBackendException
DataBackendException
- if there was an error accessing the data backend.public RoleSet getAllRoles() throws DataBackendException
DataBackendException
- if there was an error accessing the data backend.public PermissionSet getAllPermissions() throws DataBackendException
DataBackendException
- if there was an error accessing the data backend.public void saveGroup(Group group) throws DataBackendException, UnknownEntityException
group
- The Group to be stored.DataBackendException
- if there was an error accessing the data backend.UnknownEntityException
- if the group does not exist.public void saveRole(Role role) throws DataBackendException, UnknownEntityException
role
- The Role to be stored.DataBackendException
- if there was an error accessing the data backend.UnknownEntityException
- if the role does not exist.public void savePermission(Permission permission) throws DataBackendException, UnknownEntityException
permission
- The Permission to be stored.DataBackendException
- if there was an error accessing the data backend.UnknownEntityException
- if the permission does not exist.public Group addGroup(Group group) throws DataBackendException, EntityExistsException
group
- the object describing the group to be created.DataBackendException
- if there was an error accessing the data backend.EntityExistsException
- if the group already exists.public Role addRole(Role role) throws DataBackendException, EntityExistsException
group
- the objects describing the group to be created.DataBackendException
- if there was an error accessing the data backend.EntityExistsException
- if the role already exists.public Permission addPermission(Permission permission) throws DataBackendException, EntityExistsException
group
- the objects describing the group to be created.DataBackendException
- if there was an error accessing the data backend.EntityExistsException
- if the permission already exists.public void removeGroup(Group group) throws DataBackendException, UnknownEntityException
the
- object describing group to be removed.DataBackendException
- if there was an error accessing the data backend.UnknownEntityException
- if the group does not exist.public void removeRole(Role role) throws DataBackendException, UnknownEntityException
the
- object describing role to be removed.DataBackendException
- if there was an error accessing the data backend.UnknownEntityException
- if the role does not exist.public void removePermission(Permission permission) throws DataBackendException, UnknownEntityException
the
- object describing permission to be removed.DataBackendException
- if there was an error accessing the data backend.UnknownEntityException
- if the permission does not exist.public void renameGroup(Group group, java.lang.String name) throws DataBackendException, UnknownEntityException
the
- object describing the group to be renamed.name
- the new name for the group.DataBackendException
- if there was an error accessing the data backend.UnknownEntityException
- if the group does not exist.public void renameRole(Role role, java.lang.String name) throws DataBackendException, UnknownEntityException
the
- object describing the role to be renamed.name
- the new name for the role.DataBackendException
- if there was an error accessing the data backend.UnknownEntityException
- if the role does not exist.public void renamePermission(Permission permission, java.lang.String name) throws DataBackendException, UnknownEntityException
the
- object describing the permission to be renamed.name
- the new name for the permission.DataBackendException
- if there was an error accessing the data backend.UnknownEntityException
- if the permission does not exist.
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |