more html -> markdown

Project: http://git-wip-us.apache.org/repos/asf/shiro-site/repo
Commit: http://git-wip-us.apache.org/repos/asf/shiro-site/commit/c3c8d175
Tree: http://git-wip-us.apache.org/repos/asf/shiro-site/tree/c3c8d175
Diff: http://git-wip-us.apache.org/repos/asf/shiro-site/diff/c3c8d175

Branch: refs/heads/master
Commit: c3c8d175a0893201b52fe9428565ad8e5330fef4
Parents: 761800c
Author: Brian Demers <[email protected]>
Authored: Sun Oct 23 10:38:28 2016 -0500
Committer: Brian Demers <[email protected]>
Committed: Sun Oct 23 10:38:28 2016 -0500

----------------------------------------------------------------------
 10-minute-tutorial.html.vtl   | 307 -------------------------------------
 10-minute-tutorial.md.vtl     | 195 +++++++++++++++++++++++
 articles.html.vtl             |  63 --------
 articles.md                   |  60 ++++++++
 authentication-guide.html.vtl |  12 +-
 documentation.html.vtl        |  59 -------
 documentation.md.vtl          |  45 ++++++
 features-overview.html        |  39 -----
 features-overview.md          |  34 ++++
 9 files changed, 335 insertions(+), 479 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/shiro-site/blob/c3c8d175/10-minute-tutorial.html.vtl
----------------------------------------------------------------------
diff --git a/10-minute-tutorial.html.vtl b/10-minute-tutorial.html.vtl
deleted file mode 100644
index aa8d8b7..0000000
--- a/10-minute-tutorial.html.vtl
+++ /dev/null
@@ -1,307 +0,0 @@
-#parse("templates/includes.vtl")
-
-<h1><a name="10MinuteTutorial-10MinuteTutorialonApacheShiro"></a>10 Minute 
Tutorial on Apache Shiro</h1>
-
-<div class="addthis_toolbox addthis_default_style">
-    <a class="addthis_button_compact" 
href="http://www.addthis.com/bookmark.php?v=250&amp;pubid=ra-4d66ef016022c3bd";>Share</a>
-    <span class="addthis_separator">|</span>
-    <a class="addthis_button_preferred_1"></a>
-    <a class="addthis_button_preferred_2"></a>
-    <a class="addthis_button_preferred_3"></a>
-    <a class="addthis_button_preferred_4"></a>
-</div>
-<script type="text/javascript">var addthis_config = {"data_track_clickback": 
true};</script>
-<script type="text/javascript" 
src="http://s7.addthis.com/js/250/addthis_widget.js#pubid=ra-4d66ef016022c3bd";></script>
-
-
-<h2><a name="10MinuteTutorial-Introduction"></a>Introduction</h2>
-
-<p>Welcome to Apache Shiro's 10 Minute Tutoral! </p>
-
-<p>By going through this quick and simple tutorial you should fully understand 
how a developer uses Shiro in their
-    application. And you should be able to do it in under 10 minutes.</p>
-
-<h2><a name="10MinuteTutorial-Overview"></a>Overview</h2>
-
-<p>What is Apache Shiro?</p>
-
-<p>Apache Shiro is a powerful and easy to use Java security framework that 
offers developers an intuitive yet
-    comprehensive solution to authentication, authorization, cryptography, and 
session management.</p>
-
-<p>In practical terms, it achieves to manage all facets of your application's 
security, while keeping out of the way as
-    much as possible. It is built on sound interface-driven design and OO 
principles, enabling custom behavior wherever
-    you can imagine it. But with sensible defaults for everything, it is as 
"hands off" as application security can be.
-    At least that's what we strive for.</p>
-
-<p>What can Apache Shiro do?</p>
-
-<p>A lot <img align="middle" class="emoticon" 
src="https://cwiki.apache.org/confluence/images/icons/emoticons/smile.png";
-              height="20" width="20" alt="" border="0">. But we don't want to 
bloat the QuickStart. Please check out our
-    <a href="features.html" title="Features">Features</a> page if you'd like 
to see what it can do for you. Also, if
-    you're curious on how we got started and why we exist, please see the <a 
href="what-is-shiro.html"
-                                                                             
title="What is Shiro">Shiro History and
-        Mission</a> page.</p>
-
-<p>Ok. Now let's actually do something!</p>
-
-#info('Note', 'Shiro can be run in any environment, from the simplest command 
line application to the biggest enterprise web and clustered applications, but 
we''ll use the simplest possible example in a simple <tt>main</tt> method for 
this QuickStart so you can get a feel for the API.')
-
-<h2><a name="10MinuteTutorial-Download"></a>Download</h2>
-
-<ol>
-    <li>Ensure you have JDK 1.6+ and Maven 3.0.3+ installed.</li>
-    <li>Download the lastest "Source Code Distribution" from the <a 
href="download.html" title="Download">Download</a>
-        page. In this example, we're using the ${latestRelease} release 
distribution.
-    </li>
-    <li>Unzip the source package:
-        <div class="code panel" style="border-width: 1px;">
-            <div class="codeContent panelContent">
-<pre class="code-java">
-&gt; unzip shiro-root-${latestRelease}-source-release.zip
-</pre>
-            </div>
-        </div>
-    </li>
-    <li>Enter the quickstart directory:
-        <div class="code panel" style="border-width: 1px;">
-            <div class="codeContent panelContent">
-<pre class="code-java">
-&gt; cd shiro-root-${latestRelease}/samples/quickstart
-</pre>
-            </div>
-        </div>
-    </li>
-    <li>Run the QuickStart:
-        <div class="code panel" style="border-width: 1px;">
-            <div class="codeContent panelContent">
-<pre class="code-java">
-&gt; mvn compile exec:java
-</pre>
-            </div>
-        </div>
-        <p>This target will just print out some log messages to let you know 
what is going on and then exit. While
-            reading this quickstart, feel free to look at the code found under 
<tt>samples/quickstart/src/main/java/Quickstart.java</tt>.
-            Change that file and run the above <tt>mvn compile exec:java</tt> 
command as often as you like.</p></li>
-</ol>
-
-
-<h2><a name="10MinuteTutorial-Quickstart.java"></a>Quickstart.java</h2>
-
-<p>The <tt>Quickstart.java</tt> file referenced above contains all the code 
that will get you familiar with the API. Now
-    lets break it down in chunks here so you can easily understand what is 
going on.</p>
-
-<p>In almost all environments, you can obtain the currently executing user via 
the following call:</p>
-
-<p></p>
-
-<div class="code panel" style="border-width: 1px;">
-    <div class="codeContent panelContent">
-<pre class="code-java">
-Subject currentUser = SecurityUtils.getSubject();
-</pre>
-    </div>
-</div>
-
-<p>Using <tt><a class="external-link"
-                
href="static/current/apidocs/org/apache/shiro/SecurityUtils.html">SecurityUtils</a>.<a
-        class="external-link" 
href="static/current/apidocs/org/apache/shiro/SecurityUtils.html#getSubject()">getSubject()</a></tt>,
-    we can obtain the currently executing <tt><a class="external-link"
-                                                 
href="static/current/apidocs/org/apache/shiro/subject/Subject.html">Subject</a></tt>.
-    A <em>Subject</em> is just a security-specific "view" of an application 
User. We actually wanted to call it 'User'
-    since that "just makes sense", but we decided against it: too many 
applications have existing APIs that already have
-    their own User classes/frameworks, and we didn't want to conflict with 
those. Also, in the security world, the term
-    <tt>Subject</tt> is actually the recognized nomenclature. Ok, moving 
on...</p>
-
-<p>The <tt>getSubject()</tt> call in a standalone application might return a 
<tt>Subject</tt> based on user data in an
-    application-specific location, and in a server environment (e.g. web app), 
it acquires the <tt>Subject</tt> based on
-    user data associated with current thread or incoming request.</p>
-
-<p>Now that you have a <tt>Subject</tt>, what can you do with it?</p>
-
-<p>If you want to make things available to the user during their current 
session with the application, you can get their
-    session:</p>
-
-<p></p>
-
-<div class="code panel" style="border-width: 1px;">
-    <div class="codeContent panelContent">
-<pre class="code-java">
-Session session = currentUser.getSession();
-session.setAttribute( <span class="code-quote">"someKey"</span>, <span 
class="code-quote">"aValue"</span> );
-</pre>
-    </div>
-</div>
-
-<p>The <tt>Session</tt> is a Shiro-specific instance that provides most of 
what you're used to with regular HttpSessions
-    but with some extra goodies and one <b>big</b> difference: it does not 
require an HTTP environment!</p>
-
-<p>If deploying inside a web application, by default the <tt>Session</tt> will 
be <tt>HttpSession</tt> based. But, in a
-    non-web environment, like this simple Quickstart, Shiro will automatically 
use its Enterprise Session Management by
-    default. This means you get to use the same API in your applications, in 
any tier, regardless of deployment
-    environment. This opens a whole new world of applications since any 
application requiring sessions does not need to
-    be forced to use the <tt>HttpSession</tt> or EJB Stateful Session Beans. 
And, any client technology can now share
-    session data.</p>
-
-<p>So now you can acquire a <tt>Subject</tt> and their <tt>Session</tt>. What 
about the <em>really</em> useful stuff
-    like checking if they are allowed to do things, like checking against 
roles and permissions?</p>
-
-<p>Well, we can only do those checks for a known user. Our <tt>Subject</tt> 
instance above represents the current user,
-    but <em>who</em> is the current user? Well, they're anonymous - that is, 
until they log in at least once. So, let's
-    do that:</p>
-
-<div class="code panel" style="border-width: 1px;">
-    <div class="codeContent panelContent">
-<pre class="code-java">
-<span class="code-keyword">if</span> ( !currentUser.isAuthenticated() ) {
-    <span class="code-comment">//collect user principals and credentials in a 
gui specific manner 
-</span>    <span class="code-comment">//such as username/password html form, 
X509 certificate, OpenID, etc.
-</span>    <span class="code-comment">//We'll use the username/password 
example here since it is the most common.
-</span>    <span class="code-comment">//(<span class="code-keyword">do</span> 
you know what movie <span
-        class="code-keyword">this</span> is from? ;)
-</span>    UsernamePasswordToken token = <span class="code-keyword">new</span> 
UsernamePasswordToken(<span
-        class="code-quote">"lonestarr"</span>, <span 
class="code-quote">"vespa"</span>);
-    <span class="code-comment">//<span class="code-keyword">this</span> is all 
you have to <span
-            class="code-keyword">do</span> to support 'remember me' (no config 
- built in!):
-</span>    token.setRememberMe(<span class="code-keyword">true</span>);
-    currentUser.login(token);
-}
-</pre>
-    </div>
-</div>
-
-<p>That's it! It couldn't be easier.</p>
-
-<p>But what if their login attempt fails? You can catch all sorts of specific 
exceptions that tell you exactly what
-    happened and allows you to handle and react accordingly:</p>
-
-<div class="code panel" style="border-width: 1px;">
-    <div class="codeContent panelContent">
-<pre class="code-java">
-<span class="code-keyword">try</span> {
-    currentUser.login( token );
-    <span class="code-comment">//<span class="code-keyword">if</span> no 
exception, that's it, we're done!
-</span>} <span class="code-keyword">catch</span> ( UnknownAccountException uae 
) {
-    <span class="code-comment">//username wasn't in the system, show them an 
error message?
-</span>} <span class="code-keyword">catch</span> ( 
IncorrectCredentialsException ice ) {
-    <span class="code-comment">//password didn't match, <span 
class="code-keyword">try</span> again?
-</span>} <span class="code-keyword">catch</span> ( LockedAccountException lae 
) {
-    <span class="code-comment">//account <span class="code-keyword">for</span> 
that username is locked - can't login.  Show them a message?
-</span>} 
-    ... more types exceptions to check <span class="code-keyword">if</span> 
you want ...
-} <span class="code-keyword">catch</span> ( AuthenticationException ae ) {
-    <span class="code-comment">//unexpected condition - error?
-</span>}
-</pre>
-    </div>
-</div>
-
-<p>There are many different types of exceptions you can check, or throw your 
own for custom conditions Shiro might not
-    account for. See the <a class="external-link"
-                            
href="static/current/apidocs/org/apache/shiro/authc/AuthenticationException.html">AuthenticationException
-        JavaDoc</a> for more. </p>
-
-#tip('Handy Hint', 'Security best practice is to give generic login failure 
messages to users because you do not want to aid an attacker trying to break 
into your system.')
-
-<p>Ok, so by now, we have a logged in user. What else can we do?</p>
-
-<p>Let's say who they are:</p>
-
-<p></p>
-
-<div class="code panel" style="border-width: 1px;">
-    <div class="codeContent panelContent">
-<pre class="code-java">
-<span class="code-comment">//print their identifying principal (in <span 
class="code-keyword">this</span> <span
-        class="code-keyword">case</span>, a username):
-</span>log.info( <span class="code-quote">"User ["</span> + 
currentUser.getPrincipal() + <span class="code-quote">"] logged in 
successfully."</span> );
-</pre>
-    </div>
-</div>
-
-<p>We can also test to see if they have specific role or not:</p>
-
-<p></p>
-
-<div class="code panel" style="border-width: 1px;">
-    <div class="codeContent panelContent">
-<pre class="code-java">
-<span class="code-keyword">if</span> ( currentUser.hasRole( <span 
class="code-quote">"schwartz"</span> ) ) {
-    log.info(<span class="code-quote">"May the Schwartz be with you!"</span> );
-} <span class="code-keyword">else</span> {
-    log.info( <span class="code-quote">"Hello, mere mortal."</span> );
-}
-</pre>
-    </div>
-</div>
-
-<p>We can also see if they have a permission to act on a certain type of 
entity:</p>
-
-<p></p>
-
-<div class="code panel" style="border-width: 1px;">
-    <div class="codeContent panelContent">
-<pre class="code-java">
-<span class="code-keyword">if</span> ( currentUser.isPermitted( <span 
class="code-quote">"lightsaber:weild"</span> ) ) {
-    log.info(<span class="code-quote">"You may use a lightsaber ring.  Use it 
wisely."</span>);
-} <span class="code-keyword">else</span> {
-    log.info(<span class="code-quote">"Sorry, lightsaber rings are <span 
class="code-keyword">for</span> schwartz masters only."</span>);
-}
-</pre>
-    </div>
-</div>
-
-<p>Also, we can perform an extremely powerful <em>instance-level</em> 
permission check - the ability to see if the user
-    has the ability to access a specific instance of a type:</p>
-
-<p></p>
-
-<div class="code panel" style="border-width: 1px;">
-    <div class="codeContent panelContent">
-<pre class="code-java">
-<span class="code-keyword">if</span> ( currentUser.isPermitted( <span 
class="code-quote">"winnebago:drive:eagle5"</span> ) ) {
-    log.info(<span
-        class="code-quote">"You are permitted to 'drive' the 'winnebago' with 
license plate (id) 'eagle5'.  "</span> +
-                <span class="code-quote">"Here are the keys - have 
fun!"</span>);
-} <span class="code-keyword">else</span> {
-    log.info(<span class="code-quote">"Sorry, you aren't allowed to drive the 
'eagle5' winnebago!"</span>);
-}
-</pre>
-    </div>
-</div>
-
-<p>Piece of cake, right?</p>
-
-<p>Finally, when the user is done using the application, they can log out:</p>
-
-<p></p>
-
-<div class="code panel" style="border-width: 1px;">
-    <div class="codeContent panelContent">
-<pre class="code-java">
-currentUser.logout(); <span class="code-comment">//removes all identifying 
information and invalidates their session too.</span>
-</pre>
-    </div>
-</div>
-
-<p>Well, that's the core to using Apache Shiro at the application-developer 
level. And although there is some pretty
-    sophisticated stuff going on under the hood to make this work so 
elegantly, that's really all there is to it.</p>
-
-<p>But you might ask yourself, "But who is responsible for getting the user 
data during a login (usernames and
-    passwords, role and permissions, etc), and who actually performs those 
security checks during runtime?" Well, you
-    do, by implementing what Shiro calls a <a href="realm.html" 
title="Realm">Realm</a> and plugging that <tt>Realm</tt>
-    into Shiro's configuration. </p>
-
-<p>However, how you configure a <a href="realm.html" title="Realm">Realm</a> 
is largely dependent upon your runtime
-    environment. For example, if you run a standalone application, or if you 
have a web based application, or a Spring
-    or JEE container-based application, or combination thereof. That type of 
configuration is outside the scope of this
-    QuickStart, since its aim is to get you comfortable with the API and 
Shiro's concepts.</p>
-
-<p>When you're ready to jump in with a little more detail, you'll definitely 
want to read the <a
-        href="java-authentication-guide.html" title="Java Authentication 
Guide">Authentication Guide</a> and <a
-        href="java-authorization-guide.html" title="Java Authorization 
Guide">Authorization Guide</a>. Then can move
-    onto other <a href="documentation.html" 
title="Documentation">Documentation</a>, in particularly the <a
-            href="reference.html" title="Reference">Reference Manual</a>, to 
answer any other questions. You'll also
-    probably want to join the user <a href="mailing-lists.html" title="Mailing 
Lists">mailing list</a> - you'll find
-    that we have a great community with people willing to help whenever 
possible.</p>
-
-<p>Thanks for following along. We hope you enjoy using Apache Shiro!</p>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/shiro-site/blob/c3c8d175/10-minute-tutorial.md.vtl
----------------------------------------------------------------------
diff --git a/10-minute-tutorial.md.vtl b/10-minute-tutorial.md.vtl
new file mode 100644
index 0000000..85c4145
--- /dev/null
+++ b/10-minute-tutorial.md.vtl
@@ -0,0 +1,195 @@
+#parse("templates/includes.vtl")
+
+<h1><a name="10MinuteTutorial-10MinuteTutorialonApacheShiro"></a>10 Minute 
Tutorial on Apache Shiro</h1>
+
+<div class="addthis_toolbox addthis_default_style">
+    <a class="addthis_button_compact" 
href="http://www.addthis.com/bookmark.php?v=250&amp;pubid=ra-4d66ef016022c3bd";>Share</a>
+    <span class="addthis_separator">|</span>
+    <a class="addthis_button_preferred_1"></a>
+    <a class="addthis_button_preferred_2"></a>
+    <a class="addthis_button_preferred_3"></a>
+    <a class="addthis_button_preferred_4"></a>
+</div>
+<script type="text/javascript">var addthis_config = {"data_track_clickback": 
true};</script>
+<script type="text/javascript" 
src="http://s7.addthis.com/js/250/addthis_widget.js#pubid=ra-4d66ef016022c3bd";></script>
+
+<a name="10MinuteTutorial-Introduction"></a>
+Introduction
+------------
+
+Welcome to Apache Shiro's 10 Minute Tutoral!
+
+By going through this quick and simple tutorial you should fully understand 
how a developer uses Shiro in their application. And you should be able to do 
it in under 10 minutes.
+
+<a name="10MinuteTutorial-Overview"></a>
+Overview
+--------
+
+What is Apache Shiro?
+
+Apache Shiro is a powerful and easy to use Java security framework that offers 
developers an intuitive yet comprehensive solution to authentication, 
authorization, cryptography, and session management.
+
+In practical terms, it achieves to manage all facets of your application's 
security, while keeping out of the way as much as possible. It is built on 
sound interface-driven design and OO principles, enabling custom behavior 
wherever you can imagine it. But with sensible defaults for everything, it is 
as "hands off" as application security can be. At least that's what we strive 
for.
+
+What can Apache Shiro do?
+
+A lot 
![](https://cwiki.apache.org/confluence/images/icons/emoticons/smile.png). But 
we don't want to bloat the QuickStart. Please check out our 
[Features](features.html "Features") page if you'd like to see what it can do 
for you. Also, if you're curious on how we got started and why we exist, please 
see the [Shiro History and Mission](what-is-shiro.html "What is Shiro") page.
+
+Ok. Now let's actually do something!
+
+#info('Note', 'Shiro can be run in any environment, from the simplest command 
line application to the biggest enterprise web and clustered applications, but 
we''ll use the simplest possible example in a simple `main` method for this 
QuickStart so you can get a feel for the API.')
+
+<a name="10MinuteTutorial-Download"></a>
+Download
+--------
+
+1.  Ensure you have JDK 1.6+ and Maven 3.0.3+ installed.
+2.  Download the lastest "Source Code Distribution" from the 
[Download](download.html "Download") page. In this example, we're using the 
${latestRelease} release distribution.
+3.  Unzip the source package:
+
+    ``` bash
+    $ unzip shiro-root-${latestRelease}-source-release.zip
+    ```
+
+4.  Enter the quickstart directory:
+
+    ``` bash
+    $ cd shiro-root-${latestRelease}/samples/quickstart
+    ```
+
+5.  Run the QuickStart:
+
+    ``` bash
+    $ mvn compile exec:java
+    ```
+
+This target will just print out some log messages to let you know what is 
going on and then exit. While reading this quickstart, feel free to look at the 
code found under `samples/quickstart/src/main/java/Quickstart.java`. Change 
that file and run the above `mvn compile exec:java` command as often as you 
like.
+
+<a name="10MinuteTutorial-Quickstart.java"></a>
+Quickstart.java
+---------------
+
+The `Quickstart.java` file referenced above contains all the code that will 
get you familiar with the API. Now lets break it down in chunks here so you can 
easily understand what is going on.
+
+In almost all environments, you can obtain the currently executing user via 
the following call:
+
+``` java
+Subject currentUser = SecurityUtils.getSubject();
+```
+
+Using 
[`SecurityUtils`](static/current/apidocs/org/apache/shiro/SecurityUtils.html).[getSubject()](static/current/apidocs/org/apache/shiro/SecurityUtils.html#getSubject()),
 we can obtain the currently executing 
[`Subject`](static/current/apidocs/org/apache/shiro/subject/Subject.html). A 
_Subject_ is just a security-specific "view" of an application User. We 
actually wanted to call it 'User' since that "just makes sense", but we decided 
against it: too many applications have existing APIs that already have their 
own User classes/frameworks, and we didn't want to conflict with those. Also, 
in the security world, the term `Subject` is actually the recognized 
nomenclature. Ok, moving on...
+
+The `getSubject()` call in a standalone application might return a `Subject` 
based on user data in an application-specific location, and in a server 
environment (e.g. web app), it acquires the `Subject` based on user data 
associated with current thread or incoming request.
+
+Now that you have a `Subject`, what can you do with it?
+
+If you want to make things available to the user during their current session 
with the application, you can get their session:
+
+``` java
+Session session = currentUser.getSession();
+session.setAttribute( "someKey", "aValue" );
+```
+
+The `Session` is a Shiro-specific instance that provides most of what you're 
used to with regular HttpSessions but with some extra goodies and one **big** 
difference: it does not require an HTTP environment!
+
+If deploying inside a web application, by default the `Session` will be 
`HttpSession` based. But, in a non-web environment, like this simple 
Quickstart, Shiro will automatically use its Enterprise Session Management by 
default. This means you get to use the same API in your applications, in any 
tier, regardless of deployment environment. This opens a whole new world of 
applications since any application requiring sessions does not need to be 
forced to use the `HttpSession` or EJB Stateful Session Beans. And, any client 
technology can now share session data.
+
+So now you can acquire a `Subject` and their `Session`. What about the 
_really_ useful stuff like checking if they are allowed to do things, like 
checking against roles and permissions?
+
+Well, we can only do those checks for a known user. Our `Subject` instance 
above represents the current user, but _who_ is the current user? Well, they're 
anonymous - that is, until they log in at least once. So, let's do that:
+
+``` java
+if ( !currentUser.isAuthenticated() ) {
+    //collect user principals and credentials in a gui specific manner
+    //such as username/password html form, X509 certificate, OpenID, etc.
+    //We'll use the username/password example here since it is the most common.
+    //(do you know what movie this is from? ;)
+    UsernamePasswordToken token = new UsernamePasswordToken("lonestarr", 
"vespa");
+    //this is all you have to do to support 'remember me' (no config - built 
in!):
+    token.setRememberMe(true);
+    currentUser.login(token);
+}
+```
+
+That's it! It couldn't be easier.
+
+But what if their login attempt fails? You can catch all sorts of specific 
exceptions that tell you exactly what happened and allows you to handle and 
react accordingly:
+
+``` java
+try {
+    currentUser.login( token );
+    //if no exception, that's it, we're done!
+} catch ( UnknownAccountException uae ) {
+    //username wasn't in the system, show them an error message?
+} catch ( IncorrectCredentialsException ice ) {
+    //password didn't match, try again?
+} catch ( LockedAccountException lae ) {
+    //account for that username is locked - can't login.  Show them a message?
+}
+    ... more types exceptions to check if you want ...
+} catch ( AuthenticationException ae ) {
+    //unexpected condition - error?
+}
+```
+
+There are many different types of exceptions you can check, or throw your own 
for custom conditions Shiro might not account for. See the 
[AuthenticationException 
JavaDoc](static/current/apidocs/org/apache/shiro/authc/AuthenticationException.html)
 for more.
+
+#tip('Handy Hint', 'Security best practice is to give generic login failure 
messages to users because you do not want to aid an attacker trying to break 
into your system.')
+
+Ok, so by now, we have a logged in user. What else can we do?
+
+Let's say who they are:
+
+``` java
+//print their identifying principal (in this case, a username): 
+log.info( "User [" + currentUser.getPrincipal() + "] logged in successfully." 
);
+```
+
+We can also test to see if they have specific role or not:
+
+``` java
+if ( currentUser.hasRole( "schwartz" ) ) {
+    log.info("May the Schwartz be with you!" );
+} else {
+    log.info( "Hello, mere mortal." );
+}
+```
+
+We can also see if they have a permission to act on a certain type of entity:
+
+``` java
+if ( currentUser.isPermitted( "lightsaber:weild" ) ) {
+    log.info("You may use a lightsaber ring.  Use it wisely.");
+} else {
+    log.info("Sorry, lightsaber rings are for schwartz masters only.");
+}
+```
+
+Also, we can perform an extremely powerful _instance-level_ permission check - 
the ability to see if the user has the ability to access a specific instance of 
a type:
+
+``` java
+if ( currentUser.isPermitted( "winnebago:drive:eagle5" ) ) {
+    log.info("You are permitted to 'drive' the 'winnebago' with license plate 
(id) 'eagle5'.  " +
+                "Here are the keys - have fun!");
+} else {
+    log.info("Sorry, you aren't allowed to drive the 'eagle5' winnebago!");
+}
+```
+
+Piece of cake, right?
+
+Finally, when the user is done using the application, they can log out:
+
+``` java
+currentUser.logout(); //removes all identifying information and invalidates 
their session too.
+```
+
+Well, that's the core to using Apache Shiro at the application-developer 
level. And although there is some pretty sophisticated stuff going on under the 
hood to make this work so elegantly, that's really all there is to it.
+
+But you might ask yourself, "But who is responsible for getting the user data 
during a login (usernames and passwords, role and permissions, etc), and who 
actually performs those security checks during runtime?" Well, you do, by 
implementing what Shiro calls a [Realm](realm.html "Realm") and plugging that 
`Realm` into Shiro's configuration.
+
+However, how you configure a [Realm](realm.html "Realm") is largely dependent 
upon your runtime environment. For example, if you run a standalone 
application, or if you have a web based application, or a Spring or JEE 
container-based application, or combination thereof. That type of configuration 
is outside the scope of this QuickStart, since its aim is to get you 
comfortable with the API and Shiro's concepts.
+
+When you're ready to jump in with a little more detail, you'll definitely want 
to read the [Authentication Guide](java-authentication-guide.html "Java 
Authentication Guide") and [Authorization Guide](java-authorization-guide.html 
"Java Authorization Guide"). Then can move onto other 
[Documentation](documentation.html "Documentation"), in particularly the 
[Reference Manual](reference.html "Reference"), to answer any other questions. 
You'll also probably want to join the user [mailing list](mailing-lists.html 
"Mailing Lists") - you'll find that we have a great community with people 
willing to help whenever possible.
+
+Thanks for following along. We hope you enjoy using Apache Shiro!
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/shiro-site/blob/c3c8d175/articles.html.vtl
----------------------------------------------------------------------
diff --git a/articles.html.vtl b/articles.html.vtl
deleted file mode 100644
index f8185ae..0000000
--- a/articles.html.vtl
+++ /dev/null
@@ -1,63 +0,0 @@
-<h1><a name="Articles-ApacheShiroArticles"></a>Apache Shiro Articles</h1>
-
-<p>Here are some articles written by and for members of the Apache Shiro 
community.  Please post any errata to the user or dev <a 
href="mailing-lists.html" title="Mailing Lists">mailing lists</a>.</p>
-
-<h2><a name="Articles-IntroductoryArticles"></a>Introductory Articles</h2>
-<p>New to Shiro? Here are some great introductory articles:</p>
-
-<ul class="alternate" type="square"><li><b><a class="external-link" 
href="https://www.infoq.com/articles/apache-shiro"; rel="nofollow">Application 
Security with Apache Shiro</a></b> InfoQ article by Les Hazlewood, Apache Shiro 
PMC Chair.</li></ul>
-
-<ul class="alternate" type="square"><li><b><a href="webapp-tutorial.html" 
title="Apache Shiro Beginner's Webapp Tutorial">Apache Shiro Beginner's Webapp 
Tutorial</a>: a step-by-step tutorial to enable Shiro in a web application</b> 
on 19 November 2013 by Les Hazlewood</li></ul>
-
-<ul class="alternate" type="square"><li><b><a class="external-link" 
href="https://stormpath.com/blog/whats-new-apache-shiro-12"; 
rel="nofollow">What's new in Apache Shiro 1.2</a></b> on 13 March 2012 by Les 
Hazlewood.</li></ul>
-
-<ul class="alternate" type="square"><li><b><a class="external-link" 
href="http://www.ibm.com/developerworks/web/library/wa-apacheshiro/"; 
rel="nofollow">Introducing Apache Shiro</a></b> by Nathan Good on IBM 
DeveloperWorks, 14 September 2010.</li></ul>
-
-<ul class="alternate" type="square"><li><b>An Introduction to Shiro (formerly 
JSecurity/Ki) - A Beginner's Tutorial</b> by <a class="external-link" 
href="http://www.brucephillips.name"; rel="nofollow">Bruce Phillips</a>:
-       <ul class="alternate" type="square"><li><a class="external-link" 
href="http://www.brucephillips.name/blog/index.cfm/2009/4/5/An-Introduction-to-Ki-formerly-JSecurity--A-Beginners--Tutorial-Part-1";
 rel="nofollow">Part 1</a></li><li><a class="external-link" 
href="http://www.brucephillips.name/blog/index.cfm/2009/4/5/An-Introduction-to-Ki-formerly-JSecurity--A-Beginners--Tutorial-Part-2";
 rel="nofollow">Part 2</a></li><li><a class="external-link" 
href="http://www.brucephillips.name/blog/index.cfm/2009/4/5/An-Introduction-to-Ki-formerly-JSecurity--A-Beginners--Tutorial-Part-3";
 rel="nofollow">Part 3</a></li><li><a class="external-link" 
href="http://www.brucephillips.name/blog/index.cfm/2009/4/5/An-Introduction-to-Ki-formerly-JSecurity--A-Beginners--Tutorial-Part-4";
 rel="nofollow">Part 4</a></li><li><a class="external-link" 
href="http://www.brucephillips.name/blog/index.cfm/2009/5/1/An-Introduction-to-Ki-formerly-JSecurity--A-Beginners-Tutorial-Part-5";
 rel="nofollow">Part 5</a></li></ul>
-       </li></ul>
-
-<h2><a name="Articles-AdditionalArticles"></a>Additional Articles</h2>
-<p>Once you've gotten your feet wet, you might find these useful too:</p>
-
-<ul class="alternate" type="square"><li><b><a class="external-link" 
href="http://czetsuya-tech.blogspot.com/2012/10/how-to-integrate-apache-shiro-with.html?spref=tw";
 rel="nofollow">How to Integrate Apache Shiro with JavaEE6</a></b> by czetsuya 
on 11 October 2012.</li></ul>
-
-
-<ul class="alternate" type="square"><li><b><a class="external-link" 
href="https://mehmetceliksoy.wordpress.com/2015/06/28/shiro-jdbc-realm/"; 
rel="nofollow">Custom Apache Shiro JDBC Realm</a></b> by Mehmet 
Celiksoy</li></ul>
-
-
-<ul class="alternate" type="square"><li><b><a class="external-link" 
href="https://bubba-h57.github.io/H57_Shiro/"; rel="nofollow">Spring MVC + Shiro 
+ myBatis + JSR-303 Validation</a></b> by Rob Hines et. al. on 2 April 
2012.</li></ul>
-
-
-<ul class="alternate" type="square"><li><b><a class="external-link" 
href="https://www.zkoss.org/wiki/Small_Talks/2012/March/Securing_ZK_Applications_With_Apache_Shiro";
 rel="nofollow">Securing ZK Applications with Apache Shiro</a></b> by Ashish 
Dasnurkar on 6 March 2012.</li></ul>
-
-
-<ul class="alternate" type="square"><li><b>Facebook Login with Apache 
Shiro</b> by Mike Warren on 28 November 2011
-       <ul class="alternate" type="square"><li><a class="external-link" 
href="https://mrdwnotes.wordpress.com/2011/11/28/using-apache-shiro-security-to-allow-login-via-facebook-part-1/";
 rel="nofollow">Part 1</a></li><li><a class="external-link" 
href="https://mrdwnotes.wordpress.com/2011/11/28/using-apache-shiro-security-to-allow-login-via-facebook-part-2/";
 rel="nofollow">Part 2</a></li></ul>
-       </li></ul>
-
-
-<ul class="alternate" type="square"><li><b>Apache Shiro - a blog series by 
Meri</b>
-       <ul class="alternate" type="square"><li><a class="external-link" 
href="http://meri-stuff.blogspot.com/2011/03/apache-shiro-part-1-basics.html"; 
rel="nofollow">Part 1 - Basics</a> on 27 March 2011</li><li><a 
class="external-link" 
href="http://meri-stuff.blogspot.com/2011/04/apache-shiro-part-2-realms-database-and.html";
 rel="nofollow">Part 2 - Realms, Database and PGP Certificates</a> on 18 April 
2011</li><li><a class="external-link" 
href="http://meri-stuff.blogspot.com/2011/12/apache-shiro-part-3-cryptography.html";
 rel="nofollow">Part 3 - Cryptography</a> on 4 December 2011</li></ul>
-       </li></ul>
-
-
-<ul class="alternate" type="square"><li><b><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></b> by Les 
Hazlewood on 9 May 2011</li></ul>
-
-
-<ul class="alternate" type="square"><li><b><a class="external-link" 
href="http://blog.xebia.com/author/yamsellem/"; rel="nofollow">HTTP 
Authentication and Security with Apache Shiro</a></b> blog article by yamsellem 
on 18 April 2011.</li></ul>
-
-
-<ul class="alternate" type="square"><li><b><a class="external-link" 
href="http://spring-java-ee.blogspot.com/2011/04/using-shiro-for-authorization-via-cdi.html";
 rel="nofollow">Using Shiro for Authorization via CDI Interceptors then Easily 
Test with Arquillian</a></b> blog article by Hendy Irawan on 16 April 
2011.</li></ul>
-
-
-<ul class="alternate" type="square"><li><b><a class="external-link" 
href="http://blogs.mulesoft.com/dev/mule-dev/apache-shiro-support-for-mule/"; 
rel="nofollow">Apache Shiro Support for Mule</a></b> by Dan Diephouse on 10 
January 2011.</li></ul>
-
-
-<ul class="alternate" type="square"><li><b><a class="external-link" 
href="http://www.gdevelop.com/blog/2010/12/apache-shiro-on-appengine"; 
rel="nofollow">Apache Shiro on Google AppEngine</a></b> by Trung on 13 December 
2010.</li></ul>
-
-
-<ul class="alternate" type="square"><li><b><a class="external-link" 
href="http://techbeats.deluan.com/apache-shiro-tags-for-jsffacelets"; 
rel="nofollow">Apache Shiro tags for JSF - Securing Your JSF Pages</a></b> by 
Deluan Quint&#227;o on 1 November 2010.</li></ul>
-
-
-<ul class="alternate" type="square"><li><b>Shiro DevNexus 2009 
Presentation</b> by Jeremy Haile: (<a 
href="assets/images/articles/Ki-DevNexus-2009.pdf?version=1&amp;modificationDate=1246602947000">PDF</a>)
 (<a 
href="assets/images/articles/Ki-DevNexus-2009.key.zip?version=1&amp;modificationDate=1246602947000">Keynote</a>)
 (<a 
href="assets/images/articles/Ki-DevNexus-2009.ppt.zip?version=1&amp;modificationDate=1246602947000">Powerpoint</a>)</li></ul>

http://git-wip-us.apache.org/repos/asf/shiro-site/blob/c3c8d175/articles.md
----------------------------------------------------------------------
diff --git a/articles.md b/articles.md
new file mode 100644
index 0000000..681cea3
--- /dev/null
+++ b/articles.md
@@ -0,0 +1,60 @@
+<a name="Articles-ApacheShiroArticles"></a>
+#Apache Shiro Articles
+
+Here are some articles written by and for members of the Apache Shiro 
community. Please post any errata to the user or dev [mailing 
lists](mailing-lists.html "Mailing Lists").
+
+<a name="Articles-IntroductoryArticles"></a>
+##Introductory Articles
+
+New to Shiro? Here are some great introductory articles:
+
+*   **[Application Security with Apache 
Shiro](https://www.infoq.com/articles/apache-shiro)** InfoQ article by Les 
Hazlewood, Apache Shiro PMC Chair.
+
+*   **[Apache Shiro Beginner's Webapp Tutorial](webapp-tutorial.html "Apache 
Shiro Beginner's Webapp Tutorial"): a step-by-step tutorial to enable Shiro in 
a web application** on 19 November 2013 by Les Hazlewood
+
+*   **[What's new in Apache Shiro 
1.2](https://stormpath.com/blog/whats-new-apache-shiro-12)** on 13 March 2012 
by Les Hazlewood.
+
+*   **[Introducing Apache 
Shiro](http://www.ibm.com/developerworks/web/library/wa-apacheshiro/)** by 
Nathan Good on IBM DeveloperWorks, 14 September 2010.
+
+*   **An Introduction to Shiro (formerly JSecurity/Ki) - A Beginner's 
Tutorial** by [Bruce Phillips](http://www.brucephillips.name):
+    *   [Part 
1](http://www.brucephillips.name/blog/index.cfm/2009/4/5/An-Introduction-to-Ki-formerly-JSecurity--A-Beginners--Tutorial-Part-1)
+    *   [Part 
2](http://www.brucephillips.name/blog/index.cfm/2009/4/5/An-Introduction-to-Ki-formerly-JSecurity--A-Beginners--Tutorial-Part-2)
+    *   [Part 
3](http://www.brucephillips.name/blog/index.cfm/2009/4/5/An-Introduction-to-Ki-formerly-JSecurity--A-Beginners--Tutorial-Part-3)
+    *   [Part 
4](http://www.brucephillips.name/blog/index.cfm/2009/4/5/An-Introduction-to-Ki-formerly-JSecurity--A-Beginners--Tutorial-Part-4)
+    *   [Part 
5](http://www.brucephillips.name/blog/index.cfm/2009/5/1/An-Introduction-to-Ki-formerly-JSecurity--A-Beginners-Tutorial-Part-5)
+
+<a name="Articles-AdditionalArticles"></a>
+##Additional Articles
+
+Once you've gotten your feet wet, you might find these useful too:
+
+*   **[How to Integrate Apache Shiro with 
JavaEE6](http://czetsuya-tech.blogspot.com/2012/10/how-to-integrate-apache-shiro-with.html?spref=tw)**
 by czetsuya on 11 October 2012.
+
+*   **[Custom Apache Shiro JDBC 
Realm](https://mehmetceliksoy.wordpress.com/2015/06/28/shiro-jdbc-realm/)** by 
Mehmet Celiksoy
+
+*   **[Spring MVC + Shiro + myBatis + JSR-303 
Validation](https://bubba-h57.github.io/H57_Shiro/)** by Rob Hines et. al. on 2 
April 2012.
+
+*   **[Securing ZK Applications with Apache 
Shiro](https://www.zkoss.org/wiki/Small_Talks/2012/March/Securing_ZK_Applications_With_Apache_Shiro)**
 by Ashish Dasnurkar on 6 March 2012.
+
+*   **Facebook Login with Apache Shiro** by Mike Warren on 28 November 2011
+    *   [Part 
1](https://mrdwnotes.wordpress.com/2011/11/28/using-apache-shiro-security-to-allow-login-via-facebook-part-1/)
+    *   [Part 
2](https://mrdwnotes.wordpress.com/2011/11/28/using-apache-shiro-security-to-allow-login-via-facebook-part-2/)
+
+*   **Apache Shiro - a blog series by Meri**
+    *   [Part 1 - 
Basics](http://meri-stuff.blogspot.com/2011/03/apache-shiro-part-1-basics.html) 
on 27 March 2011
+    *   [Part 2 - Realms, Database and PGP 
Certificates](http://meri-stuff.blogspot.com/2011/04/apache-shiro-part-2-realms-database-and.html)
 on 18 April 2011
+    *   [Part 3 - 
Cryptography](http://meri-stuff.blogspot.com/2011/12/apache-shiro-part-3-cryptography.html)
 on 4 December 2011
+
+*   **[The New RBAC: Resource-Based Access 
Control](https://stormpath.com/blog/new-rbac-resource-based-access-control)** 
by Les Hazlewood on 9 May 2011
+
+*   **[HTTP Authentication and Security with Apache 
Shiro](http://blog.xebia.com/author/yamsellem/)** blog article by yamsellem on 
18 April 2011.
+
+*   **[Using Shiro for Authorization via CDI Interceptors then Easily Test 
with 
Arquillian](http://spring-java-ee.blogspot.com/2011/04/using-shiro-for-authorization-via-cdi.html)**
 blog article by Hendy Irawan on 16 April 2011.
+
+*   **[Apache Shiro Support for 
Mule](http://blogs.mulesoft.com/dev/mule-dev/apache-shiro-support-for-mule/)** 
by Dan Diephouse on 10 January 2011.
+
+*   **[Apache Shiro on Google 
AppEngine](http://www.gdevelop.com/blog/2010/12/apache-shiro-on-appengine)** by 
Trung on 13 December 2010.
+
+*   **[Apache Shiro tags for JSF - Securing Your JSF 
Pages](http://techbeats.deluan.com/apache-shiro-tags-for-jsffacelets)** by 
Deluan Quintão on 1 November 2010.
+
+*   **Shiro DevNexus 2009 Presentation** by Jeremy Haile: 
([PDF](assets/images/articles/Ki-DevNexus-2009.pdf?version=1&modificationDate=1246602947000))
 
([Keynote](assets/images/articles/Ki-DevNexus-2009.key.zip?version=1&modificationDate=1246602947000))
 
([Powerpoint](assets/images/articles/Ki-DevNexus-2009.ppt.zip?version=1&modificationDate=1246602947000))
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/shiro-site/blob/c3c8d175/authentication-guide.html.vtl
----------------------------------------------------------------------
diff --git a/authentication-guide.html.vtl b/authentication-guide.html.vtl
index fdf5bfa..3b697ff 100644
--- a/authentication-guide.html.vtl
+++ b/authentication-guide.html.vtl
@@ -1,11 +1 @@
-<p>This page has been moved.  You are being redirected.</p>
-
-<p></p>
-
-#warning('Redirection Notice', 'This page should redirect to <a 
href="java-authentication-guide.html" title="Java Authentication Guide">Java 
Authentication Guide</a>.')
-
-<script type="text/javascript">
-<!--
-window.location = "java-authentication-guide.html"
-//-->
-</script>
+#redirect('java-authentication-guide.html', 'Authentication Guide')

http://git-wip-us.apache.org/repos/asf/shiro-site/blob/c3c8d175/documentation.html.vtl
----------------------------------------------------------------------
diff --git a/documentation.html.vtl b/documentation.html.vtl
deleted file mode 100644
index 3a6f092..0000000
--- a/documentation.html.vtl
+++ /dev/null
@@ -1,59 +0,0 @@
-#parse("templates/includes.vtl")
-
-<h1><a name="Documentation-ApacheShiroDocumentation"></a>Apache Shiro 
Documentation</h1>
-
-<h3><a name="Documentation-Introduction"></a>Introduction</h3>
-<p>Helpful if read in order:</p>
-<ul>
-    <li><a class="external-link" 
href="https://www.infoq.com/articles/apache-shiro"; rel="nofollow">Application 
Security
-        with Apache Shiro</a> - full intro article on InfoQ.com
-    </li>
-    <li><a href="10-minute-tutorial.html" title="10 Minute Tutorial">10 Minute 
Tutorial</a></li>
-    <li><a href="webapp-tutorial.html" title="Beginner's Webapp 
Tutorial">Beginner's Webapp Tutorial: a step-by-step tutorial to enable Shiro 
in a web application</a></li>
-</ul>
-
-<h2><a name="Documentation-ApacheShiroReferenceandAPI"></a>Apache Shiro 
Reference and API</h2>
-
-<h3><a name="Documentation-ReferenceManual"></a>Reference Manual</h3>
-<ul>
-    <li><a href="reference.html" title="Reference">Reference Manual</a></li>
-</ul>
-
-
-<h3><a name="Documentation-GuidesimportantShiroconcepts%3A"></a>Guides - 
important Shiro concepts:</h3>
-<ul>
-    <li><a href="10-minute-tutorial.html" title="10 Minute Tutorial">10 Minute 
Tutorial</a></li>
-    <li><a href="webapp-tutorial.html">Beginner's Webapp Tutorial: a 
step-by-step tutorial to enable Shiro in a web application</a></li>
-    <li><a href="java-authentication-guide.html" title="Java Authentication 
Guide">Authentication Guide</a></li>
-    <li><a href="java-authorization-guide.html" title="Java Authorization 
Guide">Authorization Guide</a></li>
-    <li>Community-contributed <a href="articles.html" 
title="Articles">Articles</a></li>
-</ul>
-
-<h3><a name="Documentation-CurrentRelease"></a>Current Release</h3>
-<p>Apache Shiro ${latestRelease} (<a href="download.html" 
title="Download">Download</a>)</p>
-<ul>
-    <li><a class="external-link" 
href="static/${latestRelease}/apidocs">API</a> (JavaDoc)</li>
-    <li><a class="external-link" href="static/${latestRelease}/xref/">Browse 
Source</a> (XREF)</li>
-    <li><a class="external-link" href="static/${latestRelease}/">Maven Static 
Site</a></li>
-<!--    <li><a class="external-link"
-           
href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12310950&version=12323469&amp;styleName=Html&amp;projectId=12310950";>Release
-        Notes</a></li> -->
-</ul>
-
-<!--
-<h3><a name="Documentation-PreviousReleases"></a>Previous Releases</h3>
-<p>Apache Shiro 1.0.0-incubating (<a class="external-link" 
href="http://svn.apache.org/repos/asf/shiro/tags/shiro-root-1.0.0-incubating";>Build
 from source</a>)</p>
-<ul><li><a class="external-link" 
href="static/1.0.0-incubating/apidocs">API</a> (JavaDoc)</li><li><a 
class="external-link" href="static/1.0.0-incubating/xref/">Browse Source</a> 
(XREF)</li><li><a class="external-link" href="static/1.0.0-incubating/">Maven 
Static Site</a></li><li><a class="external-link" 
href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12310950&amp;styleName=Html&amp;version=12314078";>Release
 Notes</a></li></ul> -->
-
-
-<h2><a name="Documentation-Lendahandwithdocumentation"></a>Lend a hand with 
documentation </h2>
-
-<p>While we hope this documentation helps you with the work you're doing with 
Apache Shiro, the community is improving
-    and expanding the documentation all the time. If you'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 
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>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/shiro-site/blob/c3c8d175/documentation.md.vtl
----------------------------------------------------------------------
diff --git a/documentation.md.vtl b/documentation.md.vtl
new file mode 100644
index 0000000..a5901f6
--- /dev/null
+++ b/documentation.md.vtl
@@ -0,0 +1,45 @@
+#parse("templates/includes.vtl")
+<a name="Documentation-ApacheShiroDocumentation"></a>
+#[[#Apache Shiro Documentation]]#
+
+<a name="Documentation-Introduction"></a>
+#[[###Introduction]]#
+
+Helpful if read in order:
+
+*   [Application Security with Apache 
Shiro](https://www.infoq.com/articles/apache-shiro) - full intro article on 
InfoQ.com
+*   [10 Minute Tutorial](10-minute-tutorial.html "10 Minute Tutorial")
+*   [Beginner's Webapp Tutorial: a step-by-step tutorial to enable Shiro in a 
web application](webapp-tutorial.html "Beginner's Webapp Tutorial")
+
+<a name="Documentation-ApacheShiroReferenceandAPI"></a>
+#[[##Apache Shiro Reference and API]]#
+
+<a name="Documentation-ReferenceManual"></a>
+#[[###Reference Manual]]#
+
+*   [Reference Manual](reference.html "Reference")
+
+<a name="Documentation-GuidesimportantShiroconcepts%3A"></a>
+#[[###Guides - important Shiro concepts:]]#
+
+*   [10 Minute Tutorial](10-minute-tutorial.html "10 Minute Tutorial")
+*   [Beginner's Webapp Tutorial: a step-by-step tutorial to enable Shiro in a 
web application](webapp-tutorial.html)
+*   [Authentication Guide](java-authentication-guide.html "Java Authentication 
Guide")
+*   [Authorization Guide](java-authorization-guide.html "Java Authorization 
Guide")
+*   Community-contributed [Articles](articles.html "Articles")
+
+<a name="Documentation-CurrentRelease"></a>
+#[[###Current Release]]#
+
+Apache Shiro ${latestRelease} ([Download](download.html "Download"))
+
+*   [API](static/${latestRelease}/apidocs) (JavaDoc)
+*   [Browse Source](static/${latestRelease}/xref/) (XREF)
+*   [Maven Static Site](static/${latestRelease}/)
+
+<a name="Documentation-Lendahandwithdocumentation"></a>
+#[[##Lend a hand with documentation]]#
+
+While we hope this documentation helps you with the work you're doing with 
Apache Shiro, the community is improving and expanding the documentation all 
the time. If you'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.
+
+The easiest way to contribute your documentation is to send it to the [User 
Forum](http://shiro-user.582556.n2.nabble.com/) or the [User Mailing 
List](mailing-lists.html "Mailing Lists").
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/shiro-site/blob/c3c8d175/features-overview.html
----------------------------------------------------------------------
diff --git a/features-overview.html b/features-overview.html
deleted file mode 100644
index 293b70a..0000000
--- a/features-overview.html
+++ /dev/null
@@ -1,39 +0,0 @@
-<h1><a name="FeaturesOverview-ApacheShiroFeaturesOverview"></a>Apache Shiro 
Features Overview</h1>
-
-<p>Apache Shiro aims to be the most comprehensive, but also the easiest to use 
Java security framework available.   Here are some of the frameworks finer 
points:</p>
-
-<ul><li>The easiest to understand Java Security API anywhere.  Class and 
Interface names are intuitive and <em>make sense</em>.  Anything is pluggable 
but good defaults exist for everything.</li></ul>
-
-
-<ul><li>Support authentication ('logins') across one or more pluggable data 
sources (LDAP, JDBC, ActiveDirectory, etc).</li></ul>
-
-
-<ul><li>Perform authorization ('access control') based on roles or 
fine-grained permissions, also using pluggable data sources.</li></ul>
-
-
-<ul><li>First-class caching support for enhanced application 
performance.</li></ul>
-
-
-<ul><li>Built-in POJO-based Enterprise Session Management.  Use in both web 
and non-web environments or in any environment where Single Sign On (SSO) or 
clustered or distributed sessions are desired.</li></ul>
-
-
-<ul><li><em>Heterogeneous</em> client session access.  You are no longer 
forced to use only the <tt>HttpSession</tt> or Stateful Session Beans, which 
often unnecessarily tied applications to specific environments.  Flash applets, 
C# applications, Java Web Start, and Web Applications, etc. can now all share 
session state regardless of deployment environment.</li></ul>
-
-
-<ul><li>Simple Single Sign-On (SSO) support piggybacking the above Enterprise 
Session Management.  If sessions are federated across multiple applications, 
the user's authentication state can be shared too.  Log in once to any 
application and the others all recognize that log-in.</li></ul>
-
-
-<ul><li>Secure data with the easiest possible Cryptography APIs available, 
giving you power and simplicity beyond what Java provides by default for 
ciphers and hashes.</li></ul>
-
-
-<ul><li>An incredibly robust yet <b><em>low-configuration</em></b> web 
framework that can secure any url or resource, automatically handle logins and 
logouts, perform Remember Me services, and more.</li></ul>
-
-
-<ul><li>Extremely low number of required dependencies.  Standalone 
configuration requires only <tt>slf4j-api.jar</tt> and one of slf4j's binding 
.jars.  Web configuration additionally requires 
<tt>commons-beanutils-core.jar</tt>.  Feature-based dependencies (Ehcache 
caching, Quartz-based Session validation, Spring dependency injection, etc.) 
can be added when needed.</li></ul>
-
-
-<h2><a name="FeaturesOverview-WantmoreinformationonwhatShirocando%3F"></a>Want 
more information on what Shiro can do?  </h2>
-<p>Check out the specific features for each of Shiro's major components: <a 
href="authentication-features.html" title="Authentication 
Features">Authentications</a>, <a href="authorization-features.html" 
title="Authorization Features">Authorization</a>, <a 
href="session-management-features.html" title="Session Management 
Features">Session Management</a>, and <a href="cryptography-features.html" 
title="Cryptography Features">Cryptogrpahy</a>.</p>
-
-<h2><a name="FeaturesOverview-GetStartedin10MinuteswithShiro"></a>Get Started 
in 10 Minutes with Shiro</h2>
-<p>Try out Shiro for yourself with our <a href="10-minute-tutorial.html" 
title="10 Minute Tutorial">10 Minute Tutorial</a>.  And if you have any 
questions about Shiro, please check out our <a href="forums.html" 
title="Forums">community forum</a> or <a href="mailing-lists.html" 
title="Mailing Lists">user mailing list</a> for answers from the community.</p>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/shiro-site/blob/c3c8d175/features-overview.md
----------------------------------------------------------------------
diff --git a/features-overview.md b/features-overview.md
new file mode 100644
index 0000000..dac7310
--- /dev/null
+++ b/features-overview.md
@@ -0,0 +1,34 @@
+<a name="FeaturesOverview-ApacheShiroFeaturesOverview"></a>
+#Apache Shiro Features Overview
+
+Apache Shiro aims to be the most comprehensive, but also the easiest to use 
Java security framework available. Here are some of the frameworks finer points:
+
+*   The easiest to understand Java Security API anywhere. Class and Interface 
names are intuitive and _make sense_. Anything is pluggable but good defaults 
exist for everything.
+
+*   Support authentication ('logins') across one or more pluggable data 
sources (LDAP, JDBC, ActiveDirectory, etc).
+
+*   Perform authorization ('access control') based on roles or fine-grained 
permissions, also using pluggable data sources.
+
+*   First-class caching support for enhanced application performance.
+
+*   Built-in POJO-based Enterprise Session Management. Use in both web and 
non-web environments or in any environment where Single Sign On (SSO) or 
clustered or distributed sessions are desired.
+
+*   _Heterogeneous_ client session access. You are no longer forced to use 
only the `HttpSession` or Stateful Session Beans, which often unnecessarily 
tied applications to specific environments. Flash applets, C# applications, 
Java Web Start, and Web Applications, etc. can now all share session state 
regardless of deployment environment.
+
+*   Simple Single Sign-On (SSO) support piggybacking the above Enterprise 
Session Management. If sessions are federated across multiple applications, the 
user's authentication state can be shared too. Log in once to any application 
and the others all recognize that log-in.
+
+*   Secure data with the easiest possible Cryptography APIs available, giving 
you power and simplicity beyond what Java provides by default for ciphers and 
hashes.
+
+*   An incredibly robust yet **_low-configuration_** web framework that can 
secure any url or resource, automatically handle logins and logouts, perform 
Remember Me services, and more.
+
+*   Extremely low number of required dependencies. Standalone configuration 
requires only `slf4j-api.jar` and one of slf4j's binding .jars. Web 
configuration additionally requires `commons-beanutils-core.jar`. Feature-based 
dependencies (Ehcache caching, Quartz-based Session validation, Spring 
dependency injection, etc.) can be added when needed.
+
+<a name="FeaturesOverview-WantmoreinformationonwhatShirocando%3F"></a>
+##Want more information on what Shiro can do?
+
+Check out the specific features for each of Shiro's major components: 
[Authentications](authentication-features.html "Authentication Features"), 
[Authorization](authorization-features.html "Authorization Features"), [Session 
Management](session-management-features.html "Session Management Features"), 
and [Cryptogrpahy](cryptography-features.html "Cryptography Features").
+
+<a name="FeaturesOverview-GetStartedin10MinuteswithShiro"></a>
+##Get Started in 10 Minutes with Shiro
+
+Try out Shiro for yourself with our [10 Minute 
Tutorial](10-minute-tutorial.html "10 Minute Tutorial"). And if you have any 
questions about Shiro, please check out our [community forum](forums.html 
"Forums") or [user mailing list](mailing-lists.html "Mailing Lists") for 
answers from the community.
\ No newline at end of file

Reply via email to