You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@shiro.apache.org by bd...@apache.org on 2020/11/04 19:51:02 UTC

[shiro-site] branch asf-site updated: redirect spring.html to spring-framework.html

This is an automated email from the ASF dual-hosted git repository.

bdemers pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/shiro-site.git


The following commit(s) were added to refs/heads/asf-site by this push:
     new 99a3807  redirect spring.html to spring-framework.html
99a3807 is described below

commit 99a38071864bfc65dd8f670719624188ebf542e5
Author: Brian Demers <bd...@apache.org>
AuthorDate: Wed Nov 4 14:50:53 2020 -0500

    redirect spring.html to spring-framework.html
---
 .htaccess   |   1 +
 spring.html | 420 ------------------------------------------------------------
 2 files changed, 1 insertion(+), 420 deletions(-)

diff --git a/.htaccess b/.htaccess
index 8d1f1ad..8e122db 100644
--- a/.htaccess
+++ b/.htaccess
@@ -10,3 +10,4 @@ RedirectMatch ^/shiro-aspectj(.*) /static/current/shiro-aspectj/$1
 RedirectMatch ^/shiro-spring(.*) /static/current/shiro-spring/$1
 RedirectMatch ^/shiro-guice(.*) /static/current/shiro-guice/$1
 RedirectMatch ^/shiro-web(.*) /static/current/shiro-web/$1
+RedirectMatch ^/spring.html /spring-framework.html
diff --git a/spring.html b/spring.html
deleted file mode 100644
index 75ac49d..0000000
--- a/spring.html
+++ /dev/null
@@ -1,420 +0,0 @@
-<!--
-   Licensed to the Apache Software Foundation (ASF) under one or more
-   contributor license agreements.  See the NOTICE file distributed with
-   this work for additional information regarding copyright ownership.
-   The ASF licenses this file to You under the Apache License, Version 2.0
-   (the "License"); you may not use this file except in compliance with
-   the License.  You may obtain a copy of the License at
-
-        http://www.apache.org/licenses/LICENSE-  2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
--->
-<html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<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">
-    <meta name="google-site-verification" content="ecFap6dWJgS_GCCtxmJQJ_nFYQhM6EgSpBPZDU7xsCE">
-    <meta name="msvalidate.01" content="0B57EB46CBFAD8FD45008D2DB6B6C68C">
-    <meta name="y_key" content="e47896cd6bae4920">
-    <link rel="sitemap" type="application/xml" title="Sitemap" href="/sitemap.xml">
-
-    <title>
-                    Apache Shiro | Simple. Java. Security.
-        </title>
-
-
-    <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">
-
-    <!-- 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>
-
-    <link rel="stylesheet" href="./assets/css/bootstrap-social.css">
-
-    <!-- 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>hljs.initHighlightingOnLoad();</script>
-
-    <script type="text/javascript">
-
-        $( document ).ready(function() {
-            addPageEditLink();
-        });
-    </script>
-</head>
-
-<body>
-
-    <div id="top-bar"></div>
-
-    <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 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>
-            <a class="pull-right" href="https://www.apache.org/events/current-event.html">
-                <img style="padding-top: 8px" src="https://www.apache.org/events/current-event-125x125.png"/>
-            </a>
-        </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 class="dropdown">
-                    <a href="#" class="dropdown-toggle" data-toggle="dropdown">
-                        Web Apps <b class="caret"></b>
-                    </a>
-
-                    <ul class="dropdown-menu">
-                        <li><a href="./web.html">General</a></li>
-                        <li class="divider"></li>
-                        <li><a href="./web-features.html">Features</a></li>
-                    </ul>
-                </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-boot.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 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>
-
-                <li class="dropdown">
-                    <a href="#" class="dropdown-toggle" data-toggle="dropdown">
-                        About <b class="caret"></b>
-                    </a>
-
-                    <ul class="dropdown-menu">
-                        <li><a href="./about.html">About</a></li>
-                        <li><a href="./security-reports.html">Vulnerability Reports</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/security/">Security</a></li>
-                    </ul>
-                </li>
-            </ul>
-        </div>
-        <!-- /.navbar-collapse -->
-    </nav>
-
-
-            
-
-<!-- spacer allows enough room to display the header -->
-<div id="spacer" style="width: 0; height: 200px; float: left"></div>
-
-<!-- related content (if any) -->
-    <div style="border-style: solid; border-width: 2px; border-color: navy; padding: 5px; margin-left: 20px; margin-bottom: 20px; width:275px; float: right; clear: both; ">
-      <h2>Related Content</h2>
-                    <h3><a href="web.html">Web Apps with Shiro</a></h3>
-            <p>Detailed support for integrating Shiro into web applications.</br><span style="font-size:11"><a href="web.html">Read More &gt;&gt;</a></span></p>
-                    <h3><a href="webapp-tutorial.html">Web App Tutorial</a></h3>
-            <p>Step-by-step tutorial for securing a web application with Shiro.</br><span style="font-size:11"><a href="webapp-tutorial.html">Read More &gt;&gt;</a></span></p>
-          </div>
-  <a name="Spring-IntegratingApacheShirointoSpringbasedApplications"></a>
-<h1>Integrating Apache Shiro into Spring-based Applications</h1>
-<p>This page covers the ways to integrate Shiro into <a href="http://spring.io">Spring</a>-based applications.</p>
-<p>Shiro&rsquo;s JavaBeans compatibility makes it perfectly suited to be configured via Spring XML or other Spring-based configuration mechanisms. Shiro applications need an application singleton <code>SecurityManager</code> instance. Note that this does not have to be a <em>static</em> singleton, but there should only be a single instance used by the application, whether its a static singleton or not.</p>
-<h2><a name="Spring-StandaloneApplications"></a>Standalone Applications</h2>
-<p>Here is the simplest way to enable an application singleton <code>SecurityManager</code> in Spring applications:</p>
-<pre><code class="xml">&lt;!-- Define the realm you want to use to connect to your back-end security datasource: --&gt;
-&lt;bean id=&quot;myRealm&quot; class=&quot;...&quot;&gt;
-    ...
-&lt;/bean&gt;
-
-&lt;bean id=&quot;securityManager&quot; class=&quot;org.apache.shiro.mgt.DefaultSecurityManager&quot;&gt;
-    &lt;!-- Single realm app.  If you have multiple realms, use the &#39;realms&#39; property instead. --&gt;
-    &lt;property name=&quot;realm&quot; ref=&quot;myRealm&quot;/&gt;
-&lt;/bean&gt;
-
-&lt;bean id=&quot;lifecycleBeanPostProcessor&quot; class=&quot;org.apache.shiro.spring.LifecycleBeanPostProcessor&quot;/&gt;
-
-&lt;!-- For simplest integration, so that all SecurityUtils.* methods work in all cases, --&gt;
-&lt;!-- make the securityManager bean a static singleton.  DO NOT do this in web         --&gt;
-&lt;!-- applications - see the &#39;Web Applications&#39; section below instead.                 --&gt;
-&lt;bean class=&quot;org.springframework.beans.factory.config.MethodInvokingFactoryBean&quot;&gt;
-    &lt;property name=&quot;staticMethod&quot; value=&quot;org.apache.shiro.SecurityUtils.setSecurityManager&quot;/&gt;
-    &lt;property name=&quot;arguments&quot; ref=&quot;securityManager&quot;/&gt;
-&lt;/bean&gt;
-</code></pre>
-<a name="Spring-WebApplications"></a>
-<h2><a href="#web-applications" name="web-applications">Web Applications</a></h2>
-<p>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<br/>ad-hoc custom filter chains to be executed based on any URL path expression.</p>
-<p>Prior to Shiro 1.0, you had to use a hybrid approach in Spring web applications, defining the Shiro filter and<br/>all of its configuration properties in web.xml but define the <code>SecurityManager</code> in Spring XML. This was a little frustrating since you couldn&rsquo;t 1) consolidate your configuration in one place and 2) leverage the configuration power of the more advanced Spring features, like the <code>PropertyPlaceholderConfigurer</code> or abstract beans to consolidate com [...]
-<p>Now in Shiro 1.0 and later, all Shiro configuration is done in Spring XML providing access to the more robust Spring configuration mechanisms.</p>
-<p>Here is how to configure Shiro in a Spring-based web application:</p>
-<a name="Spring-web.xml"></a>
-<h3>web.xml</h3>
-<p>In addition to your other Spring web.xml elements (<code>ContextLoaderListener</code>, <code>Log4jConfigListener</code>, etc), define the following filter and filter mapping:</p>
-<pre><code class="xml">&lt;!-- The filter-name matches name of a &#39;shiroFilter&#39; bean inside applicationContext.xml --&gt;
-&lt;filter&gt;
-    &lt;filter-name&gt;shiroFilter&lt;/filter-name&gt;
-    &lt;filter-class&gt;org.springframework.web.filter.DelegatingFilterProxy&lt;/filter-class&gt;
-    &lt;init-param&gt;
-        &lt;param-name&gt;targetFilterLifecycle&lt;/param-name&gt;
-        &lt;param-value&gt;true&lt;/param-value&gt;
-    &lt;/init-param&gt;
-&lt;/filter&gt;
-
-...
-
-&lt;!-- Make sure any request you want accessible to Shiro is filtered. /* catches all --&gt;
-&lt;!-- requests.  Usually this filter mapping is defined first (before all others) to --&gt;
-&lt;!-- ensure that Shiro works in subsequent filters in the filter chain:             --&gt;
-&lt;filter-mapping&gt;
-    &lt;filter-name&gt;shiroFilter&lt;/filter-name&gt;
-    &lt;url-pattern&gt;/*&lt;/url-pattern&gt;
-&lt;/filter-mapping&gt;
-</code></pre>
-<a name="Spring-applicationContext.xml"></a>
-<h3>applicationContext.xml</h3>
-<p>In your applicationContext.xml file, define the web-enabled <code>SecurityManager</code> and the &lsquo;shiroFilter&rsquo; bean that will be referenced from <code>web.xml</code>.</p>
-<pre><code class="xml">&lt;bean id=&quot;shiroFilter&quot; class=&quot;org.apache.shiro.spring.web.ShiroFilterFactoryBean&quot;&gt;
-    &lt;property name=&quot;securityManager&quot; ref=&quot;securityManager&quot;/&gt;
-    &lt;!-- override these for application-specific URLs if you like:
-    &lt;property name=&quot;loginUrl&quot; value=&quot;/login.jsp&quot;/&gt;
-    &lt;property name=&quot;successUrl&quot; value=&quot;/home.jsp&quot;/&gt;
-    &lt;property name=&quot;unauthorizedUrl&quot; value=&quot;/unauthorized.jsp&quot;/&gt; --&gt;
-    &lt;!-- The &#39;filters&#39; property is not necessary since any declared javax.servlet.Filter bean  --&gt;
-    &lt;!-- defined will be automatically acquired and available via its beanName in chain        --&gt;
-    &lt;!-- definitions, but you can perform instance overrides or name aliases here if you like: --&gt;
-    &lt;!-- &lt;property name=&quot;filters&quot;&gt;
-        &lt;util:map&gt;
-            &lt;entry key=&quot;anAlias&quot; value-ref=&quot;someFilter&quot;/&gt;
-        &lt;/util:map&gt;
-    &lt;/property&gt; --&gt;
-    &lt;property name=&quot;filterChainDefinitions&quot;&gt;
-        &lt;value&gt;
-            # some example chain definitions:
-            /admin/** = authc, roles[admin]
-            /docs/** = authc, perms[document:read]
-            /** = authc
-            # more URL-to-FilterChain definitions here
-        &lt;/value&gt;
-    &lt;/property&gt;
-&lt;/bean&gt;
-
-&lt;!-- Define any javax.servlet.Filter beans you want anywhere in this application context.   --&gt;
-&lt;!-- They will automatically be acquired by the &#39;shiroFilter&#39; bean above and made available --&gt;
-&lt;!-- to the &#39;filterChainDefinitions&#39; property.  Or you can manually/explicitly add them     --&gt;
-&lt;!-- to the shiroFilter&#39;s &#39;filters&#39; Map if desired. See its JavaDoc for more details.       --&gt;
-&lt;bean id=&quot;someFilter&quot; class=&quot;...&quot;/&gt;
-&lt;bean id=&quot;anotherFilter&quot; class=&quot;...&quot;&gt; ... &lt;/bean&gt;
-...
-
-&lt;bean id=&quot;securityManager&quot; class=&quot;org.apache.shiro.web.mgt.DefaultWebSecurityManager&quot;&gt;
-    &lt;!-- Single realm app.  If you have multiple realms, use the &#39;realms&#39; property instead. --&gt;
-    &lt;property name=&quot;realm&quot; ref=&quot;myRealm&quot;/&gt;
-    &lt;!-- By default the servlet container sessions will be used.  Uncomment this line
-         to use shiro&#39;s native sessions (see the JavaDoc for more): --&gt;
-    &lt;!-- &lt;property name=&quot;sessionMode&quot; value=&quot;native&quot;/&gt; --&gt;
-&lt;/bean&gt;
-&lt;bean id=&quot;lifecycleBeanPostProcessor&quot; class=&quot;org.apache.shiro.spring.LifecycleBeanPostProcessor&quot;/&gt;
-
-&lt;!-- Define the Shiro Realm implementation you want to use to connect to your back-end --&gt;
-&lt;!-- security datasource: --&gt;
-&lt;bean id=&quot;myRealm&quot; class=&quot;...&quot;&gt;
-    ...
-&lt;/bean&gt;
-</code></pre>
-<a name="Spring-EnablingShiroAnnotations"></a>
-<h2><a href="#enabling-shiro-annotations" name="enabling-shiro-annotations">Enabling Shiro Annotations</a></h2>
-<p>In both standalone and web applications, you might want to use Shiro&rsquo;s Annotations for security checks (for example, <code>@RequiresRoles</code>, <code>@RequiresPermissions</code>, etc. This requires Shiro&rsquo;s Spring AOP integration to scan for the appropriate annotated classes and perform security logic as necessary.</p>
-<p>Here is how to enable these annotations. Just add these two bean definitions to <code>applicationContext.xml</code>:</p>
-<pre><code class="xml">&lt;!-- Enable Shiro Annotations for Spring-configured beans.  Only run after --&gt;
-&lt;!-- the lifecycleBeanProcessor has run: --&gt;
-&lt;bean class=&quot;org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator&quot; depends-on=&quot;lifecycleBeanPostProcessor&quot;/&gt;
-    &lt;bean class=&quot;org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor&quot;&gt;
-    &lt;property name=&quot;securityManager&quot; ref=&quot;securityManager&quot;/&gt;
-&lt;/bean&gt;
-</code></pre>
-<a name="Spring-SecureSpringRemoting"></a>
-<h2><a href="#secure-spring-remoting" name="secure-spring-remoting">Secure Spring Remoting</a></h2>
-<p>There are two parts to Shiro&rsquo;s Spring remoting support: Configuration for the client making the remoting call and configuration for the server receiving and processing the remoting call.</p>
-<a name="Spring-ServersideConfiguration"></a>
-<h3>Server-side Configuration</h3>
-<p>When a remote method invocation comes in to a Shiro-enabled server, the <a href="subject.html" title="Subject">Subject</a> associated with that RPC call must be bound to the receiving thread for access during the thread&rsquo;s execution. This is done by defining Shiro&rsquo;s <code>SecureRemoteInvocationExecutor</code> bean in <code>applicationContext.xml</code>:</p>
-<pre><code class="xml">&lt;!-- Secure Spring remoting:  Ensure any Spring Remoting method invocations --&gt;
-&lt;!-- can be associated with a Subject for security checks. --&gt;
-&lt;bean id=&quot;secureRemoteInvocationExecutor&quot; class=&quot;org.apache.shiro.spring.remoting.SecureRemoteInvocationExecutor&quot;&gt;
-    &lt;property name=&quot;securityManager&quot; ref=&quot;securityManager&quot;/&gt;
-&lt;/bean&gt;
-</code></pre>
-<p>Once you have defined this bean, you must plug it in to whatever remoting <code>Exporter</code> you are using to export/expose your services. <code>Exporter</code> implementations are defined according to the remoting mechanism/protocol in use. See Spring&rsquo;s <a href="http://docs.spring.io/spring/docs/2.5.x/reference/remoting.html">Remoting chapter</a> on defining <code>Exporter</code> beans.</p>
-<p>For example, if using HTTP-based remoting (notice the property reference to the <code>secureRemoteInvocationExecutor</code> bean):</p>
-<pre><code class="xml">&lt;bean name=&quot;/someService&quot; class=&quot;org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter&quot;&gt;
-    &lt;property name=&quot;service&quot; ref=&quot;someService&quot;/&gt;
-    &lt;property name=&quot;serviceInterface&quot; value=&quot;com.pkg.service.SomeService&quot;/&gt;
-    &lt;property name=&quot;remoteInvocationExecutor&quot; ref=&quot;secureRemoteInvocationExecutor&quot;/&gt;
-&lt;/bean&gt;
-</code></pre>
-<a name="Spring-ClientsideConfiguration"></a>
-<h3>Client-side Configuration</h3>
-<p>When a remote call is being executed, the <code>Subject</code> identifying information must be attached to the remoting payload to let the server know who is making the call. If the client is a Spring-based client, that association is done via Shiro&rsquo;s <code>SecureRemoteInvocationFactory</code>:</p>
-<pre><code class="xml">&lt;bean id=&quot;secureRemoteInvocationFactory&quot; class=&quot;org.apache.shiro.spring.remoting.SecureRemoteInvocationFactory&quot;/&gt;
-</code></pre>
-<p>Then after you&rsquo;ve defined this bean, you need to plug it in to the protocol-specific Spring remoting <code>ProxyFactoryBean</code> you&rsquo;re using.</p>
-<p>For example, if you were using HTTP-based remoting (notice the property reference to the <code>secureRemoteInvocationFactory</code> bean defined above):</p>
-<pre><code class="xml">&lt;bean id=&quot;someService&quot; class=&quot;org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean&quot;&gt;
-    &lt;property name=&quot;serviceUrl&quot; value=&quot;http://host:port/remoting/someService&quot;/&gt;
-    &lt;property name=&quot;serviceInterface&quot; value=&quot;com.pkg.service.SomeService&quot;/&gt;
-    &lt;property name=&quot;remoteInvocationFactory&quot; ref=&quot;secureRemoteInvocationFactory&quot;/&gt;
-&lt;/bean&gt;
-</code></pre>
-<a name="Spring-Lendahandwithdocumentation"></a>
-<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 correcting, 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="spring.md"></input></p>    
-</div>
-
-    <div class="footer-padding"></div>
-    <footer class="custom-footer">
-
-        <div class="col-md-5">
-            <div class="copyright-footer">
-            <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-2020 The Apache Software Foundation</p>
-                </div>
-        </div>
-
-        <div class="social col-md-2">
-            <a class="btn btn-social-icon btn-sm btn-twitter" target="_blank" href="https://twitter.com/ApacheShiro"><span class="fa fa-twitter"></span></a>
-            <a class="btn btn-social-icon btn-sm btn-facebook" target="_blank" href="https://www.facebook.com/ApacheShiro"><span class="fa fa-facebook"></span></a>
-            <a class="btn btn-social-icon btn-sm btn-linkedin" target="_blank" href="https://www.linkedin.com/groups/4382576"><span class="fa fa-linkedin"></span></a>
-        </div>
-
-
-        <div class="col-md-2"></div>
-        <div class="col-md-2 editThisPage">
-            <div class="footer-shield"></div>
-        </div>
-
-    </footer> <!--END FOOTER-->
-
-</body>
-</html>