Class UserAdminPermission
- All Implemented Interfaces:
Serializable,Guard
Role objects managed by a User
Admin service.
This class represents access to the Role objects managed by a User
Admin service and their properties and credentials (in the case of
User objects).
The permission name is the name (or name prefix) of a property or credential. The naming convention follows the hierarchical property naming convention. Also, an asterisk may appear at the end of the name, following a ".", or by itself, to signify a wildcard match. For example: "org.osgi.security.protocol.*" or "*" is valid, but "*protocol" or "a*b" are not valid.
The UserAdminPermission with the reserved name "admin"
represents the permission required for creating and removing Role
objects in the User Admin service, as well as adding and removing members in
a Group object. This UserAdminPermission does not have any
actions associated with it.
The actions to be granted are passed to the constructor in a string
containing a list of one or more comma-separated keywords. The possible
keywords are: changeProperty,changeCredential, and
getCredential. Their meaning is defined as follows:
action
changeProperty Permission to change (i.e., add and remove)
Role object properties whose names start with
the name argument specified in the constructor.
changeCredential Permission to change (i.e., add and remove)
User object credentials whose names start
with the name argument specified in the constructor.
getCredential Permission to retrieve and check for the
existence of User object credentials whose names
start with the name argument specified in the
constructor.
The action string is converted to lowercase before processing.
Following is a PermissionInfo style policy entry which grants a user
administration bundle a number of UserAdminPermission object:
(org.osgi.service.useradmin.UserAdminPermission "admin")
(org.osgi.service.useradmin.UserAdminPermission "com.foo.*"
"changeProperty,getCredential,changeCredential")
(org.osgi.service.useradmin.UserAdminPermission "user.*"
"changeProperty,changeCredential")
The first permission statement grants the bundle the permission to perform
any User Admin service operations of type "admin", that is, create and remove
roles and configure Group objects.
The second permission statement grants the bundle the permission to change
any properties as well as get and change any credentials whose names start
with com.foo..
The third permission statement grants the bundle the permission to change any
properties and credentials whose names start with user.. This means
that the bundle is allowed to change, but not retrieve any credentials with
the given prefix.
The following policy entry empowers the Http Service bundle to perform user authentication:
grant codeBase "${jars}http.jar" {
permission org.osgi.service.useradmin.UserAdminPermission
"user.password", "getCredential";
};
The permission statement grants the Http Service bundle the permission to validate any password credentials (for authentication purposes), but the bundle is not allowed to change any properties or credentials.
- See Also:
- "ThreadSafe"
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionUserAdminPermission(String name, String actions) Creates a newUserAdminPermissionwith the specified name and actions. -
Method Summary
Modifier and TypeMethodDescriptionbooleanChecks twoUserAdminPermissionobjects for equality.Returns the canonical string representation of the actions, separated by comma.inthashCode()Returns the hash code value for this object.booleanChecks if thisUserAdminPermissionobject "implies" the specified permission.Returns a newPermissionCollectionobject for storingUserAdminPermissionobjects.toString()Returns a string describing thisUserAdminPermissionobject.Methods inherited from class java.security.Permission
checkGuard, getName
-
Field Details
-
ADMIN
The permission name "admin".- See Also:
-
CHANGE_PROPERTY
The action string "changeProperty".- See Also:
-
CHANGE_CREDENTIAL
The action string "changeCredential".- See Also:
-
GET_CREDENTIAL
The action string "getCredential".- See Also:
-
-
Constructor Details
-
UserAdminPermission
Creates a newUserAdminPermissionwith the specified name and actions.nameis either the reserved string "admin" or the name of a credential or property, andactionscontains a comma-separated list of the actions granted on the specified name. Valid actions arechangeProperty,changeCredential, and getCredential.- Parameters:
name- the name of thisUserAdminPermissionactions- the action string.- Throws:
IllegalArgumentException- Ifnameequals "admin" andactionsare specified.
-
-
Method Details
-
implies
Checks if thisUserAdminPermissionobject "implies" the specified permission.More specifically, this method returns
trueif:- p is an instanceof
UserAdminPermission, - p's actions are a proper subset of this object's actions, and
- p's name is implied by this object's name. For example, "java.*" implies "java.home".
- Overrides:
impliesin classBasicPermission- Parameters:
p- the permission to check against.- Returns:
trueif the specified permission is implied by this object;falseotherwise.
- p is an instanceof
-
getActions
Returns the canonical string representation of the actions, separated by comma.- Overrides:
getActionsin classBasicPermission- Returns:
- the canonical string representation of the actions.
-
newPermissionCollection
Returns a newPermissionCollectionobject for storingUserAdminPermissionobjects.- Overrides:
newPermissionCollectionin classBasicPermission- Returns:
- a new
PermissionCollectionobject suitable for storingUserAdminPermissionobjects.
-
equals
Checks twoUserAdminPermissionobjects for equality. Checks thatobjis aUserAdminPermission, and has the same name and actions as this object.- Overrides:
equalsin classBasicPermission- Parameters:
obj- the object to be compared for equality with this object.- Returns:
trueifobjis aUserAdminPermissionobject, and has the same name and actions as thisUserAdminPermissionobject.
-
hashCode
public int hashCode()Returns the hash code value for this object.- Overrides:
hashCodein classBasicPermission- Returns:
- A hash code value for this object.
-
toString
Returns a string describing thisUserAdminPermissionobject. This string must be inPermissionInfoencoded format.- Overrides:
toStringin classPermission- Returns:
- The
PermissionInfoencoded string for thisUserAdminPermissionobject. - See Also:
-
- "org.osgi.service.permissionadmin.PermissionInfo.getEncoded()"
-