Input: receiving Req = R (Subj, Obj, Action, Cntxt-info) |
Output: |
(1) | Authorization_status {Yes, No} |
(2) | Request _decision = {Accept, Reject} |
(3) | Procedure: |
(4) | Preexecution Algorithm: |
(5) | Access Policy Repository |
(6) | Set_Policy = Get_object_policy_info (Obj) |
(7) | If (Policy = = NULL) |
(8) | Set_authorization_status = (NO) |
(9) | Request_decision = “Reject” |
(10) | Else |
(11) | Loop through Pre_Con_L items |
(12) | Set Pre_conditions = Get_preconditions (Pre_Con_L) |
(13) | Set Post_conditions = Get_postconditions (Post_Con_L) |
(14) | If (Pre_conditions = = NULL) |
(15) | Set Pre_authorization_status (“Yes”) |
(16) | Else |
(17) | Pre-authorization_status = Check_authorization (Pre_conditions) |
(18) | Post_result = Check_authorization (Post_conditions) |
(19) | End |
(20) | End |
(21) | If (Pre_authorization_status = (“Yes”) |
(22) | Set authorization_status_L = (Post_result, Pre_authorization_status) |
(23) | Else |
(24) | Request_decision = “Reject” |
(25) | Invoke Privacy_policy (Req, authorization_status_L) |
(26) | Invoke Response _Policy (Req, authorization_status_L) |
(27) | End |
(28) | End |
(29) | If (authorization_status_L = (“Yes, Yes”) |
(30) | Call During execution Algorithm |
(31) | Else |
(32) | Invoke Privacy_policy (Req, authorization_status_L) |
(33) | Invoke Response _Policy (Req, authorization_status_L) |
(34) | End |