org.camunda.bpm.engine.authorization
Interface Permission

All Known Implementing Classes:
Permissions

public interface Permission

A permission represents an authorization to interact with a given resource in a specific way. See Permissions for a set of built-in permissions and Authorization for general overview on authorizations.

In camunda BPM, multiple permissions are grouped into an Authorization. For efficient storage and checking of authorizations, the permissons that make up an autorization are coded into a single integer. The implication of this design is that a permission must have a unique integer value and it must be a power of two, ie 2^0, 2^1, 2^2, 2^3, 2^4 ... The permission can then be added to an authorization using bitwise OR:

        Auth: 0000001001001
 Perm to add: 0000000010000 
 bit OR (|) : 0000001011001 
 
and removed using bitwise AND of the inverted value:
        Auth: 0000001001001
 Perm to rem: 0000000001000 
 invert (~) : 1111111110111
 bit AND (&): 0000001000001    
 

Defining a custom Permission

The Permissions class contains the values of the built-in permissions. In order to define a custom permission, you must provide an implementation of this interface such that the getValue() method returns an integer which is a power of two and not yet used by the built-in Permissions and not reserved (values <=2^14 are reserved). Valid example: 2^15=32768.

Since:
7.0
Author:
Daniel Meyer

Method Summary
 String getName()
          returns the name of the perwission, ie.
 int getValue()
          returns the unique numeric value of the permission.
 

Method Detail

getName

String getName()
returns the name of the perwission, ie. 'WRITE'


getValue

int getValue()
returns the unique numeric value of the permission. Must be a power of 2. ie 2^0, 2^1, 2^2, 2^3, 2^4 ...



Copyright © 2017 camunda services GmbH. All rights reserved.