HBASE-13482. Phoenix is failing to scan tables on secure environments. (Alicia Shu)
This commit is contained in:
parent
10254b74ae
commit
4001492e7f
|
@ -2388,6 +2388,10 @@ public class RpcServer implements RpcServerInterface {
|
|||
return CurCall.get();
|
||||
}
|
||||
|
||||
public static boolean isInRpcCallContext() {
|
||||
return CurCall.get() != null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the user credentials associated with the current RPC request or
|
||||
* <code>null</code> if no credentials were provided.
|
||||
|
|
|
@ -2042,6 +2042,8 @@ public class AccessController extends BaseMasterAndRegionObserver
|
|||
* the checks performed in preScannerOpen()
|
||||
*/
|
||||
private void requireScannerOwner(InternalScanner s) throws AccessDeniedException {
|
||||
if (!RpcServer.isInRpcCallContext())
|
||||
return;
|
||||
String requestUserName = RpcServer.getRequestUserName();
|
||||
String owner = scannerOwners.get(s);
|
||||
if (authorizationEnabled && owner != null && !owner.equals(requestUserName)) {
|
||||
|
|
|
@ -639,7 +639,8 @@ public class VisibilityController extends BaseMasterAndRegionObserver implements
|
|||
* access control is correctly enforced based on the checks performed in preScannerOpen()
|
||||
*/
|
||||
private void requireScannerOwner(InternalScanner s) throws AccessDeniedException {
|
||||
// This is duplicated code!
|
||||
if (!RpcServer.isInRpcCallContext())
|
||||
return;
|
||||
String requestUName = RpcServer.getRequestUserName();
|
||||
String owner = scannerOwners.get(s);
|
||||
if (authorizationEnabled && owner != null && !owner.equals(requestUName)) {
|
||||
|
|
Loading…
Reference in New Issue