blob: 2bb900d6b02172c806416a393fd24af2e900e2cc [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>VisibilityLabelService (Apache HBase 3.0.0-alpha-2-SNAPSHOT API)</title>
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="VisibilityLabelService (Apache HBase 3.0.0-alpha-2-SNAPSHOT API)";
}
}
catch(err) {
}
//-->
var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/VisibilityLabelService.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../../org/apache/hadoop/hbase/security/visibility/VisibilityLabelsCache.html" title="class in org.apache.hadoop.hbase.security.visibility"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../../org/apache/hadoop/hbase/security/visibility/VisibilityLabelServiceManager.html" title="class in org.apache.hadoop.hbase.security.visibility"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/security/visibility/VisibilityLabelService.html" target="_top">Frames</a></li>
<li><a href="VisibilityLabelService.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.hadoop.hbase.security.visibility</div>
<h2 title="Interface VisibilityLabelService" class="title">Interface VisibilityLabelService</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Superinterfaces:</dt>
<dd>org.apache.hadoop.conf.Configurable</dd>
</dl>
<dl>
<dt>All Known Implementing Classes:</dt>
<dd><a href="../../../../../../org/apache/hadoop/hbase/security/visibility/DefaultVisibilityLabelServiceImpl.html" title="class in org.apache.hadoop.hbase.security.visibility">DefaultVisibilityLabelServiceImpl</a></dd>
</dl>
<hr>
<br>
<pre>@InterfaceAudience.Public
public interface <a href="../../../../../../src-html/org/apache/hadoop/hbase/security/visibility/VisibilityLabelService.html#line.36">VisibilityLabelService</a>
extends org.apache.hadoop.conf.Configurable</pre>
<div class="block">The interface which deals with visibility labels and user auths admin service as well as the cell
visibility expression storage part and read time evaluation.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/regionserver/OperationStatus.html" title="class in org.apache.hadoop.hbase.regionserver">OperationStatus</a>[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/visibility/VisibilityLabelService.html#addLabels-java.util.List-">addLabels</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;byte[]&gt;&nbsp;labels)</code>
<div class="block">Adds the set of labels into the system.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/regionserver/OperationStatus.html" title="class in org.apache.hadoop.hbase.regionserver">OperationStatus</a>[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/visibility/VisibilityLabelService.html#clearAuths-byte:A-java.util.List-">clearAuths</a></span>(byte[]&nbsp;user,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;byte[]&gt;&nbsp;authLabels)</code>
<div class="block">Removes given labels from user's globally authorized list of labels.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/Tag.html" title="interface in org.apache.hadoop.hbase">Tag</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/visibility/VisibilityLabelService.html#createVisibilityExpTags-java.lang.String-boolean-boolean-">createVisibilityExpTags</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;visExpression,
boolean&nbsp;withSerializationFormat,
boolean&nbsp;checkAuths)</code>
<div class="block">Creates tags corresponding to given visibility expression.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>byte[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/visibility/VisibilityLabelService.html#encodeVisibilityForReplication-java.util.List-java.lang.Byte-">encodeVisibilityForReplication</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/Tag.html" title="interface in org.apache.hadoop.hbase">Tag</a>&gt;&nbsp;visTags,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Byte.html?is-external=true" title="class or interface in java.lang">Byte</a>&nbsp;serializationFormat)</code>
<div class="block">Provides a way to modify the visibility tags of type <a href="../../../../../../org/apache/hadoop/hbase/TagType.html" title="class in org.apache.hadoop.hbase"><code>TagType</code></a>
.VISIBILITY_TAG_TYPE, that are part of the cell created from the WALEdits
that are prepared for replication while calling
<a href="../../../../../../org/apache/hadoop/hbase/replication/ReplicationEndpoint.html" title="interface in org.apache.hadoop.hbase.replication"><code>ReplicationEndpoint</code></a>
.replicate().</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/visibility/VisibilityLabelService.html#getGroupAuths-java.lang.String:A-boolean-">getGroupAuths</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;groups,
boolean&nbsp;systemCall)</code>
<div class="block">Retrieve the visibility labels for the groups.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/visibility/VisibilityLabelService.html#getUserAuths-byte:A-boolean-">getUserAuths</a></span>(byte[]&nbsp;user,
boolean&nbsp;systemCall)</code>
<div class="block">Retrieve the visibility labels for the user.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/security/visibility/VisibilityExpEvaluator.html" title="interface in org.apache.hadoop.hbase.security.visibility">VisibilityExpEvaluator</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/visibility/VisibilityLabelService.html#getVisibilityExpEvaluator-org.apache.hadoop.hbase.security.visibility.Authorizations-">getVisibilityExpEvaluator</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/security/visibility/Authorizations.html" title="class in org.apache.hadoop.hbase.security.visibility">Authorizations</a>&nbsp;authorizations)</code>
<div class="block">Creates VisibilityExpEvaluator corresponding to given Authorizations.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/visibility/VisibilityLabelService.html#havingSystemAuth-org.apache.hadoop.hbase.security.User-">havingSystemAuth</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/security/User.html" title="class in org.apache.hadoop.hbase.security">User</a>&nbsp;user)</code>
<div class="block">System checks for user auth during admin operations.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/visibility/VisibilityLabelService.html#init-org.apache.hadoop.hbase.coprocessor.RegionCoprocessorEnvironment-">init</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&nbsp;e)</code>
<div class="block">System calls this after opening of regions.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/visibility/VisibilityLabelService.html#listLabels-java.lang.String-">listLabels</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;regex)</code>
<div class="block">Retrieve the list of visibility labels defined in the system.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/visibility/VisibilityLabelService.html#matchVisibility-java.util.List-java.lang.Byte-java.util.List-java.lang.Byte-">matchVisibility</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/Tag.html" title="interface in org.apache.hadoop.hbase">Tag</a>&gt;&nbsp;putVisTags,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Byte.html?is-external=true" title="class or interface in java.lang">Byte</a>&nbsp;putVisTagFormat,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/Tag.html" title="interface in org.apache.hadoop.hbase">Tag</a>&gt;&nbsp;deleteVisTags,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Byte.html?is-external=true" title="class or interface in java.lang">Byte</a>&nbsp;deleteVisTagFormat)</code>
<div class="block">System uses this for deciding whether a Cell can be deleted by matching visibility expression
in Delete mutation and the cell in consideration.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/regionserver/OperationStatus.html" title="class in org.apache.hadoop.hbase.regionserver">OperationStatus</a>[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/visibility/VisibilityLabelService.html#setAuths-byte:A-java.util.List-">setAuths</a></span>(byte[]&nbsp;user,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;byte[]&gt;&nbsp;authLabels)</code>
<div class="block">Sets given labels globally authorized for the user.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.conf.Configurable">
<!-- -->
</a>
<h3>Methods inherited from interface&nbsp;org.apache.hadoop.conf.Configurable</h3>
<code>getConf, setConf</code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="init-org.apache.hadoop.hbase.coprocessor.RegionCoprocessorEnvironment-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>init</h4>
<pre>void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/security/visibility/VisibilityLabelService.html#line.44">init</a>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&nbsp;e)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">System calls this after opening of regions. Gives a chance for the VisibilityLabelService to so
any initialization logic.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>e</code> - the region coprocessor env</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
</dl>
</li>
</ul>
<a name="addLabels-java.util.List-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addLabels</h4>
<pre><a href="../../../../../../org/apache/hadoop/hbase/regionserver/OperationStatus.html" title="class in org.apache.hadoop.hbase.regionserver">OperationStatus</a>[]&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/security/visibility/VisibilityLabelService.html#line.52">addLabels</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;byte[]&gt;&nbsp;labels)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Adds the set of labels into the system.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>labels</code> - Labels to add to the system.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>OperationStatus for each of the label addition</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
</dl>
</li>
</ul>
<a name="setAuths-byte:A-java.util.List-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setAuths</h4>
<pre><a href="../../../../../../org/apache/hadoop/hbase/regionserver/OperationStatus.html" title="class in org.apache.hadoop.hbase.regionserver">OperationStatus</a>[]&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/security/visibility/VisibilityLabelService.html#line.62">setAuths</a>(byte[]&nbsp;user,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;byte[]&gt;&nbsp;authLabels)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Sets given labels globally authorized for the user.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>user</code> - The authorizing user</dd>
<dd><code>authLabels</code> - Labels which are getting authorized for the user</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>OperationStatus for each of the label auth addition</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
</dl>
</li>
</ul>
<a name="clearAuths-byte:A-java.util.List-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>clearAuths</h4>
<pre><a href="../../../../../../org/apache/hadoop/hbase/regionserver/OperationStatus.html" title="class in org.apache.hadoop.hbase.regionserver">OperationStatus</a>[]&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/security/visibility/VisibilityLabelService.html#line.72">clearAuths</a>(byte[]&nbsp;user,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;byte[]&gt;&nbsp;authLabels)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Removes given labels from user's globally authorized list of labels.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>user</code> - The user whose authorization to be removed</dd>
<dd><code>authLabels</code> - Labels which are getting removed from authorization set</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>OperationStatus for each of the label auth removal</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
</dl>
</li>
</ul>
<a name="getUserAuths-byte:A-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getUserAuths</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/security/visibility/VisibilityLabelService.html#line.82">getUserAuths</a>(byte[]&nbsp;user,
boolean&nbsp;systemCall)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Retrieve the visibility labels for the user.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>user</code> - Name of the user whose authorization to be retrieved</dd>
<dd><code>systemCall</code> - Whether a system or user originated call.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Visibility labels authorized for the given user.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
</dl>
</li>
</ul>
<a name="getGroupAuths-java.lang.String:A-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getGroupAuths</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/security/visibility/VisibilityLabelService.html#line.92">getGroupAuths</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;groups,
boolean&nbsp;systemCall)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Retrieve the visibility labels for the groups.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>groups</code> - Name of the groups whose authorization to be retrieved</dd>
<dd><code>systemCall</code> - Whether a system or user originated call.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Visibility labels authorized for the given group.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
</dl>
</li>
</ul>
<a name="listLabels-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>listLabels</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/security/visibility/VisibilityLabelService.html#line.99">listLabels</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;regex)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Retrieve the list of visibility labels defined in the system.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>regex</code> - The regular expression to filter which labels are returned.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>List of visibility labels</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
</dl>
</li>
</ul>
<a name="createVisibilityExpTags-java.lang.String-boolean-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createVisibilityExpTags</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/Tag.html" title="interface in org.apache.hadoop.hbase">Tag</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/security/visibility/VisibilityLabelService.html#line.115">createVisibilityExpTags</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;visExpression,
boolean&nbsp;withSerializationFormat,
boolean&nbsp;checkAuths)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Creates tags corresponding to given visibility expression.
<br>
Note: This will be concurrently called from multiple threads and implementation should
take care of thread safety.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>visExpression</code> - The Expression for which corresponding Tags to be created.</dd>
<dd><code>withSerializationFormat</code> - specifies whether a tag, denoting the serialization version
of the tags, to be added in the list. When this is true make sure to add the
serialization format Tag also. The format tag value should be byte type.</dd>
<dd><code>checkAuths</code> - denotes whether to check individual labels in visExpression against user's
global auth label.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The list of tags corresponds to the visibility expression. These tags will be stored
along with the Cells.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
</dl>
</li>
</ul>
<a name="getVisibilityExpEvaluator-org.apache.hadoop.hbase.security.visibility.Authorizations-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getVisibilityExpEvaluator</h4>
<pre><a href="../../../../../../org/apache/hadoop/hbase/security/visibility/VisibilityExpEvaluator.html" title="interface in org.apache.hadoop.hbase.security.visibility">VisibilityExpEvaluator</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/security/visibility/VisibilityLabelService.html#line.126">getVisibilityExpEvaluator</a>(<a href="../../../../../../org/apache/hadoop/hbase/security/visibility/Authorizations.html" title="class in org.apache.hadoop.hbase.security.visibility">Authorizations</a>&nbsp;authorizations)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Creates VisibilityExpEvaluator corresponding to given Authorizations. <br>
Note: This will be concurrently called from multiple threads and implementation should take
care of thread safety.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>authorizations</code> - Authorizations for the read request</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The VisibilityExpEvaluator corresponding to the given set of authorization labels.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
</dl>
</li>
</ul>
<a name="havingSystemAuth-org.apache.hadoop.hbase.security.User-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>havingSystemAuth</h4>
<pre>boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/security/visibility/VisibilityLabelService.html#line.137">havingSystemAuth</a>(<a href="../../../../../../org/apache/hadoop/hbase/security/User.html" title="class in org.apache.hadoop.hbase.security">User</a>&nbsp;user)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">System checks for user auth during admin operations. (ie. Label add, set/clear auth). The
operation is allowed only for users having system auth. Also during read, if the requesting
user has system auth, he can view all the data irrespective of its labels.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>user</code> - User for whom system auth check to be done.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if the given user is having system/super auth</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
</dl>
</li>
</ul>
<a name="matchVisibility-java.util.List-java.lang.Byte-java.util.List-java.lang.Byte-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>matchVisibility</h4>
<pre>boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/security/visibility/VisibilityLabelService.html#line.158">matchVisibility</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/Tag.html" title="interface in org.apache.hadoop.hbase">Tag</a>&gt;&nbsp;putVisTags,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Byte.html?is-external=true" title="class or interface in java.lang">Byte</a>&nbsp;putVisTagFormat,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/Tag.html" title="interface in org.apache.hadoop.hbase">Tag</a>&gt;&nbsp;deleteVisTags,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Byte.html?is-external=true" title="class or interface in java.lang">Byte</a>&nbsp;deleteVisTagFormat)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">System uses this for deciding whether a Cell can be deleted by matching visibility expression
in Delete mutation and the cell in consideration. Also system passes the serialization format
of visibility tags in Put and Delete.<br>
Note: This will be concurrently called from multiple threads and implementation should take
care of thread safety.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>putVisTags</code> - The visibility tags present in the Put mutation</dd>
<dd><code>putVisTagFormat</code> - The serialization format for the Put visibility tags. A <code>null</code> value for
this format means the tags are written with unsorted label ordinals</dd>
<dd><code>deleteVisTags</code> - - The visibility tags in the delete mutation (the specified Cell Visibility)</dd>
<dd><code>deleteVisTagFormat</code> - The serialization format for the Delete visibility tags. A <code>null</code> value for
this format means the tags are written with unsorted label ordinals</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if matching tags are found</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../org/apache/hadoop/hbase/security/visibility/VisibilityConstants.html#SORTED_ORDINAL_SERIALIZATION_FORMAT"><code>VisibilityConstants.SORTED_ORDINAL_SERIALIZATION_FORMAT</code></a></dd>
</dl>
</li>
</ul>
<a name="encodeVisibilityForReplication-java.util.List-java.lang.Byte-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>encodeVisibilityForReplication</h4>
<pre>byte[]&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/security/visibility/VisibilityLabelService.html#line.178">encodeVisibilityForReplication</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/Tag.html" title="interface in org.apache.hadoop.hbase">Tag</a>&gt;&nbsp;visTags,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Byte.html?is-external=true" title="class or interface in java.lang">Byte</a>&nbsp;serializationFormat)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Provides a way to modify the visibility tags of type <a href="../../../../../../org/apache/hadoop/hbase/TagType.html" title="class in org.apache.hadoop.hbase"><code>TagType</code></a>
.VISIBILITY_TAG_TYPE, that are part of the cell created from the WALEdits
that are prepared for replication while calling
<a href="../../../../../../org/apache/hadoop/hbase/replication/ReplicationEndpoint.html" title="interface in org.apache.hadoop.hbase.replication"><code>ReplicationEndpoint</code></a>
.replicate().
<a href="../../../../../../org/apache/hadoop/hbase/security/visibility/VisibilityReplicationEndpoint.html" title="class in org.apache.hadoop.hbase.security.visibility"><code>VisibilityReplicationEndpoint</code></a>
calls this API to provide an opportunity to modify the visibility tags
before replicating.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>visTags</code> - the visibility tags associated with the cell</dd>
<dd><code>serializationFormat</code> - the serialization format associated with the tag</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the modified visibility expression in the form of byte[]</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/VisibilityLabelService.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../../org/apache/hadoop/hbase/security/visibility/VisibilityLabelsCache.html" title="class in org.apache.hadoop.hbase.security.visibility"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../../org/apache/hadoop/hbase/security/visibility/VisibilityLabelServiceManager.html" title="class in org.apache.hadoop.hbase.security.visibility"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/security/visibility/VisibilityLabelService.html" target="_top">Frames</a></li>
<li><a href="VisibilityLabelService.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2021 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</body>
</html>