Summary

ABAC is a standard published by NIST (US National Institute od Standarts and Technology) in cooperation with industry and universities. ABAC grants access based on user attributes and policies.

Wikipedia: https://en.wikipedia.org/wiki/Attribute-Based_Access_Control NIST: http://csrc.nist.gov/projects/abac/

Actual Behavior

Actual we only have RBAC (Role based Access Control) and ACL (Access Controll List)

Expected Behavior

Implement a spring-abac module to support ABAC policies

Sample

[
  {
    "name": "Liquor shop for adults only",
    "type": "",
    "description": "grant access to liquor store if user is older than 21",
    "applicable": "resource.type=='LIQUOR_STORE'",
    "condition": "subject.principal.age>21"
  }
]
@RequestMapping(path = "shops")
    @PreAuthorize("hasRole('USER') and checkPolicy()")
    public List<Shop> listShops(){
        ....
    }