Modified: shiro/site/publish/authentication.html
URL: 
http://svn.apache.org/viewvc/shiro/site/publish/authentication.html?rev=1766556&r1=1766555&r2=1766556&view=diff
==============================================================================
--- shiro/site/publish/authentication.html (original)
+++ shiro/site/publish/authentication.html Tue Oct 25 16:48:27 2016
@@ -35,6 +35,7 @@
 
 
 <head>
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
     <meta name="description" content="Apache Shiro is a powerful and 
easy-to-use Java security framework that performs authentication, 
authorization, cryptography, and session management.">
     <meta name="google-site-verification" 
content="QIax6uT5UX3enoU0G8Pz2pXbQ45KaQuHZ3nCh9V27mw">
@@ -50,29 +51,44 @@
     <link rel="icon" type="image/vnd.microsoft.icon" 
href="./assets/images/favicon.ico">
     <link rel="stylesheet" type="text/css" 
href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.3/css/font-awesome.min.css";>
 
-    <link rel="stylesheet" type="text/css" href="./assets/css/normalize.css">
-    <link rel="stylesheet" type="text/css" href="./assets/css/confluence.css" 
media="screen">
+    <!-- site styles and  -->
     <link rel="stylesheet" type="text/css" href="./assets/css/style.css">
+    <script type="text/javascript" src="./assets/js/shiro-site.js"></script>
 
+    <!-- github ribbon -->
     <link rel="stylesheet" href="./assets/css/gh-pages/gh-fork-ribbon.css" />
     <!--[if lt IE 9]>
       <link rel="stylesheet" 
href="./assets/css/gh-pages/gh-fork-ribbon.ie.css" />
     <![endif]-->
 
+    <script src="https://code.jquery.com/jquery-3.1.1.min.js"; 
integrity="sha256-hVVnYaiADRTO2PzUGmuLJr8BLUSjGIZsDYGmIJLv2b8=" 
crossorigin="anonymous"></script>
+
+    <!-- bootstrap -->
+    <link rel="stylesheet" href="./assets/bootstrap/css/bootstrap.min.css">
+    <link rel="stylesheet" 
href="./assets/bootstrap/css/bootstrap-theme.min.css">
+    <script src="./assets/bootstrap/js/bootstrap.min.js"></script>
+
+
+    <!-- Google Analytics -->
+    <script>
+    
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+                (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new 
Date();a=s.createElement(o),
+            
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+    
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
+
+    ga('create', 'UA-XXXXX-Y', 'auto');
+    ga('send', 'pageview');
+    </script>
+    <!-- End Google Analytics -->
+
+
+
     <!-- syntax highlighting -->
     <link rel="stylesheet" 
href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.7.0/styles/default.min.css";
 integrity="sha256-Zd1icfZ72UBmsId/mUcagrmN7IN5Qkrvh75ICHIQVTk=" 
crossorigin="anonymous" />
     <script type="text/javascript" 
src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.7.0/highlight.min.js";
 integrity="sha256-s63qpgPYoQk+wv3U6WZqioVJrwFNBTgD4dkeegLuwvo=" 
crossorigin="anonymous"></script>
-
-    <script type="text/javascript" src="./assets/js/shiro-site.js"></script>
-    <script type="text/javascript" 
src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js";></script>
-    <script type="text/javascript" 
src="./assets/js/jquery_googleanalytics/jquery.google-analytics.js"></script>
     <script>hljs.initHighlightingOnLoad();</script>
+
     <script type="text/javascript">
-        // initialize plugins
-        jQuery(function() {
-            //Google Analytics
-            jQuery.trackPage('UA-11551827-1');
-        });
 
         $( document ).ready(function() {
             addPageEditLink();
@@ -81,27 +97,97 @@
 </head>
 
 <body>
-    <a class="github-fork-ribbon right-top" 
href="https://github.com/apache/shiro"; title="Fork me on GitHub">Fork me on 
GitHub</a>
 
     <div id="top-bar"></div>
 
-    <div class="wrapper">
+    <div class="container" style="max-width: 1200px;">
+
+    <a class="github-fork-ribbon right-top" 
href="https://github.com/apache/shiro"; title="Fork me on GitHub">Fork me on 
GitHub</a>
+
+
 
-        <div id="header">
-            <a href="./index.html"><div id="logo"></div></a>
-            <ul class="navigation">
+    <div class="masthead">
+        <p class="lead">
+            <a href="./index.html">
+                <img src="./assets/images/apache-shiro-logo.png" 
style="height:100px; width:auto; vertical-align: bottom; margin-top: 20px;">
+            </a>
+            <span class="tagline">Simple. Java. Security.</span>
+        </p>
+    </div>
+
+
+
+    <nav class="navbar navbar-default" role="navigation">
+        <!-- Brand and toggle get grouped for better mobile display -->
+        <div class="navbar-header">
+            <button type="button" class="navbar-toggle" data-toggle="collapse"
+                    data-target="#navbar-collapse-1">
+                <span class="sr-only">Toggle navigation</span>
+                <span class="icon-bar"></span>
+                <span class="icon-bar"></span>
+                <span class="icon-bar"></span>
+            </button>
+        </div>
+
+        <!-- Collect the nav links, forms, and other content for toggling -->
+        <div class="collapse navbar-collapse" id="navbar-collapse-1">
+            <ul class="nav navbar-nav">
                 <li><a href="./get-started.html">Get Started</a></li>
                 <li><a href="./documentation.html">Docs</a></li>
                 <li><a href="./web-features.html">Web Apps</a></li>
-                <li><a href="./integration.html">Integrations</a></li>
+
+                <li class="dropdown">
+                    <a href="#" class="dropdown-toggle" data-toggle="dropdown">
+                        Integrations <b class="caret"></b>
+                    </a>
+
+                    <ul class="dropdown-menu">
+                        <li><a href="./spring.html">Spring</a></li>
+                        <li><a href="./guice.html">Guice</a></li>
+                        <li class="divider"></li>
+                        <li><a href="./integration.html">Third-Party 
Integrations</a></li>
+                    </ul>
+                </li>
+
                 <li><a href="./features.html">Features</a></li>
-                <li><a href="./community.html">Community</a></li>
+
+                <li class="dropdown">
+                    <a href="#" class="dropdown-toggle" data-toggle="dropdown">
+                        Community <b class="caret"></b>
+                    </a>
+                    <ul class="dropdown-menu">
+                        <li><a href="./forums.html">Community Forums</a></li>
+                        <li><a href="./mailing-lists.html">Mailing 
Lists</a></li>
+                        <li><a href="./articles.html">Articles</a></li>
+                        <li><a href="./news.html">News</a></li>
+                        <li><a href="./events.html">Events</a></li>
+                        <li class="divider"></li>
+                        <li><a href="./community.html">More</a></li>
+                    </ul>
+                </li>
+
+            </ul>
+
+            <ul class="nav navbar-nav navbar-right">
+                <li class="dropdown">
+                    <a href="http://www.apache.org/"; class="dropdown-toggle" 
data-toggle="dropdown">
+                        Apache Software Foundation <b class="caret"></b></a>
+                    <ul class="dropdown-menu">
+                        <li><a href="http://www.apache.org/";>Apache 
Homepage</a></li>
+                        <li><a 
href="http://www.apache.org/licenses/";>License</a></li>
+                        <li><a 
href="http://www.apache.org/foundation/sponsorship.html";>Sponsorship</a></li>
+                        <li><a 
href="http://www.apache.org/foundation/thanks.html";>Thanks</a></li>
+                        <li><a 
href="http://www.apache.org/foundation/sponsorship.html";>Donate</a></li>
+                        <li><a 
href="http://www.apache.org/security/";>Security</a></li>
+                    </ul>
+                </li>
             </ul>
         </div>
+        <!-- /.navbar-collapse -->
+    </nav>
 
-        <div id="content">
 
-                            <!-- Work around for table styling until, all 
pages are updated. -->
+            <!-- Work around for table styling until, all pages are updated. 
-->
 <style>
 
     table, th, td {
@@ -158,28 +244,10 @@
 <ul>
   <li><strong>Principals</strong> are a Subject&rsquo;s &lsquo;identifying 
attributes&rsquo;. Principals can be anything that identifies a Subject, such 
as a first name (given name), last name (surname or family name), a username, 
Social Security Number, etc. Of course things like family names are not very 
good at uniquely identifying a <code>Subject</code>, so the best principals to 
use for authentication are unique for an application - typically a username or 
email address.</li>
 </ul>
-<div class="panelMacro">
-    <table class="infoMacro">
-        <colgroup span="1">
-            <col span="1" width="24">
-            <col span="1">
-        </colgroup>
-
-
-        <tbody>
-        <tr>
-            <td colspan="1" rowspan="1" valign="top">
-                <i class="fa fa-info-circle"></i>
-            </td>
-
-            <td colspan="1" rowspan="1">
-                <b>Primary Principal</b>
-                <br clear="none">
-                While Shiro can represent any number of principals, Shiro 
expects an application to have exactly one 'Primary' principal - a single value 
that uniquely identifies the `Subject` within the application. This is 
typically a username, email address or globally unique user id in most 
applications.
-            </td>
-        </tr>
-        </tbody>
-    </table>
+<div class="alert alert-info">
+    <span class="glyphicon glyphicon-info-sign"></span> <strong>Primary 
Principal</strong>
+    <hr class="message-inner-separator">
+    <p>While Shiro can represent any number of principals, Shiro expects an 
application to have exactly one 'Primary' principal - a single value that 
uniquely identifies the `Subject` within the application. This is typically a 
username, email address or globally unique user id in most applications.</p>
 </div>
 <ul>
   <li><strong>Credentials</strong> are usually secret values known only by the 
<code>Subject</code> which are used as supporting evidence that they in fact 
&lsquo;own&rsquo; the claimed identity. Some common examples of credentials are 
passwords, biometric data such as fingerprints and retina scans, and X.509 
certificates.</li>
@@ -234,24 +302,10 @@ currentUser.login(token);
 //No problems, continue on as expected...
 </code></pre>
 <p>If one of the existing exception classes do not meet your needs, custom 
<code>AuthenticationExceptions</code> can be created to represent specific 
failure scenarios.</p>
-<div class="panelMacro">
-    <table class="tipMacro">
-        <colgroup span="1">
-            <col span="1" width="24">
-            <col span="1">
-        </colgroup>
-        <tbody><tr>
-            <td colspan="1" rowspan="1" valign="top">
-                <i class="fa fa-check-square-o"></i>
-            </td>
-            <td colspan="1" rowspan="1">
-                <b>Login Failure Tip</b>
-                <br clear="none">
-                While your code can react to specific exceptions and execute 
logic as necessary, a security best practice is to only show a generic failure 
message to an end user in the event of a failure, for example, "Incorrect 
username or password.".  This ensures no specific information is available to 
hackers that may be attempting an attack vector.
-            </td>
-        </tr>
-        </tbody>
-    </table>
+<div class="alert alert-success">
+    <span class="glyphicon glyphicon-ok"></span> <strong>Login Failure 
Tip</strong>
+    <hr class="message-inner-separator">
+    <p>While your code can react to specific exceptions and execute logic as 
necessary, a security best practice is to only show a generic failure message 
to an end user in the event of a failure, for example, "Incorrect username or 
password.".  This ensures no specific information is available to hackers that 
may be attempting an attack vector.</p>
 </div>
 <a name="Authentication-Rememberedvs.Authenticated"></a>
 <h2>Remembered vs. Authenticated</h2>
@@ -262,26 +316,10 @@ currentUser.login(token);
   <li>
   <p><strong>Authenticated</strong>: An authenticated <code>Subject</code> is 
one that has been successfully authenticated (i.e. the <code>login</code> 
method was invoked without throwing an exception) <em>during the 
Subject&rsquo;s current session</em>. A subject is considered authenticated if 
<code>subject.</code><a 
href="static/current/apidocs/org/apache/shiro/subject/Subject.html#isAuthenticated--"><code>isAuthenticated()</code></a>
 returns <code>true</code>.</p></li>
 </ul>
-<div class="panelMacro">
-    <table class="noteMacro">
-        <colgroup span="1">
-            <col span="1" width="24">
-            <col span="1">
-        </colgroup>
-        <tbody>
-        <tr>
-            <td colspan="1" rowspan="1" valign="top">
-                <i class="fa fa-warning"></i>
-            </td>
-
-            <td colspan="1" rowspan="1">
-                <b>Mutually Exclusive</b>
-                <br clear="none">
-                Remembered and authenticated states are mutually exclusive - a 
<code>true</code> value for one indicates a <code>false</code> value for the 
other and vice versa.
-            </td>
-        </tr>
-        </tbody>
-    </table>
+<div class="alert alert-warning">
+    <span class="glyphicon glyphicon-warning-sign"></span> <strong>Mutually 
Exclusive</strong>
+    <hr class="message-inner-separator">
+    <p>Remembered and authenticated states are mutually exclusive - a 
<code>true</code> value for one indicates a <code>false</code> value for the 
other and vice versa.</p>
 </div>
 <a name="Authentication-Whythedistinction%3F"></a>
 <h3><a href="#why-the-distinction-" name="why-the-distinction-">Why the 
distinction?</a></h3>
@@ -304,26 +342,10 @@ currentUser.login(token);
 </code></pre>
 <p>When you call <code>logout</code>, any existing <code>Session</code> will 
be invalidated and any identity will be disassociated (e.g. in a web app, the 
RememberMe cookie will also be deleted).</p>
 <p>After a <code>Subject</code> logs-out, the <code>Subject</code> instance is 
considered anonymous again and, except for web applications, can be re-used for 
<code>login</code> again if desired.</p>
-<div class="panelMacro">
-    <table class="warningMacro">
-        <colgroup span="1">
-            <col span="1" width="24">
-            <col span="1">
-        </colgroup>
-        <tbody>
-        <tr>
-            <td colspan="1" rowspan="1" valign="top">
-                <i class="fa fa-exclamation-circle"></i>
-            </td>
-
-            <td colspan="1" rowspan="1">
-                <b>Web Application Notice</b>
-                <br clear="none">
-                Because remembered identity in web applications is often 
persisted with cookies, and cookies can only be deleted before a Response body 
is committed, it is highly recommended to redirect the end-user to a new view 
or page immediately after calling <code>subject.logout()</code>.  This 
guarantees that any security-related cookies are deleted as expected. This is a 
limitation of how HTTP cookies function and not a limitation of Shiro.
-            </td>
-        </tr>
-        </tbody>
-    </table>
+<div class="alert alert-danger">
+    <span class="glyphicon glyphicon-exclamation-sign"></span> <strong>Web 
Application Notice</strong>
+    <hr class="message-inner-separator">
+    <p>Because remembered identity in web applications is often persisted with 
cookies, and cookies can only be deleted before a Response body is committed, 
it is highly recommended to redirect the end-user to a new view or page 
immediately after calling <code>subject.logout()</code>.  This guarantees that 
any security-related cookies are deleted as expected. This is a limitation of 
how HTTP cookies function and not a limitation of Shiro.</p>
 </div>
 <a name="Authentication-sequence"></a>
 <a name="Authentication-AuthenticationSequence"></a>
@@ -335,26 +357,10 @@ currentUser.login(token);
 <p><strong>Step 2</strong>: The <code>Subject</code> instance, typically a <a 
href="static/current/apidocs/org/apache/shiro/subject/support/DelegatingSubject.html"><code>DelegatingSubject</code></a>
 (or a subclass) delegates to the application&rsquo;s 
<code>SecurityManager</code> by calling 
<code>securityManager.login(token)</code>, where the actual authentication work 
begins.</p>
 <p><strong>Step 3</strong>: The <code>SecurityManager</code>, being a basic 
&lsquo;umbrella&rsquo; component, receives the token and simply delegates to 
its internal <a 
href="static/current/apidocs/org/apache/shiro/authc/Authenticator.html"><code>Authenticator</code></a><code>instance
 by calling</code>authenticator.<a 
href="static/current/apidocs/org/apache/shiro/authc/Authenticator.html#authenticate-org.apache.shiro.authc.AuthenticationToken-"><code>authenticate(token)</code></a>.
 This is almost always a <a 
href="static/current/apidocs/org/apache/shiro/authc/pam/ModularRealmAuthenticator.html"><code>ModularRealmAuthenticator</code></a>
 instance, which supports coordinating one or more <code>Realm</code> instances 
during authentication. The <code>ModularRealmAuthenticator</code> essentially 
provides a <a 
href="https://en.wikipedia.org/wiki/Pluggable_Authentication_Modules";>PAM</a>-style
 paradigm for Apache Shiro (where each <code>Realm</code> is a 
&lsquo;module&rsquo; in PAM termino
 logy).</p>
 <p><strong>Step 4</strong>: If more than one <code>Realm</code> is configured 
for the application, the <code>ModularRealmAuthenticator</code> instance will 
initiate a multi-<code>Realm</code> authentication attempt utilizing its 
configured <a 
href="static/current/apidocs/org/apache/shiro/authc/pam/AuthenticationStrategy.html"><code>AuthenticationStrategy</code></a>.
 Before, during and after the <code>Realms</code> are invoked for 
authentication, the <code>AuthenticationStrategy</code> will be called to allow 
it to react to each Realm&rsquo;s results. We will cover 
<code>AuthenticationStrategies</code> soon.</p>
-<div class="panelMacro">
-    <table class="noteMacro">
-        <colgroup span="1">
-            <col span="1" width="24">
-            <col span="1">
-        </colgroup>
-        <tbody>
-        <tr>
-            <td colspan="1" rowspan="1" valign="top">
-                <i class="fa fa-warning"></i>
-            </td>
-
-            <td colspan="1" rowspan="1">
-                <b>Single-Realm Application</b>
-                <br clear="none">
-                If only a single Realm is configured, it is called directly - 
there is no need for an <code>AuthenticationStrategy</code> in a single-Realm 
application.
-            </td>
-        </tr>
-        </tbody>
-    </table>
+<div class="alert alert-warning">
+    <span class="glyphicon glyphicon-warning-sign"></span> 
<strong>Single-Realm Application</strong>
+    <hr class="message-inner-separator">
+    <p>If only a single Realm is configured, it is called directly - there is 
no need for an <code>AuthenticationStrategy</code> in a single-Realm 
application.</p>
 </div>
 <p><strong>Step 5</strong>: Each configured <code>Realm</code> is consulted to 
see if it <a 
href="static/current/apidocs/org/apache/shiro/realm/Realm.html#supports-org.apache.shiro.authc.AuthenticationToken-"><code>supports</code></a>
 the submitted <code>AuthenticationToken</code>. If so, the supporting 
Realm&rsquo;s <a 
href="static/current/apidocs/org/apache/shiro/realm/Realm.html#getAuthenticationInfo-org.apache.shiro.authc.AuthenticationToken-"><code>getAuthenticationInfo</code></a>
 method will be invoked with the submitted <code>token</code>. The 
<code>getAuthenticationInfo</code> method effectively represents a single 
authentication attempt for that particular <code>Realm</code>. We will cover 
the <code>Realm</code> authentication behavior shortly.</p>
 <h3><a href="#authenticator" name="authenticator">Authenticator</a></h3>
@@ -380,28 +386,10 @@ securityManager.authenticator = $authent
   <li>after all of the Realms have been invoked</li>
 </ol>
 <p>Also an <code>AuthenticationStrategy</code> is responsible for aggregating 
the results from each successful Realm and &lsquo;bundling&rsquo; them into a 
single <a 
href="static/current/apidocs/org/apache/shiro/authc/AuthenticationInfo.html"><code>AuthenticationInfo</code></a>
 representation. This final aggregate <code>AuthenticatinoInfo</code> instance 
is what is returned by the <code>Authenticator</code> instance and is what 
Shiro uses to represent the <code>Subject</code>&rsquo;s final identity (aka 
Principals).</p>
-<div class="panelMacro">
-    <table class="infoMacro">
-        <colgroup span="1">
-            <col span="1" width="24">
-            <col span="1">
-        </colgroup>
-
-
-        <tbody>
-        <tr>
-            <td colspan="1" rowspan="1" valign="top">
-                <i class="fa fa-info-circle"></i>
-            </td>
-
-            <td colspan="1" rowspan="1">
-                <b>Subject Identity 'View'</b>
-                <br clear="none">
-                If you use more than one Realm in your application to acquire 
account data from multiple data sources, the 
<code>AuthenticationStrategy</code> is ultimately responsible for the final 
'merged' view of the Subject's identity that is seen by the application.
-            </td>
-        </tr>
-        </tbody>
-    </table>
+<div class="alert alert-info">
+    <span class="glyphicon glyphicon-info-sign"></span> <strong>Subject 
Identity 'View'</strong>
+    <hr class="message-inner-separator">
+    <p>If you use more than one Realm in your application to acquire account 
data from multiple data sources, the <code>AuthenticationStrategy</code> is 
ultimately responsible for the final 'merged' view of the Subject's identity 
that is seen by the application.</p>
 </div>
 <p>Shiro has 3 concrete <code>AuthenticationStrategy</code> 
implementations:</p>
 <table>
@@ -435,24 +423,10 @@ securityManager.authenticator.authentica
 
 ...
 </code></pre>
-<div class="panelMacro">
-    <table class="tipMacro">
-        <colgroup span="1">
-            <col span="1" width="24">
-            <col span="1">
-        </colgroup>
-        <tbody><tr>
-            <td colspan="1" rowspan="1" valign="top">
-                <i class="fa fa-check-square-o"></i>
-            </td>
-            <td colspan="1" rowspan="1">
-                <b>Custom AuthenticationStrategy</b>
-                <br clear="none">
-                If you wanted to create your own 
<code>AuthenticationStrategy</code> implementation yourself, you could use the 
<a class="external-link" 
href="static/current/apidocs/org/apache/shiro/authc/pam/AbstractAuthenticationStrategy.html"><code>org.apache.shiro.authc.pam.AbstractAuthenticationStrategy</code></a>
 as a starting point.  The <code>AbstractAuthenticationStrategy</code> class 
automatically implements the 'bundling'/aggregation behavior of merging the 
results from each Realm into a single <code>AuthenticationInfo</code> instance.
-            </td>
-        </tr>
-        </tbody>
-    </table>
+<div class="alert alert-success">
+    <span class="glyphicon glyphicon-ok"></span> <strong>Custom 
AuthenticationStrategy</strong>
+    <hr class="message-inner-separator">
+    <p>If you wanted to create your own <code>AuthenticationStrategy</code> 
implementation yourself, you could use the <a class="external-link" 
href="static/current/apidocs/org/apache/shiro/authc/pam/AbstractAuthenticationStrategy.html"><code>org.apache.shiro.authc.pam.AbstractAuthenticationStrategy</code></a>
 as a starting point.  The <code>AbstractAuthenticationStrategy</code> class 
automatically implements the 'bundling'/aggregation behavior of merging the 
results from each Realm into a single <code>AuthenticationInfo</code> 
instance.</p>
 </div>
 <a name="Authentication-RealmAuthenticationOrder"></a>
 <h3><a href="#realm-authentication-order" 
name="realm-authentication-order">Realm Authentication Order</a></h3>
@@ -484,26 +458,10 @@ barRealm = com.company.another.Realm
 securityManager.realms = $fooRealm, $barRealm, $blahRealm
 ...
 </code></pre>
-<div class="panelMacro">
-    <table class="noteMacro">
-        <colgroup span="1">
-            <col span="1" width="24">
-            <col span="1">
-        </colgroup>
-        <tbody>
-        <tr>
-            <td colspan="1" rowspan="1" valign="top">
-                <i class="fa fa-warning"></i>
-            </td>
-
-            <td colspan="1" rowspan="1">
-                <b>Explicit Realm Inclusion</b>
-                <br clear="none">
-                When you explicitly configure the 
<code>securityManager.realms</code> property, <em>only</em> the referenced 
realms will be configured on the <code>SecurityManager</code>.  This means you 
could define 5 realms in INI, but only actually use 3 if 3 are referenced for 
the <code>realms</code> property.  This is different than implicit realm 
ordering where all available realms will be used.
-            </td>
-        </tr>
-        </tbody>
-    </table>
+<div class="alert alert-warning">
+    <span class="glyphicon glyphicon-warning-sign"></span> <strong>Explicit 
Realm Inclusion</strong>
+    <hr class="message-inner-separator">
+    <p>When you explicitly configure the <code>securityManager.realms</code> 
property, <em>only</em> the referenced realms will be configured on the 
<code>SecurityManager</code>.  This means you could define 5 realms in INI, but 
only actually use 3 if 3 are referenced for the <code>realms</code> property.  
This is different than implicit realm ordering where all available realms will 
be used.</p>
 </div>
 <a name="Authentication-RealmAuthentication"></a>
 <h2><a href="#realm-authentication" name="realm-authentication">Realm 
Authentication</a></h2>
@@ -512,27 +470,23 @@ securityManager.realms = $fooRealm, $bar
 <h2><a href="#lend-a-hand-with-documentation" 
name="lend-a-hand-with-documentation">Lend a hand with documentation</a></h2>
 <p>While we hope this documentation helps you with the work you&rsquo;re doing 
with Apache Shiro, the community is improving and expanding the documentation 
all the time. If you&rsquo;d like to help the Shiro project, please consider 
corrected, expanding, or adding documentation where you see a need. Every 
little bit of help you provide expands the community and in turn improves 
Shiro.</p>
 <p>The easiest way to contribute your documentation is to send it to the <a 
href="http://shiro-user.582556.n2.nabble.com/";>User Forum</a> or the <a 
href="mailing-lists.html" title="Mailing Lists">User Mailing 
List</a>.<br/><input type="hidden" id="ghEditPage" 
value="authentication.md.vtl"></input></p>
-            
-        </div>
-
-    </div><!--END WRAPPER-->
+    
+</div>
 
-    <div id="footer">
+    <div class="footer-padding"></div>
+    <footer class="custom-footer">
 
         <div class="wrapper">
 
             <a 
href="http://www.apache.org/foundation/contributing.html";>Donate to the ASF</a> 
|
             <a 
href="http://www.apache.org/licenses/LICENSE-2.0.html";>License</a>
             <p>Copyright &copy; 2008-2016 The Apache Software Foundation</p>
-
-            <div class="editThisPage">
-            </div>
-
+            <div class="editThisPage"></div>
             <div class="footer-shield"></div>
 
         </div> <!--END FOOTER WRAPPER-->
 
-    </div> <!--END FOOTER-->
+    </footer> <!--END FOOTER-->
 
 </body>
 </html>

Modified: shiro/site/publish/authenticator.html
URL: 
http://svn.apache.org/viewvc/shiro/site/publish/authenticator.html?rev=1766556&r1=1766555&r2=1766556&view=diff
==============================================================================
--- shiro/site/publish/authenticator.html (original)
+++ shiro/site/publish/authenticator.html Tue Oct 25 16:48:27 2016
@@ -35,6 +35,7 @@
 
 
 <head>
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
     <meta name="description" content="Apache Shiro is a powerful and 
easy-to-use Java security framework that performs authentication, 
authorization, cryptography, and session management.">
     <meta name="google-site-verification" 
content="QIax6uT5UX3enoU0G8Pz2pXbQ45KaQuHZ3nCh9V27mw">
@@ -50,29 +51,44 @@
     <link rel="icon" type="image/vnd.microsoft.icon" 
href="./assets/images/favicon.ico">
     <link rel="stylesheet" type="text/css" 
href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.3/css/font-awesome.min.css";>
 
-    <link rel="stylesheet" type="text/css" href="./assets/css/normalize.css">
-    <link rel="stylesheet" type="text/css" href="./assets/css/confluence.css" 
media="screen">
+    <!-- site styles and  -->
     <link rel="stylesheet" type="text/css" href="./assets/css/style.css">
+    <script type="text/javascript" src="./assets/js/shiro-site.js"></script>
 
+    <!-- github ribbon -->
     <link rel="stylesheet" href="./assets/css/gh-pages/gh-fork-ribbon.css" />
     <!--[if lt IE 9]>
       <link rel="stylesheet" 
href="./assets/css/gh-pages/gh-fork-ribbon.ie.css" />
     <![endif]-->
 
+    <script src="https://code.jquery.com/jquery-3.1.1.min.js"; 
integrity="sha256-hVVnYaiADRTO2PzUGmuLJr8BLUSjGIZsDYGmIJLv2b8=" 
crossorigin="anonymous"></script>
+
+    <!-- bootstrap -->
+    <link rel="stylesheet" href="./assets/bootstrap/css/bootstrap.min.css">
+    <link rel="stylesheet" 
href="./assets/bootstrap/css/bootstrap-theme.min.css">
+    <script src="./assets/bootstrap/js/bootstrap.min.js"></script>
+
+
+    <!-- Google Analytics -->
+    <script>
+    
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+                (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new 
Date();a=s.createElement(o),
+            
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+    
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
+
+    ga('create', 'UA-XXXXX-Y', 'auto');
+    ga('send', 'pageview');
+    </script>
+    <!-- End Google Analytics -->
+
+
+
     <!-- syntax highlighting -->
     <link rel="stylesheet" 
href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.7.0/styles/default.min.css";
 integrity="sha256-Zd1icfZ72UBmsId/mUcagrmN7IN5Qkrvh75ICHIQVTk=" 
crossorigin="anonymous" />
     <script type="text/javascript" 
src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.7.0/highlight.min.js";
 integrity="sha256-s63qpgPYoQk+wv3U6WZqioVJrwFNBTgD4dkeegLuwvo=" 
crossorigin="anonymous"></script>
-
-    <script type="text/javascript" src="./assets/js/shiro-site.js"></script>
-    <script type="text/javascript" 
src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js";></script>
-    <script type="text/javascript" 
src="./assets/js/jquery_googleanalytics/jquery.google-analytics.js"></script>
     <script>hljs.initHighlightingOnLoad();</script>
+
     <script type="text/javascript">
-        // initialize plugins
-        jQuery(function() {
-            //Google Analytics
-            jQuery.trackPage('UA-11551827-1');
-        });
 
         $( document ).ready(function() {
             addPageEditLink();
@@ -81,27 +97,97 @@
 </head>
 
 <body>
-    <a class="github-fork-ribbon right-top" 
href="https://github.com/apache/shiro"; title="Fork me on GitHub">Fork me on 
GitHub</a>
 
     <div id="top-bar"></div>
 
-    <div class="wrapper">
+    <div class="container" style="max-width: 1200px;">
+
+    <a class="github-fork-ribbon right-top" 
href="https://github.com/apache/shiro"; title="Fork me on GitHub">Fork me on 
GitHub</a>
+
+
 
-        <div id="header">
-            <a href="./index.html"><div id="logo"></div></a>
-            <ul class="navigation">
+    <div class="masthead">
+        <p class="lead">
+            <a href="./index.html">
+                <img src="./assets/images/apache-shiro-logo.png" 
style="height:100px; width:auto; vertical-align: bottom; margin-top: 20px;">
+            </a>
+            <span class="tagline">Simple. Java. Security.</span>
+        </p>
+    </div>
+
+
+
+    <nav class="navbar navbar-default" role="navigation">
+        <!-- Brand and toggle get grouped for better mobile display -->
+        <div class="navbar-header">
+            <button type="button" class="navbar-toggle" data-toggle="collapse"
+                    data-target="#navbar-collapse-1">
+                <span class="sr-only">Toggle navigation</span>
+                <span class="icon-bar"></span>
+                <span class="icon-bar"></span>
+                <span class="icon-bar"></span>
+            </button>
+        </div>
+
+        <!-- Collect the nav links, forms, and other content for toggling -->
+        <div class="collapse navbar-collapse" id="navbar-collapse-1">
+            <ul class="nav navbar-nav">
                 <li><a href="./get-started.html">Get Started</a></li>
                 <li><a href="./documentation.html">Docs</a></li>
                 <li><a href="./web-features.html">Web Apps</a></li>
-                <li><a href="./integration.html">Integrations</a></li>
+
+                <li class="dropdown">
+                    <a href="#" class="dropdown-toggle" data-toggle="dropdown">
+                        Integrations <b class="caret"></b>
+                    </a>
+
+                    <ul class="dropdown-menu">
+                        <li><a href="./spring.html">Spring</a></li>
+                        <li><a href="./guice.html">Guice</a></li>
+                        <li class="divider"></li>
+                        <li><a href="./integration.html">Third-Party 
Integrations</a></li>
+                    </ul>
+                </li>
+
                 <li><a href="./features.html">Features</a></li>
-                <li><a href="./community.html">Community</a></li>
+
+                <li class="dropdown">
+                    <a href="#" class="dropdown-toggle" data-toggle="dropdown">
+                        Community <b class="caret"></b>
+                    </a>
+                    <ul class="dropdown-menu">
+                        <li><a href="./forums.html">Community Forums</a></li>
+                        <li><a href="./mailing-lists.html">Mailing 
Lists</a></li>
+                        <li><a href="./articles.html">Articles</a></li>
+                        <li><a href="./news.html">News</a></li>
+                        <li><a href="./events.html">Events</a></li>
+                        <li class="divider"></li>
+                        <li><a href="./community.html">More</a></li>
+                    </ul>
+                </li>
+
+            </ul>
+
+            <ul class="nav navbar-nav navbar-right">
+                <li class="dropdown">
+                    <a href="http://www.apache.org/"; class="dropdown-toggle" 
data-toggle="dropdown">
+                        Apache Software Foundation <b class="caret"></b></a>
+                    <ul class="dropdown-menu">
+                        <li><a href="http://www.apache.org/";>Apache 
Homepage</a></li>
+                        <li><a 
href="http://www.apache.org/licenses/";>License</a></li>
+                        <li><a 
href="http://www.apache.org/foundation/sponsorship.html";>Sponsorship</a></li>
+                        <li><a 
href="http://www.apache.org/foundation/thanks.html";>Thanks</a></li>
+                        <li><a 
href="http://www.apache.org/foundation/sponsorship.html";>Donate</a></li>
+                        <li><a 
href="http://www.apache.org/security/";>Security</a></li>
+                    </ul>
+                </li>
             </ul>
         </div>
+        <!-- /.navbar-collapse -->
+    </nav>
 
-        <div id="content">
 
-                            <p>TODO</p>
+            <p>TODO</p>
 
 <h2><a name="Lendahandwithdocumentation"></a>Lend a hand with documentation 
</h2>
 
@@ -110,27 +196,23 @@
 <p>The easiest way to contribute your documentation is to send it to the <a 
class="external-link" href="http://shiro-user.582556.n2.nabble.com/"; 
rel="nofollow">User Forum</a> or the <a href="mailing-lists.html" 
title="Mailing Lists">User Mailing List</a>.</p>
 <input type="hidden" id="ghEditPage" value="authenticator.html.vtl"></input>
 
-            
-        </div>
+    
+</div>
 
-    </div><!--END WRAPPER-->
-
-    <div id="footer">
+    <div class="footer-padding"></div>
+    <footer class="custom-footer">
 
         <div class="wrapper">
 
             <a 
href="http://www.apache.org/foundation/contributing.html";>Donate to the ASF</a> 
|
             <a 
href="http://www.apache.org/licenses/LICENSE-2.0.html";>License</a>
             <p>Copyright &copy; 2008-2016 The Apache Software Foundation</p>
-
-            <div class="editThisPage">
-            </div>
-
+            <div class="editThisPage"></div>
             <div class="footer-shield"></div>
 
         </div> <!--END FOOTER WRAPPER-->
 
-    </div> <!--END FOOTER-->
+    </footer> <!--END FOOTER-->
 
 </body>
 </html>

Modified: shiro/site/publish/authorization-features.html
URL: 
http://svn.apache.org/viewvc/shiro/site/publish/authorization-features.html?rev=1766556&r1=1766555&r2=1766556&view=diff
==============================================================================
--- shiro/site/publish/authorization-features.html (original)
+++ shiro/site/publish/authorization-features.html Tue Oct 25 16:48:27 2016
@@ -35,6 +35,7 @@
 
 
 <head>
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
     <meta name="description" content="Apache Shiro is a powerful and 
easy-to-use Java security framework that performs authentication, 
authorization, cryptography, and session management.">
     <meta name="google-site-verification" 
content="QIax6uT5UX3enoU0G8Pz2pXbQ45KaQuHZ3nCh9V27mw">
@@ -50,29 +51,44 @@
     <link rel="icon" type="image/vnd.microsoft.icon" 
href="./assets/images/favicon.ico">
     <link rel="stylesheet" type="text/css" 
href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.3/css/font-awesome.min.css";>
 
-    <link rel="stylesheet" type="text/css" href="./assets/css/normalize.css">
-    <link rel="stylesheet" type="text/css" href="./assets/css/confluence.css" 
media="screen">
+    <!-- site styles and  -->
     <link rel="stylesheet" type="text/css" href="./assets/css/style.css">
+    <script type="text/javascript" src="./assets/js/shiro-site.js"></script>
 
+    <!-- github ribbon -->
     <link rel="stylesheet" href="./assets/css/gh-pages/gh-fork-ribbon.css" />
     <!--[if lt IE 9]>
       <link rel="stylesheet" 
href="./assets/css/gh-pages/gh-fork-ribbon.ie.css" />
     <![endif]-->
 
+    <script src="https://code.jquery.com/jquery-3.1.1.min.js"; 
integrity="sha256-hVVnYaiADRTO2PzUGmuLJr8BLUSjGIZsDYGmIJLv2b8=" 
crossorigin="anonymous"></script>
+
+    <!-- bootstrap -->
+    <link rel="stylesheet" href="./assets/bootstrap/css/bootstrap.min.css">
+    <link rel="stylesheet" 
href="./assets/bootstrap/css/bootstrap-theme.min.css">
+    <script src="./assets/bootstrap/js/bootstrap.min.js"></script>
+
+
+    <!-- Google Analytics -->
+    <script>
+    
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+                (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new 
Date();a=s.createElement(o),
+            
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+    
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
+
+    ga('create', 'UA-XXXXX-Y', 'auto');
+    ga('send', 'pageview');
+    </script>
+    <!-- End Google Analytics -->
+
+
+
     <!-- syntax highlighting -->
     <link rel="stylesheet" 
href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.7.0/styles/default.min.css";
 integrity="sha256-Zd1icfZ72UBmsId/mUcagrmN7IN5Qkrvh75ICHIQVTk=" 
crossorigin="anonymous" />
     <script type="text/javascript" 
src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.7.0/highlight.min.js";
 integrity="sha256-s63qpgPYoQk+wv3U6WZqioVJrwFNBTgD4dkeegLuwvo=" 
crossorigin="anonymous"></script>
-
-    <script type="text/javascript" src="./assets/js/shiro-site.js"></script>
-    <script type="text/javascript" 
src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js";></script>
-    <script type="text/javascript" 
src="./assets/js/jquery_googleanalytics/jquery.google-analytics.js"></script>
     <script>hljs.initHighlightingOnLoad();</script>
+
     <script type="text/javascript">
-        // initialize plugins
-        jQuery(function() {
-            //Google Analytics
-            jQuery.trackPage('UA-11551827-1');
-        });
 
         $( document ).ready(function() {
             addPageEditLink();
@@ -81,27 +97,97 @@
 </head>
 
 <body>
-    <a class="github-fork-ribbon right-top" 
href="https://github.com/apache/shiro"; title="Fork me on GitHub">Fork me on 
GitHub</a>
 
     <div id="top-bar"></div>
 
-    <div class="wrapper">
+    <div class="container" style="max-width: 1200px;">
+
+    <a class="github-fork-ribbon right-top" 
href="https://github.com/apache/shiro"; title="Fork me on GitHub">Fork me on 
GitHub</a>
+
+
 
-        <div id="header">
-            <a href="./index.html"><div id="logo"></div></a>
-            <ul class="navigation">
+    <div class="masthead">
+        <p class="lead">
+            <a href="./index.html">
+                <img src="./assets/images/apache-shiro-logo.png" 
style="height:100px; width:auto; vertical-align: bottom; margin-top: 20px;">
+            </a>
+            <span class="tagline">Simple. Java. Security.</span>
+        </p>
+    </div>
+
+
+
+    <nav class="navbar navbar-default" role="navigation">
+        <!-- Brand and toggle get grouped for better mobile display -->
+        <div class="navbar-header">
+            <button type="button" class="navbar-toggle" data-toggle="collapse"
+                    data-target="#navbar-collapse-1">
+                <span class="sr-only">Toggle navigation</span>
+                <span class="icon-bar"></span>
+                <span class="icon-bar"></span>
+                <span class="icon-bar"></span>
+            </button>
+        </div>
+
+        <!-- Collect the nav links, forms, and other content for toggling -->
+        <div class="collapse navbar-collapse" id="navbar-collapse-1">
+            <ul class="nav navbar-nav">
                 <li><a href="./get-started.html">Get Started</a></li>
                 <li><a href="./documentation.html">Docs</a></li>
                 <li><a href="./web-features.html">Web Apps</a></li>
-                <li><a href="./integration.html">Integrations</a></li>
+
+                <li class="dropdown">
+                    <a href="#" class="dropdown-toggle" data-toggle="dropdown">
+                        Integrations <b class="caret"></b>
+                    </a>
+
+                    <ul class="dropdown-menu">
+                        <li><a href="./spring.html">Spring</a></li>
+                        <li><a href="./guice.html">Guice</a></li>
+                        <li class="divider"></li>
+                        <li><a href="./integration.html">Third-Party 
Integrations</a></li>
+                    </ul>
+                </li>
+
                 <li><a href="./features.html">Features</a></li>
-                <li><a href="./community.html">Community</a></li>
+
+                <li class="dropdown">
+                    <a href="#" class="dropdown-toggle" data-toggle="dropdown">
+                        Community <b class="caret"></b>
+                    </a>
+                    <ul class="dropdown-menu">
+                        <li><a href="./forums.html">Community Forums</a></li>
+                        <li><a href="./mailing-lists.html">Mailing 
Lists</a></li>
+                        <li><a href="./articles.html">Articles</a></li>
+                        <li><a href="./news.html">News</a></li>
+                        <li><a href="./events.html">Events</a></li>
+                        <li class="divider"></li>
+                        <li><a href="./community.html">More</a></li>
+                    </ul>
+                </li>
+
+            </ul>
+
+            <ul class="nav navbar-nav navbar-right">
+                <li class="dropdown">
+                    <a href="http://www.apache.org/"; class="dropdown-toggle" 
data-toggle="dropdown">
+                        Apache Software Foundation <b class="caret"></b></a>
+                    <ul class="dropdown-menu">
+                        <li><a href="http://www.apache.org/";>Apache 
Homepage</a></li>
+                        <li><a 
href="http://www.apache.org/licenses/";>License</a></li>
+                        <li><a 
href="http://www.apache.org/foundation/sponsorship.html";>Sponsorship</a></li>
+                        <li><a 
href="http://www.apache.org/foundation/thanks.html";>Thanks</a></li>
+                        <li><a 
href="http://www.apache.org/foundation/sponsorship.html";>Donate</a></li>
+                        <li><a 
href="http://www.apache.org/security/";>Security</a></li>
+                    </ul>
+                </li>
             </ul>
         </div>
+        <!-- /.navbar-collapse -->
+    </nav>
 
-        <div id="content">
 
-                            
+            
 
 <!-- spacer allows enough room to display the header -->
 <div id="spacer" style="width: 0; height: 200px; float: left"></div>
@@ -137,27 +223,23 @@
   <p><strong>Pluggable data sources</strong> - Shiro uses pluggable data 
access objects, referred to as Realms, to connect to security data sources 
where you keep your access control information, like a LDAP or a relational 
database. To help you avoid building and maintaining integrations yourself, 
Shiro provides out-of-the-box realms for popular data sources like LDAP, Active 
Directory, Kerboros, and JDBC. If needed, you can also create your own realms 
to support specific functionality not included in the basic realms.</p></li>
   <li>
   <p><strong>Supports any data model</strong> - Shiro can support any data 
model for access control&ndash; it doesn&rsquo;t force a model on you. Your 
realm implementation ultimately decides how your permissions and roles are 
grouped together and whether to return a &ldquo;yes&rdquo; or a 
&ldquo;no&rdquo; answer to Shiro. This feature allows you to architect your 
application in the manner you chose and Shiro will bend to support 
you.<br/><input type="hidden" id="ghEditPage" 
value="authorization-features.md"></input></p></li>
-</ul>            
-        </div>
+</ul>    
+</div>
 
-    </div><!--END WRAPPER-->
-
-    <div id="footer">
+    <div class="footer-padding"></div>
+    <footer class="custom-footer">
 
         <div class="wrapper">
 
             <a 
href="http://www.apache.org/foundation/contributing.html";>Donate to the ASF</a> 
|
             <a 
href="http://www.apache.org/licenses/LICENSE-2.0.html";>License</a>
             <p>Copyright &copy; 2008-2016 The Apache Software Foundation</p>
-
-            <div class="editThisPage">
-            </div>
-
+            <div class="editThisPage"></div>
             <div class="footer-shield"></div>
 
         </div> <!--END FOOTER WRAPPER-->
 
-    </div> <!--END FOOTER-->
+    </footer> <!--END FOOTER-->
 
 </body>
 </html>

Modified: shiro/site/publish/authorization.html
URL: 
http://svn.apache.org/viewvc/shiro/site/publish/authorization.html?rev=1766556&r1=1766555&r2=1766556&view=diff
==============================================================================
--- shiro/site/publish/authorization.html (original)
+++ shiro/site/publish/authorization.html Tue Oct 25 16:48:27 2016
@@ -35,6 +35,7 @@
 
 
 <head>
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
     <meta name="description" content="Apache Shiro is a powerful and 
easy-to-use Java security framework that performs authentication, 
authorization, cryptography, and session management.">
     <meta name="google-site-verification" 
content="QIax6uT5UX3enoU0G8Pz2pXbQ45KaQuHZ3nCh9V27mw">
@@ -50,29 +51,44 @@
     <link rel="icon" type="image/vnd.microsoft.icon" 
href="./assets/images/favicon.ico">
     <link rel="stylesheet" type="text/css" 
href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.3/css/font-awesome.min.css";>
 
-    <link rel="stylesheet" type="text/css" href="./assets/css/normalize.css">
-    <link rel="stylesheet" type="text/css" href="./assets/css/confluence.css" 
media="screen">
+    <!-- site styles and  -->
     <link rel="stylesheet" type="text/css" href="./assets/css/style.css">
+    <script type="text/javascript" src="./assets/js/shiro-site.js"></script>
 
+    <!-- github ribbon -->
     <link rel="stylesheet" href="./assets/css/gh-pages/gh-fork-ribbon.css" />
     <!--[if lt IE 9]>
       <link rel="stylesheet" 
href="./assets/css/gh-pages/gh-fork-ribbon.ie.css" />
     <![endif]-->
 
+    <script src="https://code.jquery.com/jquery-3.1.1.min.js"; 
integrity="sha256-hVVnYaiADRTO2PzUGmuLJr8BLUSjGIZsDYGmIJLv2b8=" 
crossorigin="anonymous"></script>
+
+    <!-- bootstrap -->
+    <link rel="stylesheet" href="./assets/bootstrap/css/bootstrap.min.css">
+    <link rel="stylesheet" 
href="./assets/bootstrap/css/bootstrap-theme.min.css">
+    <script src="./assets/bootstrap/js/bootstrap.min.js"></script>
+
+
+    <!-- Google Analytics -->
+    <script>
+    
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+                (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new 
Date();a=s.createElement(o),
+            
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+    
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
+
+    ga('create', 'UA-XXXXX-Y', 'auto');
+    ga('send', 'pageview');
+    </script>
+    <!-- End Google Analytics -->
+
+
+
     <!-- syntax highlighting -->
     <link rel="stylesheet" 
href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.7.0/styles/default.min.css";
 integrity="sha256-Zd1icfZ72UBmsId/mUcagrmN7IN5Qkrvh75ICHIQVTk=" 
crossorigin="anonymous" />
     <script type="text/javascript" 
src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.7.0/highlight.min.js";
 integrity="sha256-s63qpgPYoQk+wv3U6WZqioVJrwFNBTgD4dkeegLuwvo=" 
crossorigin="anonymous"></script>
-
-    <script type="text/javascript" src="./assets/js/shiro-site.js"></script>
-    <script type="text/javascript" 
src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js";></script>
-    <script type="text/javascript" 
src="./assets/js/jquery_googleanalytics/jquery.google-analytics.js"></script>
     <script>hljs.initHighlightingOnLoad();</script>
+
     <script type="text/javascript">
-        // initialize plugins
-        jQuery(function() {
-            //Google Analytics
-            jQuery.trackPage('UA-11551827-1');
-        });
 
         $( document ).ready(function() {
             addPageEditLink();
@@ -81,27 +97,97 @@
 </head>
 
 <body>
-    <a class="github-fork-ribbon right-top" 
href="https://github.com/apache/shiro"; title="Fork me on GitHub">Fork me on 
GitHub</a>
 
     <div id="top-bar"></div>
 
-    <div class="wrapper">
+    <div class="container" style="max-width: 1200px;">
+
+    <a class="github-fork-ribbon right-top" 
href="https://github.com/apache/shiro"; title="Fork me on GitHub">Fork me on 
GitHub</a>
+
+
 
-        <div id="header">
-            <a href="./index.html"><div id="logo"></div></a>
-            <ul class="navigation">
+    <div class="masthead">
+        <p class="lead">
+            <a href="./index.html">
+                <img src="./assets/images/apache-shiro-logo.png" 
style="height:100px; width:auto; vertical-align: bottom; margin-top: 20px;">
+            </a>
+            <span class="tagline">Simple. Java. Security.</span>
+        </p>
+    </div>
+
+
+
+    <nav class="navbar navbar-default" role="navigation">
+        <!-- Brand and toggle get grouped for better mobile display -->
+        <div class="navbar-header">
+            <button type="button" class="navbar-toggle" data-toggle="collapse"
+                    data-target="#navbar-collapse-1">
+                <span class="sr-only">Toggle navigation</span>
+                <span class="icon-bar"></span>
+                <span class="icon-bar"></span>
+                <span class="icon-bar"></span>
+            </button>
+        </div>
+
+        <!-- Collect the nav links, forms, and other content for toggling -->
+        <div class="collapse navbar-collapse" id="navbar-collapse-1">
+            <ul class="nav navbar-nav">
                 <li><a href="./get-started.html">Get Started</a></li>
                 <li><a href="./documentation.html">Docs</a></li>
                 <li><a href="./web-features.html">Web Apps</a></li>
-                <li><a href="./integration.html">Integrations</a></li>
+
+                <li class="dropdown">
+                    <a href="#" class="dropdown-toggle" data-toggle="dropdown">
+                        Integrations <b class="caret"></b>
+                    </a>
+
+                    <ul class="dropdown-menu">
+                        <li><a href="./spring.html">Spring</a></li>
+                        <li><a href="./guice.html">Guice</a></li>
+                        <li class="divider"></li>
+                        <li><a href="./integration.html">Third-Party 
Integrations</a></li>
+                    </ul>
+                </li>
+
                 <li><a href="./features.html">Features</a></li>
-                <li><a href="./community.html">Community</a></li>
+
+                <li class="dropdown">
+                    <a href="#" class="dropdown-toggle" data-toggle="dropdown">
+                        Community <b class="caret"></b>
+                    </a>
+                    <ul class="dropdown-menu">
+                        <li><a href="./forums.html">Community Forums</a></li>
+                        <li><a href="./mailing-lists.html">Mailing 
Lists</a></li>
+                        <li><a href="./articles.html">Articles</a></li>
+                        <li><a href="./news.html">News</a></li>
+                        <li><a href="./events.html">Events</a></li>
+                        <li class="divider"></li>
+                        <li><a href="./community.html">More</a></li>
+                    </ul>
+                </li>
+
+            </ul>
+
+            <ul class="nav navbar-nav navbar-right">
+                <li class="dropdown">
+                    <a href="http://www.apache.org/"; class="dropdown-toggle" 
data-toggle="dropdown">
+                        Apache Software Foundation <b class="caret"></b></a>
+                    <ul class="dropdown-menu">
+                        <li><a href="http://www.apache.org/";>Apache 
Homepage</a></li>
+                        <li><a 
href="http://www.apache.org/licenses/";>License</a></li>
+                        <li><a 
href="http://www.apache.org/foundation/sponsorship.html";>Sponsorship</a></li>
+                        <li><a 
href="http://www.apache.org/foundation/thanks.html";>Thanks</a></li>
+                        <li><a 
href="http://www.apache.org/foundation/sponsorship.html";>Donate</a></li>
+                        <li><a 
href="http://www.apache.org/security/";>Security</a></li>
+                    </ul>
+                </li>
             </ul>
         </div>
+        <!-- /.navbar-collapse -->
+    </nav>
 
-        <div id="content">
 
-                            <!-- Work around for table styling until, all 
pages are updated. -->
+            <!-- Work around for table styling until, all pages are updated. 
-->
 <style>
 
     table, th, td {
@@ -212,28 +298,10 @@
 </ul>
 <p>Most resources will support the typical CRUD (create, read, update, delete) 
actions, but any action that makes sense for a particular resource type is ok. 
The fundamental idea is that permission statements at a minimum are based on 
<em>Resources</em> and <em>Actions</em>.</p>
 <p>When looking at permissions, probably the most important thing to realize 
is that permission statements have no representation of <em>who</em> can 
perform the represented behavior. They are only statements of <em>what</em> can 
be done in an application.</p>
-<div class="panelMacro">
-    <table class="infoMacro">
-        <colgroup span="1">
-            <col span="1" width="24">
-            <col span="1">
-        </colgroup>
-
-
-        <tbody>
-        <tr>
-            <td colspan="1" rowspan="1" valign="top">
-                <i class="fa fa-info-circle"></i>
-            </td>
-
-            <td colspan="1" rowspan="1">
-                <b>Permissions represent behavior only</b>
-                <br clear="none">
-                Permission statements reflect behavior (actions associated 
with resource types) <em>only</em>.  They do not reflect <em>who</em> is able 
to perform such behavior.
-            </td>
-        </tr>
-        </tbody>
-    </table>
+<div class="alert alert-info">
+    <span class="glyphicon glyphicon-info-sign"></span> <strong>Permissions 
represent behavior only</strong>
+    <hr class="message-inner-separator">
+    <p>Permission statements reflect behavior (actions associated with 
resource types) <em>only</em>.  They do not reflect <em>who</em> is able to 
perform such behavior.</p>
 </div>
 <p>Defining <em>who</em> (users) is allowed to do <em>what</em> (permissions) 
is an exercise of assigning permissions to users in some way. This is always 
done by the application&rsquo;s data model and can vary greatly across 
applications.</p>
 <p>For example, permissions can be grouped in a Role and that Role could be 
associated with one or more User objects. Or some applications can have a Group 
of users and a Group can be assigned a Role, which by transitive association 
would mean that all the Users in that Group are implicitly granted the 
permissions in the Role.</p>
@@ -250,52 +318,22 @@
 <ul>
   <li><strong>Implicit Roles</strong>: Most people use roles as an 
<em>implicit</em> construct: where your application <em>implies</em> a set of 
behaviors (i.e. permissions) based on a role name only. With implicit roles, 
there is nothing at the software level that says &ldquo;role X is allowed to 
perform behavior A, B and C&rdquo;. Behavior is implied by a name alone.</li>
 </ul>
-<div class="panelMacro">
-    <table class="noteMacro">
-        <colgroup span="1">
-            <col span="1" width="24">
-            <col span="1">
-        </colgroup>
-        <tbody>
-        <tr>
-            <td colspan="1" rowspan="1" valign="top">
-                <i class="fa fa-warning"></i>
-            </td>
-
-            <td colspan="1" rowspan="1">
-                <b>Potentially Brittle Security</b>
-                <br clear="none">
-                While the simpler and most common approach, implicit roles 
potentially impose a lot of software maintenance and management problems.
+<div class="alert alert-warning">
+    <span class="glyphicon glyphicon-warning-sign"></span> <strong>Potentially 
Brittle Security</strong>
+    <hr class="message-inner-separator">
+    <p>While the simpler and most common approach, implicit roles potentially 
impose a lot of software maintenance and management problems.
 
 <p>For example, what if you just want to add or remove a role, or redefine a 
role's behavior later?  You'll have to go back into your source code and change 
all your role checks to reflect the change in your security model, every time 
such a change is required!  Not to mention the operational costs this would 
incur (re-test, go through QA, shut down the app, upgrade the software with the 
new role checks, restart the app, etc).</p>
-<p>This is probably ok for very simple applications (e.g. maybe there is an 
'admin' role and 'everyone else').  But for more complicated or configurable 
applications, this can be a major major problem throughout the life of your 
application and drive a large maintenance cost for your software.</p>
-            </td>
-        </tr>
-        </tbody>
-    </table>
+<p>This is probably ok for very simple applications (e.g. maybe there is an 
'admin' role and 'everyone else').  But for more complicated or configurable 
applications, this can be a major major problem throughout the life of your 
application and drive a large maintenance cost for your software.</p></p>
 </div>
 <ul>
   <li><strong>Excplict Roles</strong>: An explicit role however is essentially 
a named collection of actual permission statements. In this form, the 
application (and Shiro) knows <em>exactly</em> what it means to have a 
particular role or not. Because it is known the <em>exact</em> behavior that 
can be performed or not, there is no guessing or implying what a particular 
role can or can not do.</li>
 </ul>
 <p>The Shiro team advocates using permissions and explicit roles instead of 
the older implicit approach. You will have much greater control over your 
application&rsquo;s security experience.</p>
-<div class="panelMacro">
-    <table class="tipMacro">
-        <colgroup span="1">
-            <col span="1" width="24">
-            <col span="1">
-        </colgroup>
-        <tbody><tr>
-            <td colspan="1" rowspan="1" valign="top">
-                <i class="fa fa-check-square-o"></i>
-            </td>
-            <td colspan="1" rowspan="1">
-                <b>Resource-Based Access Control</b>
-                <br clear="none">
-                Be sure to read Les Hazlewood's article, <a 
class="external-link" 
href="https://stormpath.com/blog/new-rbac-resource-based-access-control"; 
rel="nofollow">The New RBAC: Resource-Based Access Control</a>, which covers 
in-depth the benefits of using permissions and explicit roles (and their 
positive impact on source code) instead of the older implicit role approach.
-            </td>
-        </tr>
-        </tbody>
-    </table>
+<div class="alert alert-success">
+    <span class="glyphicon glyphicon-ok"></span> <strong>Resource-Based Access 
Control</strong>
+    <hr class="message-inner-separator">
+    <p>Be sure to read Les Hazlewood's article, <a class="external-link" 
href="https://stormpath.com/blog/new-rbac-resource-based-access-control"; 
rel="nofollow">The New RBAC: Resource-Based Access Control</a>, which covers 
in-depth the benefits of using permissions and explicit roles (and their 
positive impact on source code) instead of the older implicit role approach.</p>
 </div>
 <a name="Authorization-Users"></a>
 <h3><a href="#users" name="users">Users</a></h3>
@@ -303,28 +341,10 @@
 <p>Users (Subjects) are allowed to perform certain actions in your application 
through their association with roles or direct permissions. Your 
application&rsquo;s data model defines exactly how a <code>Subject</code> is 
allowed to do something or not.</p>
 <p>For example, in your data model, perhaps you have an actual 
<code>User</code> class and you assign permissions directly to 
<code>User</code> instances. Or maybe you assign permissions only to 
<code>Roles</code> directly, and then assign Roles to <code>Users</code>, so by 
association, <code>Users</code> transitively &lsquo;have&rsquo; the permissions 
assigned to their roles. Or you could represent these things with a 
&lsquo;Group&rsquo; concept. It is up to you - use what makes sense for your 
application.</p>
 <p>Your data model defines exactly how authorization will function. Shiro 
relies on a <a href="realm.html" title="Realm">Realm</a> implementation to 
translate your data model association details into a format Shiro understands. 
We&rsquo;ll cover how Realms do this a little later.</p>
-<div class="panelMacro">
-    <table class="infoMacro">
-        <colgroup span="1">
-            <col span="1" width="24">
-            <col span="1">
-        </colgroup>
-
-
-        <tbody>
-        <tr>
-            <td colspan="1" rowspan="1" valign="top">
-                <i class="fa fa-info-circle"></i>
-            </td>
-
-            <td colspan="1" rowspan="1">
-                <b>Note</b>
-                <br clear="none">
-                Ultimately, your <a href="realm.html" title="Realm">Realm</a> 
implementation is what communicates with your data source (RDBMS, LDAP, etc). 
So your realm is what will tell Shiro whether or not roles or permissions 
exist. You have full control over how your authorization model is structured 
and defined.
-            </td>
-        </tr>
-        </tbody>
-    </table>
+<div class="alert alert-info">
+    <span class="glyphicon glyphicon-info-sign"></span> <strong>Note</strong>
+    <hr class="message-inner-separator">
+    <p>Ultimately, your <a href="realm.html" title="Realm">Realm</a> 
implementation is what communicates with your data source (RDBMS, LDAP, etc). 
So your realm is what will tell Shiro whether or not roles or permissions 
exist. You have full control over how your authorization model is structured 
and defined.</p>
 </div>
 <a name="Authorization-AuthorizingSubjects"></a>
 <h2><a href="#authorizing-subjects" name="authorizing-subjects">Authorizing 
Subjects</a></h2>
@@ -727,26 +747,10 @@ public void updateAccount(Account accoun
 securityManager.authorizer.permissionResolver = $globalPermissionResolver
 ...
 </code></pre>
-<div class="panelMacro">
-    <table class="noteMacro">
-        <colgroup span="1">
-            <col span="1" width="24">
-            <col span="1">
-        </colgroup>
-        <tbody>
-        <tr>
-            <td colspan="1" rowspan="1" valign="top">
-                <i class="fa fa-warning"></i>
-            </td>
-
-            <td colspan="1" rowspan="1">
-                <b>PermissionResolverAware</b>
-                <br clear="none">
-                If you want to configure a global 
<code>PermissionResolver</code>, each <code>Realm</code> that is to receive the 
configured <code>PermissionResolver</code> <b><em>must</em></b> implement the 
<a class="external-link" 
href="static/current/apidocs/src-html/org/apache/shiro/authz/permission/PermissionResolverAware.html"><code>PermisionResolverAware</code></a>
 interface.  This guarantees that the configured instance can be relayed to 
each <code>Realm</code> that supports such configuration.
-            </td>
-        </tr>
-        </tbody>
-    </table>
+<div class="alert alert-warning">
+    <span class="glyphicon glyphicon-warning-sign"></span> 
<strong>PermissionResolverAware</strong>
+    <hr class="message-inner-separator">
+    <p>If you want to configure a global <code>PermissionResolver</code>, each 
<code>Realm</code> that is to receive the configured 
<code>PermissionResolver</code> <b><em>must</em></b> implement the <a 
class="external-link" 
href="static/current/apidocs/src-html/org/apache/shiro/authz/permission/PermissionResolverAware.html"><code>PermisionResolverAware</code></a>
 interface.  This guarantees that the configured instance can be relayed to 
each <code>Realm</code> that supports such configuration.</p>
 </div>
 <p>If you don&rsquo;t want to use a global <code>PermissionResolver</code> or 
you don&rsquo;t want to be bothered with the 
<code>PermissionResolverAware</code> interface, you can always configure a 
realm with a <code>PermissionResolver</code> instance explicitly (assuming 
there is a JavaBeans-compatible setPermissionResolver method):</p>
 <pre><code class="java">permissionResolver = 
com.foo.bar.authz.MyPermissionResolver
@@ -770,26 +774,10 @@ realm.permissionResolver = $permissionRe
 securityManager.authorizer.rolePermissionResolver = 
$globalRolePermissionResolver
 ...
 </code></pre>
-<div class="panelMacro">
-    <table class="noteMacro">
-        <colgroup span="1">
-            <col span="1" width="24">
-            <col span="1">
-        </colgroup>
-        <tbody>
-        <tr>
-            <td colspan="1" rowspan="1" valign="top">
-                <i class="fa fa-warning"></i>
-            </td>
-
-            <td colspan="1" rowspan="1">
-                <b>RolePermissionResolverAware</b>
-                <br clear="none">
-                If you want to configure a global 
<code>RolePermissionResolver</code>, each <code>Realm</code> that is to receive 
the configured <code>RolePermissionResolver</code> <b><em>must</em></b> 
implement the <a class="external-link" 
href="static/current/apidocs/org/apache/shiro/authz/permission/RolePermissionResolverAware.html"><code>RolePermisionResolverAware</code></a>
 interface.  This guarantees that the configured global 
<code>RolePermissionResolver</code> instance can be relayed to each 
<code>Realm</code> that supports such configuration.
-            </td>
-        </tr>
-        </tbody>
-    </table>
+<div class="alert alert-warning">
+    <span class="glyphicon glyphicon-warning-sign"></span> 
<strong>RolePermissionResolverAware</strong>
+    <hr class="message-inner-separator">
+    <p>If you want to configure a global <code>RolePermissionResolver</code>, 
each <code>Realm</code> that is to receive the configured 
<code>RolePermissionResolver</code> <b><em>must</em></b> implement the <a 
class="external-link" 
href="static/current/apidocs/org/apache/shiro/authz/permission/RolePermissionResolverAware.html"><code>RolePermisionResolverAware</code></a>
 interface.  This guarantees that the configured global 
<code>RolePermissionResolver</code> instance can be relayed to each 
<code>Realm</code> that supports such configuration.</p>
 </div>
 <p>If you don&rsquo;t want to use a global <code>RolePermissionResolver</code> 
or you don&rsquo;t want to be bothered with the 
<code>RolePermissionResolverAware</code> interface, you can always configure a 
realm with a <code>RolePermissionResolver</code> instance explicitly (assuming 
there is a JavaBeans-compatible setRolePermissionResolver method):</p>
 <pre><code class="ini">rolePermissionResolver = 
com.foo.bar.authz.MyRolePermissionResolver
@@ -809,27 +797,23 @@ authorizer = com.foo.bar.authz.CustomAut
 securityManager.authorizer = $authorizer
 </code></pre>
 <input type="hidden" id="ghEditPage" value="authorization.md.vtl"></input>
-            
-        </div>
-
-    </div><!--END WRAPPER-->
+    
+</div>
 
-    <div id="footer">
+    <div class="footer-padding"></div>
+    <footer class="custom-footer">
 
         <div class="wrapper">
 
             <a 
href="http://www.apache.org/foundation/contributing.html";>Donate to the ASF</a> 
|
             <a 
href="http://www.apache.org/licenses/LICENSE-2.0.html";>License</a>
             <p>Copyright &copy; 2008-2016 The Apache Software Foundation</p>
-
-            <div class="editThisPage">
-            </div>
-
+            <div class="editThisPage"></div>
             <div class="footer-shield"></div>
 
         </div> <!--END FOOTER WRAPPER-->
 
-    </div> <!--END FOOTER-->
+    </footer> <!--END FOOTER-->
 
 </body>
 </html>

Modified: shiro/site/publish/authorizer.html
URL: 
http://svn.apache.org/viewvc/shiro/site/publish/authorizer.html?rev=1766556&r1=1766555&r2=1766556&view=diff
==============================================================================
--- shiro/site/publish/authorizer.html (original)
+++ shiro/site/publish/authorizer.html Tue Oct 25 16:48:27 2016
@@ -35,6 +35,7 @@
 
 
 <head>
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
     <meta name="description" content="Apache Shiro is a powerful and 
easy-to-use Java security framework that performs authentication, 
authorization, cryptography, and session management.">
     <meta name="google-site-verification" 
content="QIax6uT5UX3enoU0G8Pz2pXbQ45KaQuHZ3nCh9V27mw">
@@ -50,29 +51,44 @@
     <link rel="icon" type="image/vnd.microsoft.icon" 
href="./assets/images/favicon.ico">
     <link rel="stylesheet" type="text/css" 
href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.3/css/font-awesome.min.css";>
 
-    <link rel="stylesheet" type="text/css" href="./assets/css/normalize.css">
-    <link rel="stylesheet" type="text/css" href="./assets/css/confluence.css" 
media="screen">
+    <!-- site styles and  -->
     <link rel="stylesheet" type="text/css" href="./assets/css/style.css">
+    <script type="text/javascript" src="./assets/js/shiro-site.js"></script>
 
+    <!-- github ribbon -->
     <link rel="stylesheet" href="./assets/css/gh-pages/gh-fork-ribbon.css" />
     <!--[if lt IE 9]>
       <link rel="stylesheet" 
href="./assets/css/gh-pages/gh-fork-ribbon.ie.css" />
     <![endif]-->
 
+    <script src="https://code.jquery.com/jquery-3.1.1.min.js"; 
integrity="sha256-hVVnYaiADRTO2PzUGmuLJr8BLUSjGIZsDYGmIJLv2b8=" 
crossorigin="anonymous"></script>
+
+    <!-- bootstrap -->
+    <link rel="stylesheet" href="./assets/bootstrap/css/bootstrap.min.css">
+    <link rel="stylesheet" 
href="./assets/bootstrap/css/bootstrap-theme.min.css">
+    <script src="./assets/bootstrap/js/bootstrap.min.js"></script>
+
+
+    <!-- Google Analytics -->
+    <script>
+    
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+                (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new 
Date();a=s.createElement(o),
+            
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+    
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
+
+    ga('create', 'UA-XXXXX-Y', 'auto');
+    ga('send', 'pageview');
+    </script>
+    <!-- End Google Analytics -->
+
+
+
     <!-- syntax highlighting -->
     <link rel="stylesheet" 
href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.7.0/styles/default.min.css";
 integrity="sha256-Zd1icfZ72UBmsId/mUcagrmN7IN5Qkrvh75ICHIQVTk=" 
crossorigin="anonymous" />
     <script type="text/javascript" 
src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.7.0/highlight.min.js";
 integrity="sha256-s63qpgPYoQk+wv3U6WZqioVJrwFNBTgD4dkeegLuwvo=" 
crossorigin="anonymous"></script>
-
-    <script type="text/javascript" src="./assets/js/shiro-site.js"></script>
-    <script type="text/javascript" 
src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js";></script>
-    <script type="text/javascript" 
src="./assets/js/jquery_googleanalytics/jquery.google-analytics.js"></script>
     <script>hljs.initHighlightingOnLoad();</script>
+
     <script type="text/javascript">
-        // initialize plugins
-        jQuery(function() {
-            //Google Analytics
-            jQuery.trackPage('UA-11551827-1');
-        });
 
         $( document ).ready(function() {
             addPageEditLink();
@@ -81,27 +97,97 @@
 </head>
 
 <body>
-    <a class="github-fork-ribbon right-top" 
href="https://github.com/apache/shiro"; title="Fork me on GitHub">Fork me on 
GitHub</a>
 
     <div id="top-bar"></div>
 
-    <div class="wrapper">
+    <div class="container" style="max-width: 1200px;">
+
+    <a class="github-fork-ribbon right-top" 
href="https://github.com/apache/shiro"; title="Fork me on GitHub">Fork me on 
GitHub</a>
+
+
 
-        <div id="header">
-            <a href="./index.html"><div id="logo"></div></a>
-            <ul class="navigation">
+    <div class="masthead">
+        <p class="lead">
+            <a href="./index.html">
+                <img src="./assets/images/apache-shiro-logo.png" 
style="height:100px; width:auto; vertical-align: bottom; margin-top: 20px;">
+            </a>
+            <span class="tagline">Simple. Java. Security.</span>
+        </p>
+    </div>
+
+
+
+    <nav class="navbar navbar-default" role="navigation">
+        <!-- Brand and toggle get grouped for better mobile display -->
+        <div class="navbar-header">
+            <button type="button" class="navbar-toggle" data-toggle="collapse"
+                    data-target="#navbar-collapse-1">
+                <span class="sr-only">Toggle navigation</span>
+                <span class="icon-bar"></span>
+                <span class="icon-bar"></span>
+                <span class="icon-bar"></span>
+            </button>
+        </div>
+
+        <!-- Collect the nav links, forms, and other content for toggling -->
+        <div class="collapse navbar-collapse" id="navbar-collapse-1">
+            <ul class="nav navbar-nav">
                 <li><a href="./get-started.html">Get Started</a></li>
                 <li><a href="./documentation.html">Docs</a></li>
                 <li><a href="./web-features.html">Web Apps</a></li>
-                <li><a href="./integration.html">Integrations</a></li>
+
+                <li class="dropdown">
+                    <a href="#" class="dropdown-toggle" data-toggle="dropdown">
+                        Integrations <b class="caret"></b>
+                    </a>
+
+                    <ul class="dropdown-menu">
+                        <li><a href="./spring.html">Spring</a></li>
+                        <li><a href="./guice.html">Guice</a></li>
+                        <li class="divider"></li>
+                        <li><a href="./integration.html">Third-Party 
Integrations</a></li>
+                    </ul>
+                </li>
+
                 <li><a href="./features.html">Features</a></li>
-                <li><a href="./community.html">Community</a></li>
+
+                <li class="dropdown">
+                    <a href="#" class="dropdown-toggle" data-toggle="dropdown">
+                        Community <b class="caret"></b>
+                    </a>
+                    <ul class="dropdown-menu">
+                        <li><a href="./forums.html">Community Forums</a></li>
+                        <li><a href="./mailing-lists.html">Mailing 
Lists</a></li>
+                        <li><a href="./articles.html">Articles</a></li>
+                        <li><a href="./news.html">News</a></li>
+                        <li><a href="./events.html">Events</a></li>
+                        <li class="divider"></li>
+                        <li><a href="./community.html">More</a></li>
+                    </ul>
+                </li>
+
+            </ul>
+
+            <ul class="nav navbar-nav navbar-right">
+                <li class="dropdown">
+                    <a href="http://www.apache.org/"; class="dropdown-toggle" 
data-toggle="dropdown">
+                        Apache Software Foundation <b class="caret"></b></a>
+                    <ul class="dropdown-menu">
+                        <li><a href="http://www.apache.org/";>Apache 
Homepage</a></li>
+                        <li><a 
href="http://www.apache.org/licenses/";>License</a></li>
+                        <li><a 
href="http://www.apache.org/foundation/sponsorship.html";>Sponsorship</a></li>
+                        <li><a 
href="http://www.apache.org/foundation/thanks.html";>Thanks</a></li>
+                        <li><a 
href="http://www.apache.org/foundation/sponsorship.html";>Donate</a></li>
+                        <li><a 
href="http://www.apache.org/security/";>Security</a></li>
+                    </ul>
+                </li>
             </ul>
         </div>
+        <!-- /.navbar-collapse -->
+    </nav>
 
-        <div id="content">
 
-                            <p>TODO</p>
+            <p>TODO</p>
 
 <h2><a name="Lendahandwithdocumentation"></a>Lend a hand with documentation 
</h2>
 
@@ -110,27 +196,23 @@
 <p>The easiest way to contribute your documentation is to send it to the <a 
class="external-link" href="http://shiro-user.582556.n2.nabble.com/"; 
rel="nofollow">User Forum</a> or the <a href="mailing-lists.html" 
title="Mailing Lists">User Mailing List</a>.</p>
 <input type="hidden" id="ghEditPage" value="authorizer.html.vtl"></input>
 
-            
-        </div>
+    
+</div>
 
-    </div><!--END WRAPPER-->
-
-    <div id="footer">
+    <div class="footer-padding"></div>
+    <footer class="custom-footer">
 
         <div class="wrapper">
 
             <a 
href="http://www.apache.org/foundation/contributing.html";>Donate to the ASF</a> 
|
             <a 
href="http://www.apache.org/licenses/LICENSE-2.0.html";>License</a>
             <p>Copyright &copy; 2008-2016 The Apache Software Foundation</p>
-
-            <div class="editThisPage">
-            </div>
-
+            <div class="editThisPage"></div>
             <div class="footer-shield"></div>
 
         </div> <!--END FOOTER WRAPPER-->
 
-    </div> <!--END FOOTER-->
+    </footer> <!--END FOOTER-->
 
 </body>
 </html>


Reply via email to