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();
|
return CurCall.get();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static boolean isInRpcCallContext() {
|
||||||
|
return CurCall.get() != null;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the user credentials associated with the current RPC request or
|
* Returns the user credentials associated with the current RPC request or
|
||||||
* <code>null</code> if no credentials were provided.
|
* <code>null</code> if no credentials were provided.
|
||||||
|
|
|
@ -2042,6 +2042,8 @@ public class AccessController extends BaseMasterAndRegionObserver
|
||||||
* the checks performed in preScannerOpen()
|
* the checks performed in preScannerOpen()
|
||||||
*/
|
*/
|
||||||
private void requireScannerOwner(InternalScanner s) throws AccessDeniedException {
|
private void requireScannerOwner(InternalScanner s) throws AccessDeniedException {
|
||||||
|
if (!RpcServer.isInRpcCallContext())
|
||||||
|
return;
|
||||||
String requestUserName = RpcServer.getRequestUserName();
|
String requestUserName = RpcServer.getRequestUserName();
|
||||||
String owner = scannerOwners.get(s);
|
String owner = scannerOwners.get(s);
|
||||||
if (authorizationEnabled && owner != null && !owner.equals(requestUserName)) {
|
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()
|
* access control is correctly enforced based on the checks performed in preScannerOpen()
|
||||||
*/
|
*/
|
||||||
private void requireScannerOwner(InternalScanner s) throws AccessDeniedException {
|
private void requireScannerOwner(InternalScanner s) throws AccessDeniedException {
|
||||||
// This is duplicated code!
|
if (!RpcServer.isInRpcCallContext())
|
||||||
|
return;
|
||||||
String requestUName = RpcServer.getRequestUserName();
|
String requestUName = RpcServer.getRequestUserName();
|
||||||
String owner = scannerOwners.get(s);
|
String owner = scannerOwners.get(s);
|
||||||
if (authorizationEnabled && owner != null && !owner.equals(requestUName)) {
|
if (authorizationEnabled && owner != null && !owner.equals(requestUName)) {
|
||||||
|
|
Loading…
Reference in New Issue