Merge pull request #81 from weltonrodrigo/patch-1

Add Realm guide to list of guides
diff --git a/README.md b/README.md
index ce9477a..f5c2683 100644
--- a/README.md
+++ b/README.md
@@ -12,7 +12,7 @@
  
 The following example assumes you have commit permissions to the `apache/shiro-site` repository, typically because your are an Apache Shiro project committer:
     
-    # clone both repo branches `asf-site` and `master`
+    # clone both repo branches `asf-site` and `main`
     git clone https://github.com/apache/shiro-site -b asf-site shiro-site-publish
     git clone https://github.com/apache/shiro-site
     
diff --git a/assets/js/shiro-site.js b/assets/js/shiro-site.js
index 19584b2..bce11ce 100644
--- a/assets/js/shiro-site.js
+++ b/assets/js/shiro-site.js
@@ -2,7 +2,7 @@
 function addPageEditLink() {
 
     var ghRepo = "apache/shiro-site";
-    var ghRelHref = "https://github.com/" + ghRepo + "/edit/master/";
+    var ghRelHref = "https://github.com/" + ghRepo + "/edit/main/";
 
     var ghEditPageElement = $( "#ghEditPage" );
     var editThisPageElement = $(".editThisPage");
diff --git a/authentication.md.vtl b/authentication.md.vtl
index fcf352d..37991d7 100644
--- a/authentication.md.vtl
+++ b/authentication.md.vtl
@@ -303,7 +303,7 @@
 Realm Authentication
 --------------------
 
-This chapter covers Shiro's master workflow explaining how an authentication attempt occurs. The internal workflow of what happens in a single realm as it is consulted during authentication (i.e. 'Step 5' above) is covered in the [Realm](realm.html "Realm") chapter's [Realm Authentication](realm.html#[[#]]#Realm-authentication) section.
+This chapter covers Shiro's main workflow explaining how an authentication attempt occurs. The internal workflow of what happens in a single realm as it is consulted during authentication (i.e. 'Step 5' above) is covered in the [Realm](realm.html "Realm") chapter's [Realm Authentication](realm.html#[[#]]#Realm-authentication) section.
 
 #lendAHandDoc()
 
diff --git a/authorization.md.vtl b/authorization.md.vtl
index a0fb898..e201adc 100644
--- a/authorization.md.vtl
+++ b/authorization.md.vtl
@@ -346,7 +346,7 @@
 
 Before you can use Java annotations, you'll need to enable AOP support in your application. There are a number of different AOP frameworks so, unfortunately, there is no standard way to enable AOP in an application.
 
-For AspectJ, you can review our [AspectJ sample application](https://github.com/apache/shiro/tree/master/samples/aspectj).
+For AspectJ, you can review our [AspectJ sample application](https://github.com/apache/shiro/tree/main/samples/aspectj).
 
 For Spring applications, you can look into our [Spring Integration](spring.html "Spring") documentation.
 
diff --git a/configuration.md.vtl b/configuration.md.vtl
index ae08db5..c21650f 100644
--- a/configuration.md.vtl
+++ b/configuration.md.vtl
@@ -25,6 +25,7 @@
                 *   [Nested Properties](#Configuration-NestedProperties)
                 *   [Byte Array Values](#Configuration-ByteArrayValues)
                 *   [Collection Properties](#Configuration-CollectionProperties)
+                *   [Variable Interpolation](#Configuration-VariableInterpolation)
 
             *   [Considerations](#Configuration-Considerations)
 
@@ -342,6 +343,26 @@
 ...
 ```
 
+<a name="Configuration-VariableInterpolation"></a>
+#[[######Variable Interpolation]]#
+
+You can use variable interpolation when defining values. Supported types are environment variables, system properties and constants.
+
+For constants, use `${const:com.example.YourClass.CONSTANT_NAME}`, for environment variables and system properties, use `${ENV_VARIABLE_NAME}` or `${system.property}`.
+
+System properties and environment variables are lookup up in that order.
+
+Default values are supported in the form `${const:com.example.YourClass.CONSTANT_NAME:-default_value`}, or `${VARIABLE_NAME:-default_value}`, as in:
+
+``` ini
+myRealm.connectionTimeout = ${REALM_CONNECTION_TIMEOUT:-3000}
+```
+
+Which will be interpreted as `myRealm.connectionTimeout = 3000` if no system property or environment variable `REALM_CONNECTION_TIMEOUT` is defined.
+
+If no replacement is found, the definition will remain unchanged.
+
+
 <a name="Configuration-Considerations"></a>
 #[[#####Considerations]]#
 
diff --git a/developer-resources.md.vtl b/developer-resources.md.vtl
index 5c83c1f..b9e38ee 100644
--- a/developer-resources.md.vtl
+++ b/developer-resources.md.vtl
@@ -13,7 +13,7 @@
 
 We use a Git repository located at [git://git.apache.org/shiro.git](git://git.apache.org/shiro.git).
 
-Active development is done in the `master` branch, and maintenance typically on the `1.2.x` branch.
+Active development is done in the `main` branch, and maintenance typically on the `1.2.x` branch.
 
 <a name="DeveloperResources-BuildingfromGit"></a>
 #[[###Building from Git]]#
@@ -35,5 +35,5 @@
     
     The resulting artifacts will be in your local M2 Repo under the org.apache.shiro group.
 
-#danger('Cutting-edge development', 'When building from `master` or any branches, use the generated artifacts at your own risk!  Current and previous stable releases will always be available via the <a href="download.html" title="Download">Download</a> page.')
+#danger('Cutting-edge development', 'When building from `main` or any branches, use the generated artifacts at your own risk!  Current and previous stable releases will always be available via the <a href="download.html" title="Download">Download</a> page.')
 <input type="hidden" id="ghEditPage" value="developer-resources.md.vtl"></input>
diff --git a/how-to-contribute.md b/how-to-contribute.md
index 5db1ef4..3af9830 100644
--- a/how-to-contribute.md
+++ b/how-to-contribute.md
@@ -91,7 +91,7 @@
 
 Apache Shiro has a read-only mirror on GitHub that is kept in sync with the canonical Git repo maintained by the Apache Software Foundation. Submitting GitHub pull requests is the easiest way to get your contribution upstream. For detailed instructions see the link below:
 
-[GitHub Contribution Guidelines](https://github.com/apache/shiro/blob/master/CONTRIBUTING.md)
+[GitHub Contribution Guidelines](https://github.com/apache/shiro/blob/main/CONTRIBUTING.md)
 
 <a name="HowtoContribute-submitThroughJIRA"></a>
 ###Submitting a patch through JIRA
@@ -130,7 +130,7 @@
 
 ``` bash
 [user@localhost shiro]$ git branch
-master
+main
 * mybranch
 ```
 
@@ -143,7 +143,7 @@
 Finally, you can create a patch and attach it to the JIRA issue that you created for the bug you are fixing.
 
 ``` bash
-git format-patch master --stdout > ~/patch-name.patch
+git format-patch main --stdout > ~/patch-name.patch
 ```
 
 <a name="HowtoContribute-review"></a>
@@ -170,7 +170,7 @@
 *   Try to at least offer a partial solution and not just a problem statement.
 *   Take the time to clearly explain your issue and write a concise email message. Less confusion facilitates fast and complete resolution.
 *   Do not bother to send an email reply that simply says "thanks". When the issue is resolved, that is the finish - end of thread. Reduce clutter.
-*   You would usually do any development work against the master branch in Git.
+*   You would usually do any development work against the main branch in Git.
 *   When sending a patch, you usually do not need to worry about which Git branch it should be applied to. The maintainers of the repository will decide.
 *   Keep all project-related discussion on the mailing list. It is much better to utilise the wider audience, rather than to break off into private discussion groups. You never know who else will have the answer to your issues, and anyway other people are interested in the outcome.
 *   Become familiar with the mailing lists. As you browse and search, you will see the way other people do things. Follow the leading examples.
diff --git a/integration.md b/integration.md
index d144218..26f8a09 100644
--- a/integration.md
+++ b/integration.md
@@ -62,7 +62,7 @@
 * **[Krail](https://github.com/davidsowerby/krail)** from [@davidsowerby](https://github.com/davidsowerby)
 Krail provides a framework for rapid Java web development by combining Vaadin, Guice, Apache Shiro, Apache Commons Configuration and others.
 
-* **[Rewrite Servlet](https://github.com/ocpsoft/rewrite/tree/master/security-integration-shiro)** from [ocpsoft](http://www.ocpsoft.org/rewrite/)
+* **[Rewrite Servlet](https://github.com/ocpsoft/rewrite/tree/main/security-integration-shiro)** from [ocpsoft](http://www.ocpsoft.org/rewrite/)
 A highly configurable URL-rewriting tool for Java EE 6+ and Servlet 2.5+ applications
 
 * **[Freedomotic](http://freedomotic-developer-manual.readthedocs.io/en/latest/plugins/security.html)** from [freedomotic](http://www.freedomotic.com)
@@ -84,5 +84,5 @@
 * **[Angular](https://github.com/gnavarro77/angular-shiro)** - Angular
 
 ##Got An Integration?
-Have an integration you want listed? Send us a pull request of [this page](https://github.com/apache/shiro-site/blob/master/integration.md), and participate in Shiro development! [Learn more about contributing to Apache Shiro](how-to-contribute.html).
+Have an integration you want listed? Send us a pull request of [this page](https://github.com/apache/shiro-site/blob/main/integration.md), and participate in Shiro development! [Learn more about contributing to Apache Shiro](how-to-contribute.html).
 <input type="hidden" id="ghEditPage" value="integration.md"></input>
diff --git a/java-annotations.md b/java-annotations.md
index 27ef248..31603aa 100644
--- a/java-annotations.md
+++ b/java-annotations.md
@@ -3,7 +3,7 @@
 
 Before you can use Java annotations, you'll need to enable AOP support in your application. There are a number of different AOP frameworks so, unfortunately, there is no standard way to enable AOP in an application.
 
-For AspectJ, you can review our [AspectJ sample application](https://github.com/apache/shiro/tree/master/samples/aspectj).
+For AspectJ, you can review our [AspectJ sample application](https://github.com/apache/shiro/tree/main/samples/aspectj).
 
 For Spring, you can look into our [Spring Integration](spring.html "Spring") documentation.
 
diff --git a/java-authorization-guide.md.vtl b/java-authorization-guide.md.vtl
index 167e73b..039e31b 100644
--- a/java-authorization-guide.md.vtl
+++ b/java-authorization-guide.md.vtl
@@ -151,7 +151,7 @@
 
 Before you can use Java annotations, you'll need to enable AOP support in your application. There are a number of different AOP frameworks so, unfortunately, there is no standard way to enable AOP in an application.
 
-For AspectJ, you can review our [AspectJ sample application](https://github.com/apache/shiro/tree/master/samples/aspectj).
+For AspectJ, you can review our [AspectJ sample application](https://github.com/apache/shiro/tree/main/samples/aspectj).
 
 For Spring, you can look into our [Spring Integration](spring.html "Spring") documentation.
 
diff --git a/jaxrs.md.vtl b/jaxrs.md.vtl
index 9202f78..ee69684 100644
--- a/jaxrs.md.vtl
+++ b/jaxrs.md.vtl
@@ -101,6 +101,6 @@
 Want to see more?
 -----------------
 
-You can find portable JAX-RS application that runs with [Jersey](https://jersey.java.net/), [RestEasy](http://resteasy.jboss.org/) or [Apache CXF](https://cxf.apache.org) in the [samples](https://github.com/apache/shiro/tree/master/samples) directory on Github.
+You can find portable JAX-RS application that runs with [Jersey](https://jersey.java.net/), [RestEasy](http://resteasy.jboss.org/) or [Apache CXF](https://cxf.apache.org) in the [samples](https://github.com/apache/shiro/tree/main/samples) directory on Github.
 
 <input type="hidden" id="ghEditPage" value="jaxrs.md.vtl"></input>
\ No newline at end of file
diff --git a/realm.md.vtl b/realm.md.vtl
index a8d57e6..22a2664 100644
--- a/realm.md.vtl
+++ b/realm.md.vtl
@@ -80,7 +80,7 @@
 securityManager.realms = $blahRealm, $fooRealm, $barRealm
 ```
 
-However, realize that with implicit assignment, just the order that the realms are defined directly affects how they are consulted during authentication and authorization attempts. If you change their definition order, you will change how the master `Authenticator`'s [Authentication Sequence](authentication.html#[[#]]#Authentication-sequence) functions.
+However, realize that with implicit assignment, just the order that the realms are defined directly affects how they are consulted during authentication and authorization attempts. If you change their definition order, you will change how the main `Authenticator`'s [Authentication Sequence](authentication.html#[[#]]#Authentication-sequence) functions.
 
 For this reason, and to ensure deterministic behavior, we recommend using Explicit Assignment instead of Implicit Assignment.
 
@@ -89,7 +89,7 @@
 Realm Authentication
 --------------------
 
-Once you understand Shiro's master [Authentication workflow](authentication.html#[[#]]#Authentication-sequence), it is important to know exactly what happens when the `Authenticator` interacts with a `Realm` during an authentication attempt.
+Once you understand Shiro's main [Authentication workflow](authentication.html#[[#]]#Authentication-sequence), it is important to know exactly what happens when the `Authenticator` interacts with a `Realm` during an authentication attempt.
 
 <a name="Realm-Supporting%7B%7BAuthenticationTokens%7D%7D"></a>
 #[[###Supporting `AuthenticationTokens`]]#
diff --git a/session-management.md.vtl b/session-management.md.vtl
index 4ee40b8..fe0788d 100644
--- a/session-management.md.vtl
+++ b/session-management.md.vtl
@@ -240,11 +240,11 @@
 <a name="SessionManagement-EHCacheSessionCacheConfiguration"></a>
 #[[#####EHCache Session Cache Configuration]]#
 
-By default, the `EhCacheManager` uses a Shiro-specific [`ehcache.xml`](https://github.com/apache/shiro/blob/master/support/ehcache/src/main/resources/org/apache/shiro/cache/ehcache/ehcache.xml) file that sets up the Session cache region and the necessary settings to ensure Sessions are stored and retrieved properly.
+By default, the `EhCacheManager` uses a Shiro-specific [`ehcache.xml`](https://github.com/apache/shiro/blob/main/support/ehcache/src/main/resources/org/apache/shiro/cache/ehcache/ehcache.xml) file that sets up the Session cache region and the necessary settings to ensure Sessions are stored and retrieved properly.
 
 However, if you wish to change the cache settings, or configure your own `ehcache.xml` or EHCache `net.sf.ehcache.CacheManager` instance, you will need to configure the cache region to ensure that Sessions are handled correctly.
 
-If you look at the default [`ehcache.xml`](https://github.com/apache/shiro/blob/master/support/ehcache/src/main/resources/org/apache/shiro/cache/ehcache/ehcache.xml) file, you will see the following `shiro-activeSessionCache` cache configuration:
+If you look at the default [`ehcache.xml`](https://github.com/apache/shiro/blob/main/support/ehcache/src/main/resources/org/apache/shiro/cache/ehcache/ehcache.xml) file, you will see the following `shiro-activeSessionCache` cache configuration:
 
 ``` xml
 <cache name="shiro-activeSessionCache"
diff --git a/spring-boot.md.vtl b/spring-boot.md.vtl
index 4388217..64a124d 100644
--- a/spring-boot.md.vtl
+++ b/spring-boot.md.vtl
@@ -9,7 +9,7 @@
 Web Applications
 ---
 
-Shiro has first-class support for Spring web applications. In a web application, all Shiro-accessible web requests must go through a master Shiro Filter. This filter itself is extremely powerful, allowing for ad-hoc custom filter chains to be executed based on any URL path expression.
+Shiro has first-class support for Spring web applications. In a web application, all Shiro-accessible web requests must go through a main Shiro Filter. This filter itself is extremely powerful, allowing for ad-hoc custom filter chains to be executed based on any URL path expression.
 
 First include the Shiro Spring web starter dependency in you application classpath (we recomend using a tool such as Apache Maven or Gradle to manage this).
 
@@ -44,7 +44,7 @@
 
 If you are using Shiro's annotations see the [annotation](#Spring-annotations-web) section below.
 
-You can see a full example in our [samples on Github](https://github.com/apache/shiro/tree/master/samples/spring-boot-web).
+You can see a full example in our [samples on Github](https://github.com/apache/shiro/tree/main/samples/spring-boot-web).
 
 <a name="Spring-annotations"></a>
 Enabling Shiro Annotations
@@ -166,6 +166,6 @@
 SecurityUtils.getSubject();
 ```
 
-You can see a full example in our [samples on Github](https://github.com/apache/shiro/tree/master/samples/spring-boot).
+You can see a full example in our [samples on Github](https://github.com/apache/shiro/tree/main/samples/spring-boot).
 
 <input type="hidden" id="ghEditPage" value="spring-boot.md.vtl"></input>
diff --git a/spring-framework.md.vtl b/spring-framework.md.vtl
index 0c98c7a..23ea725 100644
--- a/spring-framework.md.vtl
+++ b/spring-framework.md.vtl
@@ -60,13 +60,13 @@
 SecurityUtils.getSubject();
 ```
 
-You can see a full example in our [samples on Github](https://github.com/apache/shiro/tree/master/samples/spring).
+You can see a full example in our [samples on Github](https://github.com/apache/shiro/tree/main/samples/spring).
 
 <a name="SpringFramework-WebApplications"></a>
 Web Applications
 ---
 
-Shiro has first-class support for Spring web applications. In a web application, all Shiro-accessible web requests must go through a master Shiro Filter. This filter itself is extremely powerful, allowing for ad-hoc custom filter chains to be executed based on any URL path expression.
+Shiro has first-class support for Spring web applications. In a web application, all Shiro-accessible web requests must go through a main Shiro Filter. This filter itself is extremely powerful, allowing for ad-hoc custom filter chains to be executed based on any URL path expression.
 
 Include the Shiro Spring web dependencies in you application classpath (we recomend using a tool such as Apache Maven or Gradle to manage this).
 
@@ -127,7 +127,7 @@
 
 If you are using Shiro's annotations see the [annotation](#Spring-annotations-web) section below.
 
-You can see a full example in our [samples on Github](https://github.com/apache/shiro/tree/master/samples/spring-mvc).
+You can see a full example in our [samples on Github](https://github.com/apache/shiro/tree/main/samples/spring-mvc).
 
 <a name="Spring-annotations"></a>
 Enabling Shiro Annotations
diff --git a/spring-xml.md b/spring-xml.md
index 9158d40..a4c5eb3 100644
--- a/spring-xml.md
+++ b/spring-xml.md
@@ -35,7 +35,7 @@
 <a name="SpringXml-WebApplications"></a>
 ## Web Applications
 
-Shiro has first-rate support for Spring web applications. In a web application, all Shiro-accessible web requests must go through a master Shiro Filter. This filter itself is extremely powerful, allowing for
+Shiro has first-rate support for Spring web applications. In a web application, all Shiro-accessible web requests must go through a main Shiro Filter. This filter itself is extremely powerful, allowing for
 ad-hoc custom filter chains to be executed based on any URL path expression.
 
 Prior to Shiro 1.0, you had to use a hybrid approach in Spring web applications, defining the Shiro filter and
@@ -72,7 +72,7 @@
 </filter-mapping>
 ```
 
-You can see a full example in our [samples on Github](https://github.com/apache/shiro/tree/master/samples/spring-xml).
+You can see a full example in our [samples on Github](https://github.com/apache/shiro/tree/main/samples/spring-xml).
 
 <a name="SpringXml-applicationContext.xml"></a>
 ###applicationContext.xml
diff --git a/tags.html b/tags.html
index 5d5de0f..4c1c524 100644
--- a/tags.html
+++ b/tags.html
@@ -1,6 +1,6 @@
 <script type="text/javascript">
 <!--
-window.location = "https://github.com/apache/shiro/blob/master/web/src/main/resources/META-INF/shiro.tld"
+window.location = "https://github.com/apache/shiro/blob/main/web/src/main/resources/META-INF/shiro.tld"
 //-->
 </script>
 
diff --git a/tutorial.md.vtl b/tutorial.md.vtl
index c12e654..4049bbc 100644
--- a/tutorial.md.vtl
+++ b/tutorial.md.vtl
@@ -10,7 +10,7 @@
 
 If you don't want to actually edit files as you follow this tutorial, you can obtain a nearly identical sample application and reference it as you go. Choose a location:
 
-*   In Apache Shiro's Git repository: [https://github.com/apache/shiro/tree/master/samples/quickstart](https://github.com/apache/shiro/tree/master/samples/quickstart)
+*   In Apache Shiro's Git repository: [https://github.com/apache/shiro/tree/main/samples/quickstart](https://github.com/apache/shiro/tree/main/samples/quickstart)
 *   In Apache Shiro's source distribution's `samples/quickstart` directory. The source distribution is available from the [Download](download.html "Download") page.
 
 <a name="Tutorial-Setup"></a>
diff --git a/version-2-brainstorming.md b/version-2-brainstorming.md
index 374b263..6a24c41 100644
--- a/version-2-brainstorming.md
+++ b/version-2-brainstorming.md
@@ -113,7 +113,7 @@
 
 Convert this to be a sub-interface of Map with additional per-Realm utility methods.
 
-See the [PrincipalMap](https://github.com/apache/shiro/blob/master/core/src/main/java/org/apache/shiro/subject/PrincipalMap.java) concept for ideas (experimental, not referenced in Shiro 1.x at the moment).
+See the [PrincipalMap](https://github.com/apache/shiro/blob/main/core/src/main/java/org/apache/shiro/subject/PrincipalMap.java) concept for ideas (experimental, not referenced in Shiro 1.x at the moment).
 
 Maybe rename this to 'attributes'? i.e. `subject.getAttributes()`?
 
diff --git a/webapp-tutorial.md b/webapp-tutorial.md
index 138c6a8..72c73e5 100644
--- a/webapp-tutorial.md
+++ b/webapp-tutorial.md
@@ -3,8 +3,8 @@
 <div class="alert alert-warning">
     <span class="glyphicon glyphicon-warning-sign"></span> <strong>NOTE: This Page is Out of Date</strong>
     <hr class="message-inner-separator">
-    <p>See the full list of official Apache Shiro sample apps on <a href="https://github.com/apache/shiro/tree/master/samples">Github</a>.
-Help the project out by updating this page via a <a href="https://github.com/apache/shiro-site/edit/master/webapp-tutorial.md.vtl">Pull Request</a.></p>
+    <p>See the full list of official Apache Shiro sample apps on <a href="https://github.com/apache/shiro/tree/main/samples">Github</a>.
+Help the project out by updating this page via a <a href="https://github.com/apache/shiro-site/edit/main/webapp-tutorial.md.vtl">Pull Request</a.></p>
 </div>
 
 <!-- TODO: Stormpath has been shutdown, this tutorial needs to be updated to use a different Realm, possibly a JDBC Realm backed by an in memory DB. -->
@@ -46,7 +46,7 @@
 
 ### Tutorial Format
 
-This is a step-by-step tutorial.  The tutorial, and all of its steps, exist as a Git repository.  When you clone the git repository, the `master` branch is your starting point.  Each step in the tutorial is a separate branch.  You can follow along simply by checking out the git branch that reflects the tutorial step you are reviewing.
+This is a step-by-step tutorial.  The tutorial, and all of its steps, exist as a Git repository.  When you clone the git repository, the `main` branch is your starting point.  Each step in the tutorial is a separate branch.  You can follow along simply by checking out the git branch that reflects the tutorial step you are reviewing.
 
 ### The Application
 
@@ -83,7 +83,7 @@
 
 ### 3. Review project structure
 
-After cloning the repo, your current `master` branch will have the following structure:
+After cloning the repo, your current `main` branch will have the following structure:
 
 ``` nohighlight
     apache-shiro-tutorial-webapp/
@@ -132,7 +132,7 @@
 <a id="step1"></a>
 ## Step 1: Enable Shiro
 
-Our initial repository `master` branch is just a simple generic web application that could be used as a template for any application.  Let's add the bare minimum to enable Shiro in the web app next.
+Our initial repository `main` branch is just a simple generic web application that could be used as a template for any application.  Let's add the bare minimum to enable Shiro in the web app next.
 
 Perform the following git checkout command to load the `step1` branch:
 
@@ -198,7 +198,7 @@
 
 * The `<listener>` declaration defines a [`ServletContextListener`](http://docs.oracle.com/javaee/6/api/javax/servlet/ServletContextListener.html) that starts up the Shiro environment (including the Shiro `SecurityManager`) upon web application startup.  By default, this listener automatically knows to look for our `WEB-INF/shiro.ini` file for Shiro configuration.
 
-* The `<filter>` declaration defines the master `ShiroFilter`.  This filter is expected to filter _all_ requests into the web application so Shiro can peform necessary identity and access control operations before allowing a request to reach the application.
+* The `<filter>` declaration defines the main `ShiroFilter`.  This filter is expected to filter _all_ requests into the web application so Shiro can peform necessary identity and access control operations before allowing a request to reach the application.
 
 * The `<filter-mapping>` declaration ensures that _all_ request types are filed by the `ShiroFilter`.  Often `filter-mapping` declarations don't specify `<dispatcher>` elements, but Shiro needs them all defined so it can filter all of the different request types that might execute for a web app.