blob: 11f39fac9efdc3f71c77f456ce70f3c321f85813 [file] [log] [blame]
<!DOCTYPE html>
<!--
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 lang="en">
<head>
<meta charset="utf-8"/>
<title>Apache Shiro Articles | Apache Shiro</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="keywords" content='community'>
<meta name="generator" content="JBake">
<meta name="google-site-verification" content="QIax6uT5UX3enoU0G8Pz2pXbQ45KaQuHZ3nCh9V27mw">
<meta name="google-site-verification" content="ecFap6dWJgS_GCCtxmJQJ_nFYQhM6EgSpBPZDU7xsCE">
<meta name="google-site-verification" content="gBTYOG8lMfNb_jrWrH3kFbudpEs_WrAJ2lb2-zLRaso"/>
<meta name="msvalidate.01" content="0B57EB46CBFAD8FD45008D2DB6B6C68C">
<meta property="og:title" content="Apache Shiro Articles | Apache Shiro"/>
<meta property="og:type" content="article"/>
<meta name="twitter:card" content="summary" />
<meta name="twitter:site" content="@ApacheShiro" />
<meta property="article:modification_time" content="2010-03-18T00:00:00Z"/>
<meta property="article:tag" content='community'/>
<meta property="og:locale" content="en_US" />
<meta property="og:url" content='https://shiro.apache.org/articles.html'/>
<meta property="og:image" content='images/shiro-featured-image.png'/>
<meta property="og:image:width" content='1200'/>
<meta property="og:image:height" content='628'/>
<meta property="og:site_name" content="Apache Shiro"/>
<!-- Le styles -->
<link href="css/bootstrap.min.css" rel="stylesheet">
<link href="bootstrap-icons-1.5.0/bootstrap-icons.css" rel="stylesheet">
<link href="css/asciidoctor.css" rel="stylesheet">
<link href="css/base.css" rel="stylesheet">
<link href="highlight.js-11.2.0/styles/default.min.css" rel="stylesheet">
<link href="css/gh-pages/gh-fork-ribbon.css" rel="stylesheet"/>
<!-- Fav and touch icons -->
<!--<link rel="apple-touch-icon-precomposed" sizes="144x144" href="../assets/ico/apple-touch-icon-144-precomposed.png">
<link rel="apple-touch-icon-precomposed" sizes="114x114" href="../assets/ico/apple-touch-icon-114-precomposed.png">
<link rel="apple-touch-icon-precomposed" sizes="72x72" href="../assets/ico/apple-touch-icon-72-precomposed.png">
<link rel="apple-touch-icon-precomposed" href="../assets/ico/apple-touch-icon-57-precomposed.png">-->
<link rel="shortcut icon" href="favicon.ico">
<!-- Matomo -->
<script>
var _paq = window._paq = window._paq || [];
/* tracker methods like "setCustomDimension" should be called before "trackPageView" */
_paq.push(['disableCookies']);
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u="//matomo.privacy.apache.org/";
_paq.push(['setTrackerUrl', u+'matomo.php']);
_paq.push(['setSiteId', '2']);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
})();
</script>
<!-- End Matomo Code -->
</head>
<body>
<div id="top-bar"></div>
<a class="github-fork-ribbon right-top" href="https://github.com/apache/shiro" title="Fork me on GitHub">Fork me on GitHub</a>
<div id="wrap">
<div class="masthead">
<p class="lead">
<a href="index.html"><img src="images/apache-shiro-logo.png" style="height:100px; width:auto; vertical-align: bottom; margin-top: 20px;" alt="Apache Shiro Logo"></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" alt="Apache Software Foundation Event Banner"/>
</a>
</p>
</div>
<!-- Fixed navbar -->
<nav class="navbar navbar-expand-lg navbar-light bg-light shadow-sm mb-4">
<div class="container-fluid">
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarSupportedContent">
<ul class="navbar-nav me-auto mb-2 mb-lg-0">
<li class="nav-item">
<a class="nav-link" href="get-started.html">Get Started</a>
</li>
<li class="nav-item">
<a class="nav-link" href="documentation.html">Docs</a>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown-webapps" role="button" data-bs-toggle="dropdown" aria-expanded="false">
Web Apps
</a>
<ul class="dropdown-menu" aria-labelledby="navbarDropdown-webapps">
<li><a class="dropdown-item" href="web.html">General</a></li>
<li><a class="dropdown-item" href="jaxrs.html">JAX-RS</a></li>
<li><a class="dropdown-item" href="jakarta-ee.html">Jakarta EE</a></li>
<li><hr class="dropdown-divider"></li>
<li><a class="dropdown-item" href="web-features.html">Features</a></li>
</ul>
</li>
<li><a class="nav-link" href="features.html">Features</a></li>
<!-- integrations -->
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown-integrations" role="button" data-bs-toggle="dropdown" aria-expanded="false">
Integrations
</a>
<ul class="dropdown-menu" aria-labelledby="navbarDropdown-integrations">
<li><a class="dropdown-item" href="spring-boot.html">Spring</a></li>
<li><a class="dropdown-item" href="guice.html">Guice</a></li>
<li><hr class="dropdown-divider"></li>
<li><a class="dropdown-item" href="integration.html">Third-Party Integrations</a></li>
</ul>
</li>
<!-- Community -->
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown-community" role="button" data-bs-toggle="dropdown" aria-expanded="false">
Community
</a>
<ul class="dropdown-menu" aria-labelledby="navbarDropdown-community">
<li><a class="dropdown-item" href="forums.html">Community Forums</a></li>
<li><a class="dropdown-item" href="mailing-lists.html">Mailing Lists</a></li>
<li><a class="dropdown-item" href="articles.html">Articles</a></li>
<li><a class="dropdown-item" href="news.html">News</a></li>
<li><a class="dropdown-item" href="events.html">Events</a></li>
<li><hr class="dropdown-divider"></li>
<li><a class="dropdown-item" href="community.html">More</a></li>
</ul>
</li>
<!-- About -->
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown-about" role="button" data-bs-toggle="dropdown" aria-expanded="false">
About
</a>
<ul class="dropdown-menu" aria-labelledby="navbarDropdown-about">
<li><a class="dropdown-item" href="about.html">About</a></li>
<li><a class="dropdown-item" href="privacy-policy.html">Privacy Policy</a></li>
<li><a class="dropdown-item" href="security-reports.html">Vulnerability Reports</a></li>
</ul>
</li>
</ul>
<ul class="d-flex justify-content-end navbar-nav mb-2 mb-lg-0">
<!-- The ASF -->
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown-asf" role="button" data-bs-toggle="dropdown" aria-expanded="false">
Apache Software Foundation
</a>
<ul class="dropdown-menu" aria-labelledby="navbarDropdown-asf">
<li><a class="dropdown-item" href="https://www.apache.org/">Apache Homepage</a></li>
<li><a class="dropdown-item" href="https://www.apache.org/licenses/">License</a></li>
<li><a class="dropdown-item" href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
<li><a class="dropdown-item" href="https://www.apache.org/foundation/thanks.html">Thanks</a></li>
<li><a class="dropdown-item" href="https://www.apache.org/security/">Security</a></li>
</ul>
</li>
</ul>
</div>
</div>
</nav>
<div class="page-header">
<h1>Apache Shiro Articles</h1>
</div>
<div class="admonitionblock tip">
<table>
<tbody>
<tr>
<td class="icon">
<div class="title">Handy Hint</div>
</td>
<td class="content">
<div class="title">Shiro v1 version notice</div>
<div class="paragraph">
<p>As of 2024-02-28, Shiro v1 will soon be superseded by v2.<p>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<div id="preamble">
<div class="sectionbody">
<div id="Articles-ApacheShiroArticles" class="paragraph">
<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">mailing lists</a>.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="Articles-IntroductoryArticles">Introductory Articles</h2>
<div class="sectionbody">
<div class="paragraph">
<p>New to Shiro? Here are some great introductory articles:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><strong><a href="https://www.infoq.com/articles/apache-shiro">Application Security with Apache Shiro</a></strong> InfoQ article by Les Hazlewood, Apache Shiro PMC Chair.</p>
</li>
<li>
<p><strong><a href="webapp-tutorial.html">Apache Shiro Beginner&#8217;s Webapp Tutorial</a>: a step-by-step tutorial to enable Shiro in a web application</strong> on 19 November 2013 by Les Hazlewood</p>
</li>
<li>
<p><strong><a href="https://stormpath.com/blog/whats-new-apache-shiro-12">What&#8217;s new in Apache Shiro 1.2</a></strong> on 13 March 2012 by Les Hazlewood.</p>
</li>
<li>
<p><strong><a href="https://web.archive.org/web/20201109014747/http://www.ibm.com/developerworks/web/library/wa-apacheshiro/">Introducing Apache Shiro</a></strong> by Nathan Good on IBM DeveloperWorks, 14 September 2010 [archive.org].</p>
</li>
<li>
<p><strong>An Introduction to Shiro (formerly JSecurity/Ki) - A Beginner&#8217;s Tutorial</strong> by <a href="https://www.brucephillips.name/">Bruce Phillips</a>:</p>
<div class="ulist">
<ul>
<li>
<p><a href="https://www.brucephillips.name/blog/index.cfm/2009/4/5/An-Introduction-to-Ki-formerly-JSecurity&#8212;&#8203;A-Beginners&#8212;&#8203;Tutorial-Part-1">Part 1</a></p>
</li>
<li>
<p><a href="https://www.brucephillips.name/blog/index.cfm/2009/4/5/An-Introduction-to-Ki-formerly-JSecurity&#8212;&#8203;A-Beginners&#8212;&#8203;Tutorial-Part-2">Part 2</a></p>
</li>
<li>
<p><a href="https://www.brucephillips.name/blog/index.cfm/2009/4/5/An-Introduction-to-Ki-formerly-JSecurity&#8212;&#8203;A-Beginners&#8212;&#8203;Tutorial-Part-3">Part 3</a></p>
</li>
<li>
<p><a href="https://www.brucephillips.name/blog/index.cfm/2009/4/5/An-Introduction-to-Ki-formerly-JSecurity&#8212;&#8203;A-Beginners&#8212;&#8203;Tutorial-Part-4">Part 4</a></p>
</li>
<li>
<p><a href="https://www.brucephillips.name/blog/index.cfm/2009/5/1/An-Introduction-to-Ki-formerly-JSecurity&#8212;&#8203;A-Beginners-Tutorial-Part-5">Part 5</a></p>
</li>
</ul>
</div>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="Articles-AdditionalArticles">Additional Articles</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Once you&#8217;ve gotten your feet wet, you might find these useful too:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><strong><a href="https://www.czetsuyatech.com/2012/10/javaee-shiro-with-jdbc-on-glassfish.html">How to use Shiro with JDBC on JavaEE and Glassfish</a></strong> by czetsuya from October 2012.</p>
</li>
<li>
<p><strong><a href="https://mehmetceliksoy.wordpress.com/2015/06/28/shiro-jdbc-realm/">Custom Apache Shiro JDBC Realm</a></strong> by Mehmet Celiksoy</p>
</li>
<li>
<p><strong><a href="https://www.zkoss.org/wiki/Small_Talks/2012/March/Securing_ZK_Applications_With_Apache_Shiro">Securing ZK Applications with Apache Shiro</a></strong> by Ashish Dasnurkar on 6 March 2012.</p>
</li>
<li>
<p><strong>Facebook Login with Apache Shiro</strong> by Mike Warren on 28 November 2011</p>
<div class="ulist">
<ul>
<li>
<p><a href="https://mrdwnotes.wordpress.com/2011/11/28/using-apache-shiro-security-to-allow-login-via-facebook-part-1/">Part 1</a></p>
</li>
<li>
<p><a href="https://mrdwnotes.wordpress.com/2011/11/28/using-apache-shiro-security-to-allow-login-via-facebook-part-2/">Part 2</a></p>
</li>
</ul>
</div>
</li>
<li>
<p><strong>Apache Shiro - a blog series by Meri</strong></p>
<div class="ulist">
<ul>
<li>
<p><a href="https://meri-stuff.blogspot.com/2011/03/apache-shiro-part-1-basics.html">Part 1 - Basics</a> on 27 March 2011</p>
</li>
<li>
<p><a href="https://meri-stuff.blogspot.com/2011/04/apache-shiro-part-2-realms-database-and.html">Part 2 - Realms, Database and PGP Certificates</a> on 18 April 2011</p>
</li>
<li>
<p><a href="https://meri-stuff.blogspot.com/2011/12/apache-shiro-part-3-cryptography.html">Part 3 - Cryptography</a> on 4 December 2011</p>
</li>
</ul>
</div>
</li>
<li>
<p><strong><a href="https://stormpath.com/blog/new-rbac-resource-based-access-control">The New RBAC: Resource-Based Access Control</a></strong> by Les Hazlewood on 9 May 2011</p>
</li>
<li>
<p><strong><a href="https://blog.xebia.com/author/yamsellem/">HTTP Authentication and Security with Apache Shiro</a></strong> blog article by yamsellem on 18 April 2011.</p>
</li>
<li>
<p><strong><a href="https://spring-java-ee.blogspot.com/2011/04/using-shiro-for-authorization-via-cdi.html">Using Shiro for Authorization via CDI Interceptors then Easily Test with Arquillian</a></strong> blog article by Hendy Irawan on 16 April 2011.</p>
</li>
<li>
<p><strong><a href="https://github.com/mulesoft-labs/mule-module-shiro/">Apache Shiro Support for Mule</a></strong> by Dan Diephouse on 10 January 2011.</p>
</li>
<li>
<p><strong><a href="https://techbeats.deluan.com/apache-shiro-tags-for-jsffacelets">Apache Shiro tags for JSF - Securing Your JSF Pages</a></strong> by Deluan Quintão on 1 November 2010.</p>
</li>
<li>
<p><strong>Shiro DevNexus 2009 Presentation</strong> by Jeremy Haile: (<a href="files/articles/Ki-DevNexus-2009.pdf?version=1&amp;modificationDate=1246602947000">PDF</a>) (<a href="files/articles/Ki-DevNexus-2009.key.zip?version=1&amp;modificationDate=1246602947000">Keynote</a>) (<a href="files/articles/Ki-DevNexus-2009.ppt.zip?version=1&amp;modificationDate=1246602947000">PowerPoint</a>)</p>
</li>
</ul>
</div>
</div>
</div>
<hr />
</div>
<div class="footer-padding"></div>
<div class="container-fluid pt-2 border-top" id="custom-footer">
<footer class="row justify-content-between align-items-center">
<div class=" col-md-5">
<div class="copyright-footer justify-content-start">
<a href="https://www.apache.org/foundation/contributing.html">Donate to the ASF</a>&nbsp;|&nbsp;
<a href="https://www.apache.org/licenses/LICENSE-2.0.html">License</a>&nbsp;
<p class="text-muted">Copyright &copy; 2008-2024 The Apache Software Foundation</p>
</div>
</div>
<div class="d-flex justify-content-center col-md-1">
<a class="btn btn-social"><span class="social-icon social-twitter"><i class="bi bi-twitter"></i></span></a>
<a class="btn btn-social"><span class="social-icon social-facebook"><i class="bi bi-facebook"></i></span></a>
<a class="btn btn-social"><span class="social-icon social-linkedin"><i class="bi bi-linkedin"></i></span></a>
</div>
<div class="d-flex justify-content-end col-md-4" id="editThisPage">
<input type="hidden" id="ghEditPage" value="https://github.com/apache/shiro-site/edit/main/src/site/content/articles.adoc"/>
</div>
<div class="d-flex col-md-2 justify-content-end" style="position: relative">
<div class="footer-shield"></div>
</div>
</footer>
</div>
<!-- Le javascript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->
<script src="js/bootstrap.min.js"></script>
<script src="highlight.js-11.2.0/highlight.min.js"></script>
<script src="js/shiro.js"></script>
<script>
docReady(
addPageEditLink()
);
</script>
<script>hljs.highlightAll();</script>
</body>
</html>