[ 
https://issues.apache.org/jira/browse/HBASE-11077?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andrew Purtell updated HBASE-11077:
-----------------------------------

    Release Note: 
Prior to 0.98.0 if a user was not granted access to a column family or partial 
access (qualifier grants), then the AccessController would immediately throw 
back an AccessDeniedException. This behavior was changed in 0.98.0 to allow 
cell level ACLs to grant exceptional access. The user will no longer see an 
exception; instead the scanner will return result sets only including cells 
which grant exceptional access. If no such cell level grants are made, then the 
scanner will return the empty result set. 

This change introduces a configuration setting which restores the pre-0.98.0 
behavior. It can be set in the site file for global effect, or per table using 
HTableDescriptor#setConfiguration. This setting is 
AccessControlConstants.CF_ATTRIBUTE_EARLY_OUT 
("hbase.security.access.early_out"), a boolean. Set to "true" for backwards 
compatible behavior. As a consequence if there are no grants at the CF level 
then an AccessDeniedException will be thrown immediately, and cell ACLs will be 
ignored, unless the cell-first ACL evaluation strategy is used (toggled via 
Query#setACLStrategy). 

This change also repairs a defect related to audit logging. In all cases, 
compatible behavior or not, indications of successful or failed access attempts 
will be logged.

  was:
Prior to 0.98.0 if a user was not granted access to a column family or partial 
access (qualifier grants), then the AccessController would immediately throw 
back an AccessDeniedException. This behavior was changed in 0.98.0 to allow 
cell level ACLs to grant exceptional access. The user will no longer see an 
exception; instead the scanner will return result sets only including cells 
which grant exceptional access. If no such cell level grants are made, then the 
scanner will return the empty result set. 

This change introduces a configuration setting which restores the pre-0.98.0 
behavior. It can be set in the site file for global effect, or per table using 
HTableDescriptor#setConfiguration. This setting is 
AccessControlConstants.CF_ATTRIBUTE_EARLY_OUT 
("hbase.security.access.early_out"), a boolean. Set to "true" for backwards 
compatible behavior. As a consequence if there are no grants at the CF level 
then cell ACLs will be ignored unless the cell-first ACL evaluation strategy is 
used (toggled via Query#setACLStrategy). 


> [AccessController] Restore compatible early-out access denial
> -------------------------------------------------------------
>
>                 Key: HBASE-11077
>                 URL: https://issues.apache.org/jira/browse/HBASE-11077
>             Project: HBase
>          Issue Type: Sub-task
>            Reporter: Andrew Purtell
>            Assignee: Andrew Purtell
>            Priority: Critical
>             Fix For: 0.99.0, 0.98.2
>
>         Attachments: HBASE-11077.patch, HBASE-11077.patch, HBASE-11077.patch, 
> HBASE-11077.patch
>
>
> See parent for the whole story.
> For 0.98, to start, just put back the early out that was removed in 0.98.0 
> and allow it to be overridden with a table attribute. 



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to