jet.server.api.custom.security.role
Interface RolePermissionProvider


public interface RolePermissionProvider

Within interfaces of JReport security API, RolePermissionProvider is used to provide customized permission setting of role. Except getting role permission setting from customer's external security system, this interface also provide ability to modify role permission setting in customer's external security system.

Since:
version 8

Method Summary
 java.util.Hashtable getRolePermissions(java.lang.String realmName, java.lang.String resourcePath, int versionNumber)
          Get all roles' permission setting attached to a specified resource or version node from customer's external secuirty system.
 boolean isEnableEdit()
          Indicates whether customer's external security system will be modified by invoking some methods in RolePermissionProvider.
In common cases, invokeing setRolePermissions() should take effect on customer's external security system, and cause modification of external security system, this method should return true in such case.
 void setRolePermissions(java.lang.String realmName, java.lang.String roleName, java.lang.String resourcePath, int versionNumber, java.lang.String permissionString)
          Set roles' permission setting for a specified resource or version node in customer's external secuirty system.
 

Method Detail

getRolePermissions

java.util.Hashtable getRolePermissions(java.lang.String realmName,
                                       java.lang.String resourcePath,
                                       int versionNumber)
                                       throws JRCustomerException
Get all roles' permission setting attached to a specified resource or version node from customer's external secuirty system.

Parameters:
realmName - the realm name
resourcePath - resource path to specify a resource
versionNumber - version number of the resource, a valid version number should be a positive integer, if versionNumber less than 1, it means want to get permission setting attached to the resouce which specified by resourcePath.
Returns:
the roles' permission setting for specified resource or version node. The permission setting is a Hashtable contains several role/permissions pair to represent permissions attached to specified resorce/version. In this Hashtable object, key is role name, value is a String object to represent permission setting for this group, this string's length is 7, every character represent status of a specified permission, available value is jet.cs.api.CSPermission.ALLOW and jet.cs.api.CSPermission.DENY The structure of Hashtable is: ::= NULL | {, }... ::= a string of role name ::= {}... ::= CSPermission.DENY | CSPermission.ALLOW ::= CSPermission.DENY | CSPermission.ALLOW ::= CSPermission.DENY | CSPermission.ALLOW ::= CSPermission.DENY | CSPermission.ALLOW ::= CSPermission.DENY | CSPermission.ALLOW ::= CSPermission.DENY | CSPermission.ALLOW ::= CSPermission.DENY | CSPermission.ALLOW In CSPermission, value of DENY is 0, value of ALLOW is 1, a permissionString has 7 chars and it could be like: 0110100
Throws:
JRCustomerException - If an error occurs during JReport server security system invoking this method, and the implementation think should throw this error to JReport server security system.

setRolePermissions

void setRolePermissions(java.lang.String realmName,
                        java.lang.String roleName,
                        java.lang.String resourcePath,
                        int versionNumber,
                        java.lang.String permissionString)
                        throws NoSuchRoleException,
                               JRCustomerException
Set roles' permission setting for a specified resource or version node in customer's external secuirty system.

Parameters:
realmName - the realm name
roleName - the role name to specify a role want to set permissions
resourcePath - resource path to specify a resource
versionNumber - version number of the resource, a valid version number should be a positive integer, if versionNumber less than 1, it means want to set role permission for the resouce which specified by resourcePath.
permissionString - permission string to represent permissions for this role, this string's length is 7, every character represent status of a specified permission, available value is jet.cs.api.CSPermission.ALLOW and jet.cs.api.CSPermission.DENY The structure of permissionString is: ::= {}... ::= CSPermission.DENY | CSPermission.ALLOW ::= CSPermission.DENY | CSPermission.ALLOW ::= CSPermission.DENY | CSPermission.ALLOW ::= CSPermission.DENY | CSPermission.ALLOW ::= CSPermission.DENY | CSPermission.ALLOW ::= CSPermission.DENY | CSPermission.ALLOW ::= CSPermission.DENY | CSPermission.ALLOW In CSPermission, value of DENY is 0, value of ALLOW is 1, a permissionString has 7 chars and it could be like: 0110100.
If the permissionString is null, means dont set specified role's permission for specified resource/version node.
If the permissionString's length is 0, means status of all permissions is CSPermission.DENY
Throws:
NoSuchRoleException - If there is no a role has specified name in customer's external security system.
JRCustomerException - If an error occurs during JReport server security system invoking this method, and the implementation think should throw this error to JReport server security system.

isEnableEdit

boolean isEnableEdit()
Indicates whether customer's external security system will be modified by invoking some methods in RolePermissionProvider.
In common cases, invokeing setRolePermissions() should take effect on customer's external security system, and cause modification of external security system, this method should return true in such case. If cusotmer's external security system will not be affected by invoking setRolePermissions(), this method should return false.
Return value of method isEditing() with paramter SecurityWebAdaptor.ACTION_EDIT_ROLE_PERMISSIONS in jet.server.api.SecurityWebAdaptor is same with this method's return value.

Returns:
true if external security system will be affected by invoking setRolePermissions(), otherwise return false.
See Also:
SecurityWebAdaptor