blob: 1d94f9b70f402351d0f18352cba06bdb1893f412 [file] [log] [blame]
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>ShiroExampleEvaluator (Apache Jena - Security Permissions 5.0.0)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="declaration: package: org.apache.jena.permissions.example, class: ShiroExampleEvaluator">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../script-dir/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jquery-3.6.1.min.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="class-declaration-page">
<script type="text/javascript">var evenRowColor = "even-row-color";
var oddRowColor = "odd-row-color";
var tableTab = "table-tab";
var activeTableTab = "active-table-tab";
var pathtoroot = "../../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top">
<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="nav-bar-cell1-rev">Class</li>
<li><a href="class-use/ShiroExampleEvaluator.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html#class">Help</a></li>
</ul>
</div>
<div class="sub-nav">
<div>
<ul class="sub-nav-list">
<li>Summary:&nbsp;</li>
<li><a href="#nested-class-summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field-summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor-summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method-summary">Method</a></li>
</ul>
<ul class="sub-nav-list">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor-detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method-detail">Method</a></li>
</ul>
</div>
<div class="nav-list-search"><label for="search-input">SEARCH:</label>
<input type="text" id="search-input" value="search" disabled="disabled">
<input type="reset" id="reset-button" value="reset" disabled="disabled">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">org.apache.jena.permissions.example</a></div>
<h1 title="Class ShiroExampleEvaluator" class="title">Class ShiroExampleEvaluator</h1>
</div>
<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a>
<div class="inheritance">org.apache.jena.permissions.example.ShiroExampleEvaluator</div>
</div>
<section class="class-description" id="class-description">
<dl class="notes">
<dt>All Implemented Interfaces:</dt>
<dd><code><a href="../SecurityEvaluator.html" title="interface in org.apache.jena.permissions">SecurityEvaluator</a></code></dd>
</dl>
<hr>
<div class="type-signature"><span class="modifiers">public class </span><span class="element-name type-name-label">ShiroExampleEvaluator</span>
<span class="extends-implements">extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a>
implements <a href="../SecurityEvaluator.html" title="interface in org.apache.jena.permissions">SecurityEvaluator</a></span></div>
<div class="block">Class to use Shiro to provide credentials.
An example evaluator that only provides access to messages in the graph that
are from or to the principal.</div>
</section>
<section class="summary">
<ul class="summary-list">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<li>
<section class="nested-class-summary" id="nested-class-summary">
<h2>Nested Class Summary</h2>
<div class="inherited-list">
<h2 id="nested-classes-inherited-from-class-org.apache.jena.permissions.SecurityEvaluator">Nested classes/interfaces inherited from interface&nbsp;org.apache.jena.permissions.<a href="../SecurityEvaluator.html" title="interface in org.apache.jena.permissions">SecurityEvaluator</a></h2>
<code><a href="../SecurityEvaluator.Action.html" title="enum in org.apache.jena.permissions">SecurityEvaluator.Action</a>, <a href="../SecurityEvaluator.Util.html" title="class in org.apache.jena.permissions">SecurityEvaluator.Util</a></code></div>
</section>
</li>
<!-- =========== FIELD SUMMARY =========== -->
<li>
<section class="field-summary" id="field-summary">
<h2>Field Summary</h2>
<div class="inherited-list">
<h3 id="fields-inherited-from-class-org.apache.jena.permissions.SecurityEvaluator">Fields inherited from interface&nbsp;org.apache.jena.permissions.<a href="../SecurityEvaluator.html" title="interface in org.apache.jena.permissions">SecurityEvaluator</a></h3>
<code><a href="../SecurityEvaluator.html#FUTURE">FUTURE</a>, <a href="../SecurityEvaluator.html#VARIABLE">VARIABLE</a></code></div>
</section>
</li>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<li>
<section class="constructor-summary" id="constructor-summary">
<h2>Constructor Summary</h2>
<div class="caption"><span>Constructors</span></div>
<div class="summary-table two-column-summary">
<div class="table-header col-first">Constructor</div>
<div class="table-header col-last">Description</div>
<div class="col-constructor-name even-row-color"><code><a href="#%3Cinit%3E(org.apache.jena.rdf.model.Model)" class="member-name-link">ShiroExampleEvaluator</a><wbr>(<a href="https://jena.apache.org/documentation/javadoc/jena/org.apache.jena.core/org/apache/jena/rdf/model/Model.html" title="class or interface in org.apache.jena.rdf.model" class="external-link">Model</a>&nbsp;model)</code></div>
<div class="col-last even-row-color">&nbsp;</div>
</div>
</section>
</li>
<!-- ========== METHOD SUMMARY =========== -->
<li>
<section class="method-summary" id="method-summary">
<h2>Method Summary</h2>
<div id="method-summary-table">
<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button></div>
<div id="method-summary-table.tabpanel" role="tabpanel">
<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Method</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#evaluate(java.lang.Object,java.util.Set,org.apache.jena.graph.Node)" class="member-name-link">evaluate</a><wbr>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a>&nbsp;principal,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html" title="class or interface in java.util" class="external-link">Set</a>&lt;<a href="../SecurityEvaluator.Action.html" title="enum in org.apache.jena.permissions">SecurityEvaluator.Action</a>&gt;&nbsp;actions,
<a href="https://jena.apache.org/documentation/javadoc/jena/org.apache.jena.core/org/apache/jena/graph/Node.html" title="class or interface in org.apache.jena.graph" class="external-link">Node</a>&nbsp;graphIRI)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">As per our design, users can access any graph.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#evaluate(java.lang.Object,java.util.Set,org.apache.jena.graph.Node,org.apache.jena.graph.Triple)" class="member-name-link">evaluate</a><wbr>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a>&nbsp;principal,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html" title="class or interface in java.util" class="external-link">Set</a>&lt;<a href="../SecurityEvaluator.Action.html" title="enum in org.apache.jena.permissions">SecurityEvaluator.Action</a>&gt;&nbsp;actions,
<a href="https://jena.apache.org/documentation/javadoc/jena/org.apache.jena.core/org/apache/jena/graph/Node.html" title="class or interface in org.apache.jena.graph" class="external-link">Node</a>&nbsp;graphIRI,
<a href="https://jena.apache.org/documentation/javadoc/jena/org.apache.jena.core/org/apache/jena/graph/Triple.html" title="class or interface in org.apache.jena.graph" class="external-link">Triple</a>&nbsp;triple)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">As per our design, users can access any triple from a message that is from or
to them.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#evaluate(java.lang.Object,org.apache.jena.permissions.SecurityEvaluator.Action,org.apache.jena.graph.Node)" class="member-name-link">evaluate</a><wbr>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a>&nbsp;principal,
<a href="../SecurityEvaluator.Action.html" title="enum in org.apache.jena.permissions">SecurityEvaluator.Action</a>&nbsp;action,
<a href="https://jena.apache.org/documentation/javadoc/jena/org.apache.jena.core/org/apache/jena/graph/Node.html" title="class or interface in org.apache.jena.graph" class="external-link">Node</a>&nbsp;graphIRI)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">We allow any action on the graph itself, so this is always true.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#evaluate(java.lang.Object,org.apache.jena.permissions.SecurityEvaluator.Action,org.apache.jena.graph.Node,org.apache.jena.graph.Triple)" class="member-name-link">evaluate</a><wbr>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a>&nbsp;principal,
<a href="../SecurityEvaluator.Action.html" title="enum in org.apache.jena.permissions">SecurityEvaluator.Action</a>&nbsp;action,
<a href="https://jena.apache.org/documentation/javadoc/jena/org.apache.jena.core/org/apache/jena/graph/Node.html" title="class or interface in org.apache.jena.graph" class="external-link">Node</a>&nbsp;graphIRI,
<a href="https://jena.apache.org/documentation/javadoc/jena/org.apache.jena.core/org/apache/jena/graph/Triple.html" title="class or interface in org.apache.jena.graph" class="external-link">Triple</a>&nbsp;triple)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">As per our design, users can do anything with triples they have access to, so
we just ignore the action parameter.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#evaluateAny(java.lang.Object,java.util.Set,org.apache.jena.graph.Node)" class="member-name-link">evaluateAny</a><wbr>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a>&nbsp;principal,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html" title="class or interface in java.util" class="external-link">Set</a>&lt;<a href="../SecurityEvaluator.Action.html" title="enum in org.apache.jena.permissions">SecurityEvaluator.Action</a>&gt;&nbsp;actions,
<a href="https://jena.apache.org/documentation/javadoc/jena/org.apache.jena.core/org/apache/jena/graph/Node.html" title="class or interface in org.apache.jena.graph" class="external-link">Node</a>&nbsp;graphIRI)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">As per our design, users can access any graph.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#evaluateAny(java.lang.Object,java.util.Set,org.apache.jena.graph.Node,org.apache.jena.graph.Triple)" class="member-name-link">evaluateAny</a><wbr>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a>&nbsp;principal,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html" title="class or interface in java.util" class="external-link">Set</a>&lt;<a href="../SecurityEvaluator.Action.html" title="enum in org.apache.jena.permissions">SecurityEvaluator.Action</a>&gt;&nbsp;actions,
<a href="https://jena.apache.org/documentation/javadoc/jena/org.apache.jena.core/org/apache/jena/graph/Node.html" title="class or interface in org.apache.jena.graph" class="external-link">Node</a>&nbsp;graphIRI,
<a href="https://jena.apache.org/documentation/javadoc/jena/org.apache.jena.core/org/apache/jena/graph/Triple.html" title="class or interface in org.apache.jena.graph" class="external-link">Triple</a>&nbsp;triple)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">As per our design, users can access any triple from a message that is from or
to them.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#evaluateUpdate(java.lang.Object,org.apache.jena.graph.Node,org.apache.jena.graph.Triple,org.apache.jena.graph.Triple)" class="member-name-link">evaluateUpdate</a><wbr>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a>&nbsp;principal,
<a href="https://jena.apache.org/documentation/javadoc/jena/org.apache.jena.core/org/apache/jena/graph/Node.html" title="class or interface in org.apache.jena.graph" class="external-link">Node</a>&nbsp;graphIRI,
<a href="https://jena.apache.org/documentation/javadoc/jena/org.apache.jena.core/org/apache/jena/graph/Triple.html" title="class or interface in org.apache.jena.graph" class="external-link">Triple</a>&nbsp;from,
<a href="https://jena.apache.org/documentation/javadoc/jena/org.apache.jena.core/org/apache/jena/graph/Triple.html" title="class or interface in org.apache.jena.graph" class="external-link">Triple</a>&nbsp;to)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">As per our design, users can access any triple from a message that is from or
to them.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getPrincipal()" class="member-name-link">getPrincipal</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Return the Shiro subject.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#isPrincipalAuthenticated(java.lang.Object)" class="member-name-link">isPrincipalAuthenticated</a><wbr>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a>&nbsp;principal)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Verify the Shiro subject is authenticated.</div>
</div>
</div>
</div>
</div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-java.lang.Object">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#equals-java.lang.Object-" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#getClass--" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#hashCode--" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#notify--" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#notifyAll--" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#toString--" title="class or interface in java.lang" class="external-link">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#wait--" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#wait-long-" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#wait-long-int-" title="class or interface in java.lang" class="external-link">wait</a></code></div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-org.apache.jena.permissions.SecurityEvaluator">Methods inherited from interface&nbsp;org.apache.jena.permissions.<a href="../SecurityEvaluator.html" title="interface in org.apache.jena.permissions">SecurityEvaluator</a></h3>
<code><a href="../SecurityEvaluator.html#isHardReadError()">isHardReadError</a></code></div>
</section>
</li>
</ul>
</section>
<section class="details">
<ul class="details-list">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<li>
<section class="constructor-details" id="constructor-detail">
<h2>Constructor Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="&lt;init&gt;(org.apache.jena.rdf.model.Model)">
<h3>ShiroExampleEvaluator</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">ShiroExampleEvaluator</span><wbr><span class="parameters">(<a href="https://jena.apache.org/documentation/javadoc/jena/org.apache.jena.core/org/apache/jena/rdf/model/Model.html" title="class or interface in org.apache.jena.rdf.model" class="external-link">Model</a>&nbsp;model)</span></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>model</code> - The graph we are going to evaluate against.</dd>
</dl>
</section>
</li>
</ul>
</section>
</li>
<!-- ============ METHOD DETAIL ========== -->
<li>
<section class="method-details" id="method-detail">
<h2>Method Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="evaluate(java.lang.Object,org.apache.jena.permissions.SecurityEvaluator.Action,org.apache.jena.graph.Node)">
<h3>evaluate</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">evaluate</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a>&nbsp;principal,
<a href="../SecurityEvaluator.Action.html" title="enum in org.apache.jena.permissions">SecurityEvaluator.Action</a>&nbsp;action,
<a href="https://jena.apache.org/documentation/javadoc/jena/org.apache.jena.core/org/apache/jena/graph/Node.html" title="class or interface in org.apache.jena.graph" class="external-link">Node</a>&nbsp;graphIRI)</span></div>
<div class="block">We allow any action on the graph itself, so this is always true.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="../SecurityEvaluator.html#evaluate(java.lang.Object,org.apache.jena.permissions.SecurityEvaluator.Action,org.apache.jena.graph.Node)">evaluate</a></code>&nbsp;in interface&nbsp;<code><a href="../SecurityEvaluator.html" title="interface in org.apache.jena.permissions">SecurityEvaluator</a></code></dd>
<dt>Parameters:</dt>
<dd><code>principal</code> - The principal that is attempting the action.</dd>
<dd><code>action</code> - The action to perform</dd>
<dd><code>graphIRI</code> - The IRI of the graph to check</dd>
<dt>Returns:</dt>
<dd>true if the action is allowed, false otherwise.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="evaluate(java.lang.Object,org.apache.jena.permissions.SecurityEvaluator.Action,org.apache.jena.graph.Node,org.apache.jena.graph.Triple)">
<h3>evaluate</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">evaluate</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a>&nbsp;principal,
<a href="../SecurityEvaluator.Action.html" title="enum in org.apache.jena.permissions">SecurityEvaluator.Action</a>&nbsp;action,
<a href="https://jena.apache.org/documentation/javadoc/jena/org.apache.jena.core/org/apache/jena/graph/Node.html" title="class or interface in org.apache.jena.graph" class="external-link">Node</a>&nbsp;graphIRI,
<a href="https://jena.apache.org/documentation/javadoc/jena/org.apache.jena.core/org/apache/jena/graph/Triple.html" title="class or interface in org.apache.jena.graph" class="external-link">Triple</a>&nbsp;triple)</span></div>
<div class="block">As per our design, users can do anything with triples they have access to, so
we just ignore the action parameter. If we were to implement rules restricted
access based upon action this method would sort those out appropriately.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="../SecurityEvaluator.html#evaluate(java.lang.Object,org.apache.jena.permissions.SecurityEvaluator.Action,org.apache.jena.graph.Node,org.apache.jena.graph.Triple)">evaluate</a></code>&nbsp;in interface&nbsp;<code><a href="../SecurityEvaluator.html" title="interface in org.apache.jena.permissions">SecurityEvaluator</a></code></dd>
<dt>Parameters:</dt>
<dd><code>principal</code> - The principal that is attempting the action.</dd>
<dd><code>action</code> - The action to perform</dd>
<dd><code>graphIRI</code> - The IRI of the graph to the action is being taken upon. May
be <code>ANY</code>.</dd>
<dd><code>triple</code> - The triple to check</dd>
<dt>Returns:</dt>
<dd>true if the action is allowed, false otherwise.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="evaluate(java.lang.Object,java.util.Set,org.apache.jena.graph.Node)">
<h3>evaluate</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">evaluate</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a>&nbsp;principal,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html" title="class or interface in java.util" class="external-link">Set</a>&lt;<a href="../SecurityEvaluator.Action.html" title="enum in org.apache.jena.permissions">SecurityEvaluator.Action</a>&gt;&nbsp;actions,
<a href="https://jena.apache.org/documentation/javadoc/jena/org.apache.jena.core/org/apache/jena/graph/Node.html" title="class or interface in org.apache.jena.graph" class="external-link">Node</a>&nbsp;graphIRI)</span></div>
<div class="block">As per our design, users can access any graph. If we were to implement rules
that restricted user access to specific graphs, those checks would be here
and we would return <code>false</code> if they were not allowed to access the
graph. Note that this method is checking to see that the user may perform ALL
the actions in the set on the graph.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="../SecurityEvaluator.html#evaluate(java.lang.Object,java.util.Set,org.apache.jena.graph.Node)">evaluate</a></code>&nbsp;in interface&nbsp;<code><a href="../SecurityEvaluator.html" title="interface in org.apache.jena.permissions">SecurityEvaluator</a></code></dd>
<dt>Parameters:</dt>
<dd><code>principal</code> - The principal that is attempting the action.</dd>
<dd><code>actions</code> - The set of actions to perform</dd>
<dd><code>graphIRI</code> - The IRI of the graph to the action is being taken upon. May
be <code>ANY</code>.</dd>
<dt>Returns:</dt>
<dd>true if all the actions are allowed, false otherwise.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="evaluate(java.lang.Object,java.util.Set,org.apache.jena.graph.Node,org.apache.jena.graph.Triple)">
<h3>evaluate</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">evaluate</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a>&nbsp;principal,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html" title="class or interface in java.util" class="external-link">Set</a>&lt;<a href="../SecurityEvaluator.Action.html" title="enum in org.apache.jena.permissions">SecurityEvaluator.Action</a>&gt;&nbsp;actions,
<a href="https://jena.apache.org/documentation/javadoc/jena/org.apache.jena.core/org/apache/jena/graph/Node.html" title="class or interface in org.apache.jena.graph" class="external-link">Node</a>&nbsp;graphIRI,
<a href="https://jena.apache.org/documentation/javadoc/jena/org.apache.jena.core/org/apache/jena/graph/Triple.html" title="class or interface in org.apache.jena.graph" class="external-link">Triple</a>&nbsp;triple)</span></div>
<div class="block">As per our design, users can access any triple from a message that is from or
to them. Since we don't have restrictions on actions this is no different
then checking access for a single action.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="../SecurityEvaluator.html#evaluate(java.lang.Object,java.util.Set,org.apache.jena.graph.Node,org.apache.jena.graph.Triple)">evaluate</a></code>&nbsp;in interface&nbsp;<code><a href="../SecurityEvaluator.html" title="interface in org.apache.jena.permissions">SecurityEvaluator</a></code></dd>
<dd><code>actions</code> - The actions to perform.</dd>
<dd><code>graphIRI</code> - The IRI of the graph to the action is being taken upon. May
be <code>ANY</code>.</dd>
<dd><code>triple</code> - The triple to check</dd>
<dt>Returns:</dt>
<dd>true if all the actions are allowed, false otherwise.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="evaluateAny(java.lang.Object,java.util.Set,org.apache.jena.graph.Node)">
<h3>evaluateAny</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">evaluateAny</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a>&nbsp;principal,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html" title="class or interface in java.util" class="external-link">Set</a>&lt;<a href="../SecurityEvaluator.Action.html" title="enum in org.apache.jena.permissions">SecurityEvaluator.Action</a>&gt;&nbsp;actions,
<a href="https://jena.apache.org/documentation/javadoc/jena/org.apache.jena.core/org/apache/jena/graph/Node.html" title="class or interface in org.apache.jena.graph" class="external-link">Node</a>&nbsp;graphIRI)</span></div>
<div class="block">As per our design, users can access any graph. If we were to implement rules
that restricted user access to specific graphs, those checks would be here
and we would return <code>false</code> if they were not allowed to access the
graph. Note that this method is checking to see that the user may perform ANY
of the actions in the set on the graph.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="../SecurityEvaluator.html#evaluateAny(java.lang.Object,java.util.Set,org.apache.jena.graph.Node)">evaluateAny</a></code>&nbsp;in interface&nbsp;<code><a href="../SecurityEvaluator.html" title="interface in org.apache.jena.permissions">SecurityEvaluator</a></code></dd>
<dt>Parameters:</dt>
<dd><code>principal</code> - The principal that is attempting the action.</dd>
<dd><code>actions</code> - The actions to perform</dd>
<dd><code>graphIRI</code> - The IRI of the graph to the action is being taken upon. May
be <code>ANY</code>.</dd>
<dt>Returns:</dt>
<dd>true true if any the actions are allowed, false otherwise.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="evaluateAny(java.lang.Object,java.util.Set,org.apache.jena.graph.Node,org.apache.jena.graph.Triple)">
<h3>evaluateAny</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">evaluateAny</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a>&nbsp;principal,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html" title="class or interface in java.util" class="external-link">Set</a>&lt;<a href="../SecurityEvaluator.Action.html" title="enum in org.apache.jena.permissions">SecurityEvaluator.Action</a>&gt;&nbsp;actions,
<a href="https://jena.apache.org/documentation/javadoc/jena/org.apache.jena.core/org/apache/jena/graph/Node.html" title="class or interface in org.apache.jena.graph" class="external-link">Node</a>&nbsp;graphIRI,
<a href="https://jena.apache.org/documentation/javadoc/jena/org.apache.jena.core/org/apache/jena/graph/Triple.html" title="class or interface in org.apache.jena.graph" class="external-link">Triple</a>&nbsp;triple)</span></div>
<div class="block">As per our design, users can access any triple from a message that is from or
to them. Since we don't have restrictions on actions this is no different
then checking access for a single action.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="../SecurityEvaluator.html#evaluateAny(java.lang.Object,java.util.Set,org.apache.jena.graph.Node,org.apache.jena.graph.Triple)">evaluateAny</a></code>&nbsp;in interface&nbsp;<code><a href="../SecurityEvaluator.html" title="interface in org.apache.jena.permissions">SecurityEvaluator</a></code></dd>
<dt>Parameters:</dt>
<dd><code>principal</code> - The principal that is attempting the action.</dd>
<dd><code>actions</code> - The actions to check.</dd>
<dd><code>graphIRI</code> - The IRI of the graph to the action is being taken upon. May
be <code>ANY</code>.</dd>
<dd><code>triple</code> - The triple to check</dd>
<dt>Returns:</dt>
<dd>true if any the actions are allowed, false otherwise.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="evaluateUpdate(java.lang.Object,org.apache.jena.graph.Node,org.apache.jena.graph.Triple,org.apache.jena.graph.Triple)">
<h3>evaluateUpdate</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">evaluateUpdate</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a>&nbsp;principal,
<a href="https://jena.apache.org/documentation/javadoc/jena/org.apache.jena.core/org/apache/jena/graph/Node.html" title="class or interface in org.apache.jena.graph" class="external-link">Node</a>&nbsp;graphIRI,
<a href="https://jena.apache.org/documentation/javadoc/jena/org.apache.jena.core/org/apache/jena/graph/Triple.html" title="class or interface in org.apache.jena.graph" class="external-link">Triple</a>&nbsp;from,
<a href="https://jena.apache.org/documentation/javadoc/jena/org.apache.jena.core/org/apache/jena/graph/Triple.html" title="class or interface in org.apache.jena.graph" class="external-link">Triple</a>&nbsp;to)</span></div>
<div class="block">As per our design, users can access any triple from a message that is from or
to them. So for an update they can only change triples they have access to
into other triples they have access to. (e.g. they can not remove themselves
from the message).</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="../SecurityEvaluator.html#evaluateUpdate(java.lang.Object,org.apache.jena.graph.Node,org.apache.jena.graph.Triple,org.apache.jena.graph.Triple)">evaluateUpdate</a></code>&nbsp;in interface&nbsp;<code><a href="../SecurityEvaluator.html" title="interface in org.apache.jena.permissions">SecurityEvaluator</a></code></dd>
<dt>Parameters:</dt>
<dd><code>principal</code> - The principal that is attempting the action.</dd>
<dd><code>graphIRI</code> - The IRI of the graph to the action is being taken upon. May
be <code>ANY</code>.</dd>
<dd><code>from</code> - The triple to be changed</dd>
<dd><code>to</code> - The value to change it to.</dd>
<dt>Returns:</dt>
<dd>true if the user may make the change, false otherwise.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getPrincipal()">
<h3>getPrincipal</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></span>&nbsp;<span class="element-name">getPrincipal</span>()</div>
<div class="block">Return the Shiro subject. This is the subject that Shiro currently has logged
in.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="../SecurityEvaluator.html#getPrincipal()">getPrincipal</a></code>&nbsp;in interface&nbsp;<code><a href="../SecurityEvaluator.html" title="interface in org.apache.jena.permissions">SecurityEvaluator</a></code></dd>
<dt>Returns:</dt>
<dd>The current principal</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="isPrincipalAuthenticated(java.lang.Object)">
<h3>isPrincipalAuthenticated</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">isPrincipalAuthenticated</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a>&nbsp;principal)</span></div>
<div class="block">Verify the Shiro subject is authenticated.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="../SecurityEvaluator.html#isPrincipalAuthenticated(java.lang.Object)">isPrincipalAuthenticated</a></code>&nbsp;in interface&nbsp;<code><a href="../SecurityEvaluator.html" title="interface in org.apache.jena.permissions">SecurityEvaluator</a></code></dd>
<dt>Parameters:</dt>
<dd><code>principal</code> - The principal to check.</dd>
<dt>Returns:</dt>
<dd>true if authenticated, false if not.</dd>
</dl>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
<!-- ========= END OF CLASS DATA ========= -->
</main>
<footer role="contentinfo">
<hr>
<p class="legal-copy"><small>Licensed under the Apache License, Version 2.0</small></p>
</footer>
</div>
</div>
</body>
</html>