
<h1><a name="News-ApacheShiroNews"></a>Apache Shiro News</h1>

<p>Stay up to date with the latest news on the Apache Shiro Security Framework</p>

<p>Release binaries (.jars) are also available through Maven Central and source bundles through Apache distribution mirrors.

For more information on Shiro, please read the documentation.</p>

<p>Enjoy!</p>

<p>The Apache Shiro Team</p>


<div class="blog-post-listing">

    <div class="logo-heading-block">
        <a class="blogHeading" id="1.4.0-RC2-released" href="#1.4.0-RC2-released">Apache Shiro 1.4.0-RC2 Released</a>
    </div>

    <div class="news-content">
        <p>The Shiro team is pleased to announce the release of Apache Shiro version 1.4.0-RC2. This is a feature release for 1.x.</p>

        <p>This release includes 15 issues resolved since the 1.3.2 release and is available for Download now.</p>

        <p>Of Note:
            <ul>
                <li>The core has been broken up into a fewer smaller modules (lang, crypto, config), but package names remain the same. Maven, Gradle, and Ivy users will NOT be effected.</li>
                <li>New <a href="https://github.com/apache/shiro/tree/shiro-root-1.4.0-RC2/support/spring-boot">modules</a> for Spring Boot</li>
                <li>New <a href="http://search.maven.org/#artifactdetails%7Corg.apache.shiro%7Cshiro-servlet-plugin%7C1.4.0-RC2%7Cjar">servlet fragment module</a></li>
                <li>New module for JAX-RS (based off <a href="https://github.com/silb/shiro-jersey">https://github.com/silb/shiro-jersey</a>)</li>
                <li>Guice 4 support</li>
                <li>Shiro.ini string interpolation</li>
            </ul>
        </p>

        <p>This release is an release candidate, so we encourage feedback on the new modules above.</p>

        <p>Release binaries (.jars) are also available through Maven Central and source bundles through Apache distribution mirrors.</p>

        <p>For more information on <a href="documentation.html">Shiro, please read the documentation.</a></p>

        <p>Enjoy!</p>

        <p>The Apache Shiro Team</p>
</div>
</div>


<div class="blog-post-listing">

    <div class="logo-heading-block">
        <a class="blogHeading" id="1.3.2-released" href="#1.3.2-released">Apache Shiro 1.3.2 Released</a>
    </div>

    <div class="news-content">
        <p>The Shiro team is pleased to announce the release of Apache Shiro version 1.3.2.</p>

        <p>This security release contains 1 fix since the 1.3.1 release.</p>

        <a href="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-6802">CVE-2016-6802</a>:
        <p>Apache Shiro before 1.3.2,  when using a non-root servlet context path,
        specifically crafted requests can be used to by pass some security servlet
        filters, resulting in unauthorized access.</p>

        <p>Release binaries (.jars) are also available through Maven Central and
        source bundles through Apache distribution mirrors.</p>

        <p>For more information on <a href="documentation.html">Shiro, please read the documentation.</a></p>

        <p>The Apache Shiro Team</p>
    </div>
</div>

<div class="blog-post-listing">

    <div class="logo-heading-block">
        <a class="blogHeading" id="1.3.1-released" href="#1.3.1-released">Apache Shiro 1.3.1 Released</a>
    </div>

    <div class="news-content">
        <p>The Shiro team is pleased to announce the release of Apache Shiro version 1.3.1. This is a bug fix release for 1.3.x.</p>

        <p>This release includes <a class="external-link" href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?version=12338099&styleName=Text&projectId=12310950">2 issues resolved</a> since the 1.3.0 release and is available for <a href="download.html" title="Download">Download</a> now.</p>

        <p>Release binaries (.jars) are also available through Maven Central and source bundles through Apache distribution mirrors. </p>

        <p>For more information on <a href="documentation.html">Shiro, please read the documentation.</a></p>

        <p>Enjoy!</p>

        <p>The Apache Shiro Team</p>
    </div>
</div>

<div class="blog-post-listing">

    <div class="logo-heading-block">
        <a class="blogHeading" id="1.3.0-released" href="#1.3.0-released">Apache Shiro 1.3.0 Released</a>
    </div>

    <div class="news-content">
        <p>The Shiro team is pleased to announce the release of Apache Shiro version 1.3.0. This is a feature release for 1.3.x.</p>

        <p>This release includes <a class="external-link" href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?version=12317961&styleName=Text&projectId=12310950">26 issues resolved</a> since the 1.2.6 release and is available for <a href="download.html" title="Download">Download</a> now.</p>

        <p>Release binaries (.jars) are also available through Maven Central and source bundles through Apache distribution mirrors. </p>

        <p>For more information on <a class="external-link" href="http://shiro.apache.org/documentation.html" rel="nofollow">Shiro, please read the documentation.</a></p>

        <p>Enjoy!</p>

        <p>The Apache Shiro Team</p>
    </div>
</div>

<div class="blog-post-listing">
    <div class="logo-heading-block">
        <a class="blogHeading" id="1.2.6-released" href="#1.2.6-released">Apache Shiro 1.2.6 Released</a>
    </div>

    <div class="news-content">
        <p>The Shiro team is pleased to announce the release of Apache Shiro version 1.2.6. This is a bug fix release for 1.2.x.</p>

        <p>This release includes <a class="external-link" href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?version=12335836&projectId=12310950">2 bug fixes</a> since the 1.2.5 release and is available for <a href="download.html" title="Download">Download</a> now.</p>

        <p>Release binaries (.jars) are also available through Maven Central and source bundles through Apache distribution mirrors. </p>

        <p>For more information on <a class="external-link" href="http://shiro.apache.org/documentation.html" rel="nofollow">Shiro, please read the documentation.</a></p>

        <p>Enjoy!</p>

        <p>The Apache Shiro Team</p>
    </div>
</div>


<div class="blog-post-listing">
    <div class="logo-heading-block">
        <a class="blogHeading" id="1.2.5-released" href="#1.2.5-released">Apache Shiro 1.2.5 Released</a>
    </div>

    <div class="news-content">
        <p>The Shiro team is pleased to announce the release of Apache Shiro version 1.2.5. This is a bug fix release for 1.2.x.</p>

        <p>This release includes <a class="external-link" href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12310950&version=12332994">7 bug fixes</a> since the 1.2.4 release and is available for <a href="download.html" title="Download">Download</a> now.</p>

        <p>Release binaries (.jars) are also available through Maven Central and source bundles through Apache distribution mirrors. </p>

        <p>For more information on <a class="external-link" href="http://shiro.apache.org/documentation.html" rel="nofollow">Shiro, please read the documentation.</a></p>

        <p>Enjoy!</p>

        <p>The Apache Shiro Team</p>
    </div>
</div>

<div class="blog-post-listing">
    <div class="logo-heading-block">
        <a class="blogHeading" id="1.2.4-released" href="#1.2.4-released">Apache Shiro 1.2.4 Released</a>
    </div>

    <div class="news-content">
        <p>The Shiro team is pleased to announce the release of Apache Shiro version 1.2.4. This is a bug fix release for 1.2.x.</p>

        <p>This release includes <a class="external-link" href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12310950&version=12329682">5 bug fixes</a> since the 1.2.3 release and is available for <a href="download.html" title="Download">Download</a> now.</p>

        <p>Release binaries (.jars) are also available through Maven Central and source bundles through Apache distribution mirrors. </p>

        <p>For more information on <a class="external-link" href="http://shiro.apache.org/documentation.html" rel="nofollow">Shiro, please read the documentation.</a></p>

        <p>Enjoy!</p>

        <p>The Apache Shiro Team</p>
    </div>
</div>

<div class="blog-post-listing">
    <div class="logo-heading-block">
        <a class="blogHeading" href="2013/05/30/apache-shiro-122-released.html">Apache Shiro 1.2.2 Released</a>
        <div class="page-metadata"><a class="url fn news-userlink" href="https://stormpath.com/blog/author/les">Les Hazlewood</a> posted on May 30, 2013</div>
    </div>

    <div class="news-content">
        <p>Dear Apache Shiro Community,</p>

        <p>The Shiro team is pleased to announce the release of Apache Shiro version 1.2.2.  This is the second bug fix point release after 1.2.0.</p>

        <p>This release includes <a class="external-link" href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12310950&version=12323469">18 bug fixes</a> since the 1.2.1 release and is available for <a href="download.html" title="Download">Download</a> now.</p>

        <p>All binaries (.jars) are available in Maven Central already.  Please note that the Apache mirrors are still updating to reflect the source distribution, but some mirrors may not be updated yet.  If a mirror download link does not work, please try another or wait another 12 to 24 hours.</p>

        <p>For more information on Shiro 1.2, please read the "<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>" article or the previous <a class="external-link" href="2012/01/24/apache-shiro-120-released.html">1.2 release announcement</a>.</p>

        <p>Enjoy!</p>

        <p>The Apache Shiro Team</p>
    </div>
</div>
        
<div class="blog-post-listing">
    <div class="logo-heading-block">
        <a class="blogHeading" href="2012/07/29/apache-shiro-121-released.html">Apache Shiro 1.2.1 Released</a>
        <div class="page-metadata"><a class="url fn news-userlink" href="https://stormpath.com/blog/author/les">Les Hazlewood</a> posted on Jul 29, 2012</div>

    </div>
    
    <div class="news-content">
        <p>Dear Apache Shiro Community,</p>

        <p>The Shiro team is pleased to announce the release of Apache Shiro version 1.2.1.  This is the first bug fix point release after 1.2.0.</p>

        <p>This release includes <a class="external-link" href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12310950&amp;version=12319511">11 bug fixes</a> since the 1.2.0 release and is available for <a href="download.html" title="Download">Download</a> now.</p>

        <p>All binaries (.jars) are available in Maven Central already.  Please note that the Apache mirrors are still updating to reflect the source distribution, but some mirrors may not be updated yet.  If a mirror download link does not work, please try another or wait another 12 to 24 hours.</p>

        <p>For more information on Shiro 1.2, please read the "<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>" article or the previous <a class="external-link" href="2012/01/24/apache-shiro-120-released.html">1.2 release announcement</a>.</p>

        <p>Enjoy!</p>

        <p>The Apache Shiro Team</p>
    </div>
</div>
    
        
<div class="blog-post-listing">
    <div class="logo-heading-block">
        <a class="blogHeading" href="https://stormpath.com/blog/whats-new-apache-shiro-12">What's New in Apache Shiro 1.2?</a>
        <div class="page-metadata"><a class="url fn news-userlink" href="https://stormpath.com/blog/author/les">Les Hazlewood</a> posted on Mar 13, 2012</div>
    </div>
    
    <div class="news-content">
        <p>Here's an article covering some of the main features and enhancements in Apache Shiro 1.2:</p>

        <p><a class="external-link" href="https://stormpath.com/blog/whats-new-apache-shiro-12" rel="nofollow">https://stormpath.com/blog/whats-new-apache-shiro-12</a></p>
    </div>
</div>
    
        
<div class="blog-post-listing">

    <span class="blogHeading"><a class="blogHeading" href="2012/01/24/apache-shiro-120-released.html">Apache Shiro 1.2.0 Released!</a></span>
    <div class="page-metadata"><a class="url fn news-userlink" href="https://stormpath.com/blog/author/les">Les Hazlewood</a> posted on Jan 24, 2012</div>

    
    <div class="news-content">
        <p>Dear Apache Shiro Community,</p>

        <p>The Shiro team is pleased to announce the release of Apache Shiro version 1.2.0!</p>

        <p>This release includes a number of bug fixes and new features since the&#160;1.1.0 release. &#160;The 1.2.0 release is available from <a href="download.html" title="Download">the Download page</a>.</p>

        <p>All binaries (.jars) are available in Maven Central already. &#160;Please&#160;note that the Apache mirrors are still updating to reflect the source&#160;distribution, but some mirrors may not be updated yet. &#160;If a mirror&#160;download link does not work, please try another or wait another 12 to&#160;24 hours.</p>

        <h3><a name="ApacheShiro1.2.0Released%21-NewFeatures"></a>New Features</h3>

        <ul><li>The ability to disable sessions per filter chain or entirely for an&#160;application.</li><li>Servlet Context Listener initialization in web apps (to allow&#160;components to utilize Shiro before Filter initialization)</li><li>A command line program to securely hash passwords (or any url, file&#160;or stream input for that matter).</li><li>New secure password hash formats that adhere to Modular Crypt Format&#160;conventions. &#160;These secure password hashes can be computed with the&#160;above named command line program and saved in text config (e.g.&#160;shiro.ini) directly. &#160;Plaintext passwords should never be stored. &#160;For&#160;those familiar with the Apache HTTPD passwd program, this achieves the&#160;same benefits.</li><li>A new LogoutFilter, as many apps don't need to show a view during&#160;logout (just logout and redirect to some known location).</li><li>Shiro filters can be enabled or disabled without removing them from&#160;the filter chain - useful in development (e.g. turn ssl requirement&#160;off in dev, but keep it on in production).</li><li>A lot of work has gone into making secure password hash storage and&#160;comparison a much simpler task in Shiro, focused around the new&#160;concept of a PasswordService. &#160;You can use a PasswordService directly&#160;in your application code to hash passwords securely. &#160;You can then&#160;configure a PasswordMatcher on your Realm(s) to use the same&#160;PasswordService for password comparisons. &#160;See the PasswordService&#160;JavaDoc for example .ini configuration:
            <ul><li>PasswordService:&#160;<a class="external-link" href="static/current/apidocs/org/apache/shiro/authc/credential/PasswordService.html">static/current/apidocs/org/apache/shiro/authc/credential/PasswordService.html</a></li><li>PasswordMatcher:&#160;<a class="external-link" href="static/current/apidocs/org/apache/shiro/authc/credential/PasswordMatcher.html">static/current/apidocs/org/apache/shiro/authc/credential/PasswordMatcher.html</a></li></ul>
            </li></ul>


        <p>More complete PasswordService and related config documentation will be&#160;added to the Shiro website in the next few days - it was better to&#160;release now for the many who are waiting on the release, and follow up&#160;with this part of the documentation shortly.</p>
        <ul><li>Three new 'support' modules:
            <ul><li>Apache Karaf features (shiro-features-1.2.0.jar)</li><li>Google Guice:&#160;<a class="external-link" href="guice.html">guice.html</a></li><li>Jasig CAS:&#160;<a class="external-link" href="cas.html">cas.html</a></li></ul>
            </li></ul>


        <p>And even more new features! &#160;See the 'Resolved Issues' below for a&#160;complete list.</p>

        <h3><a name="ApacheShiro1.2.0Released%21-Backwardsincompatibleorpotentialbreakingchanges"></a>Backwards-incompatible or potential breaking changes</h3>

        <p>There are only a few small cases where breakage could occur - please&#160;view the release notes to ensure you mitigate any potential breaking&#160;change - particularly if you are using the SecureRandomNumberGenerator<br clear="none">
        or Shiro's Block Cipher Services (AES, Blowfish):</p>

        <p><a class="external-link" href="https://raw.githubusercontent.com/apache/shiro/shiro-root-1.2.0/RELEASE-NOTES">https://raw.githubusercontent.com/apache/shiro/shiro-root-1.2.0/RELEASE-NOTES</a></p>

        <h3><a name="ApacheShiro1.2.0Released%21-ResolvedIssues"></a>Resolved Issues</h3>

        <p>Jira resolved issue report:</p>

        <p><a class="external-link" href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12310950&amp;version=12315478">https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12310950&amp;version=12315478</a></p>

        <p>Enjoy!</p>

        <p>The Apache Shiro Team</p>
    </div>
</div>
    
        
<div class="blog-post-listing">
        <div class="logo-heading-block">

            <a class="blogHeading" href="2011/06/30/apache-shiro-login-demo.html">Apache Shiro Login Demo</a>
            <div class="page-metadata"><a class="url fn news-userlink" href="https://stormpath.com/blog/author/les">Les Hazlewood</a> posted on Jun 30, 2011</div>
            
        </div>
    
    <div class="news-content">
        <p><a class="external-link" href="http://raibledesigns.com/" rel="nofollow">Matt Raible</a> has posted a really nice blog article and video demonstrating a login use case with Apache Shiro.  Check out the <a class="external-link" href="http://raibledesigns.com/rd/entry/java_web_application_security_part2" rel="nofollow">Java Web Application Security - Part III: Apache Shiro Login Demo</a> blog post and the video:</p>


        <object width="480" height="390"><param valuetype="data" name="movie" value="http://www.youtube.com/v/4LD4mF5ex2U?version=3&amp;hl=en_US&amp;rel=0"><param valuetype="data" name="allowFullScreen" value="true"><param valuetype="data" name="allowscriptaccess" value="always"><embed src="http://www.youtube.com/v/4LD4mF5ex2U?version=3&amp;hl=en_US&amp;rel=0" type="application/x-shockwave-flash" width="480" height="390" allowscriptaccess="always" allowfullscreen="true"></embed></object>

    </div>
</div>
    
        
<div class="blog-post-listing">
        <div class="logo-heading-block">
            <a class="blogHeading" href="2011/05/24/the-new-rbac-resource-based-access-control.html">The New RBAC - Resource-Based Access Control</a>
            <div class="page-metadata"><a class="url fn news-userlink" href="https://stormpath.com/blog/author/les">Les Hazlewood</a> posted on May 24, 2011</div>
        </div>
    
    <div class="news-content">
        <p>Hi Shiro community,</p>

        <p>The following article helps explain the differences in role-based vs resource-based access control and why Shiro's permission construct (which is based on resources) can be much better for an application:</p>

        <p><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></p>
    </div>
</div>
    
        
<div class="blog-post-listing">
        <div class="logo-heading-block">
            <a class="blogHeading" href="2011/03/14/infoq-article-on-apache-shiro.html">InfoQ article on Apache Shiro</a>
            <div class="page-metadata"><a class="url fn news-userlink" href="https://stormpath.com/blog/author/les">Les Hazlewood</a> posted on Mar 14, 2011</div>
        </div>
    
    <div class="news-content">
        <p><a class="external-link" href="https://www.infoq.com/articles/apache-shiro" rel="nofollow">https://www.infoq.com/articles/apache-shiro</a></p>
    </div>
</div>
    
        
<div class="blog-post-listing">
        <div class="logo-heading-block">
            <a class="blogHeading" href="2011/02/28/java-authorization-guide-with-apache-shiro-posted.html">Java Authorization Guide with Apache Shiro posted</a>
            <div class="page-metadata"><a class="url fn news-userlink" href="https://stormpath.com/blog/author/alex">Alex Salazar</a> posted on Feb 28, 2011</div>
        </div>
    
    <div class="news-content">
        <p>In our effort to improve the documentation you need to get started with Shiro, we've written a quick <a href="java-authorization-guide.html" title="Java Authorization Guide">Java Authorization Guide</a> for your review.  Check out and tell us what you think.  And if you haven't already, check out our previous post, the <a href="java-authentication-guide.html" title="Java Authentication Guide">Java Authentication Guide</a>.</p>

    </div>
</div>
    
        
<div class="blog-post-listing">
    <div class="logo-heading-block">
        <a class="blogHeading" href="2011/02/10/apache-shiro-integration-for-grails-113-released.html">Apache Shiro Integration for Grails 1.1.3 released</a>
        <div class="page-metadata"><a class="url fn news-userlink" href="https://stormpath.com/blog/author/alex">Alex Salazar</a> posted on Feb 09, 2011</div>
    </div>
    
    <div class="news-content">
        <p>Secure your Grails application quickly and easily using the Apache Shiro security framework. Although easy to get started with, this framework gives you a great deal of flexibility and will support your application as it grows.</p>

        <p><a class="external-link" href="https://grails.org/plugin/shiro" rel="nofollow">https://grails.org/plugin/shiro</a></p>
    </div>
</div>
    
        
<div class="blog-post-listing">
    <div class="logo-heading-block">
        <a class="blogHeading" href="2011/01/13/apache-shiro-support-for-mule.html">Apache Shiro Support for Mule</a>
        <div class="page-metadata"><a class="url fn news-userlink" href="https://stormpath.com/blog/author/alex">Alex Salazar</a> posted on Jan 13, 2011</div>
    </div>
    
    <div class="news-content">
        <p>Mule now has integration with Apache Shiro.  Thanks to Dan Diephouse at <a class="external-link" href="https://developer.mulesoft.com" rel="nofollow">MuleSoft</a> for the great blog post.  </p>

        <p><a class="external-link" href="http://blogs.mulesoft.com/dev/mule-dev/apache-shiro-support-for-mule/" rel="nofollow">http://blogs.mulesoft.com/dev/mule-dev/apache-shiro-support-for-mule/</a></p>
    </div>
</div>
    
        
<div class="blog-post-listing">
    <div class="logo-heading-block">
        <a class="blogHeading" href="2011/01/06/apache-shiro-video-and-slide-from-sf-jug-presentation.html">Apache Shiro Video and Slide from SF JUG Presentation</a>
        <div class="page-metadata"><a class="url fn news-userlink" href="https://stormpath.com/blog/author/alex">Alex Salazar</a> posted on Jan 06, 2011</div>
    </div>
    
    <div class="news-content">
        <p>Check out the video from the San Francisco Java User Group presentation on Apache Shiro.</p>

        <h2><a name="ApacheShiroVideoandSlidefromSFJUGPresentation-Video"></a>Video</h2>

        <object width="640" height="385"><param valuetype="data" name="movie" value="http://www.youtube.com/v/5ZepGFzYHpE?fs=1&amp;hl=en_US"><param valuetype="data" name="allowFullScreen" value="true"><param valuetype="data" name="allowscriptaccess" value="always"><embed src="http://www.youtube.com/v/5ZepGFzYHpE?fs=1&amp;hl=en_US" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="385"></embed></object>

        <p>Courtesy of Aleksandar and Max at the <a class="external-link" href="http://www.sfjava.org/" rel="nofollow">SF JUG</a></p>

    </div>
</div>
    
        
<div class="blog-post-listing">
    <div class="logo-heading-block">
        <a class="blogHeading" href="2010/11/03/apache-shiro-110-released.html">Apache Shiro 1.1.0 Released</a>
        <div class="page-metadata"><a class="url fn news-userlink" href="https://stormpath.com/blog/author/les">Les Hazlewood</a> posted on Nov 03, 2010</div>
    </div>
    
    <div class="news-content">
        <p>Dear Apache Shiro Community,</p>

        <p>We are proud and excited to offer Apache Shiro's first release as an Apache Top Level Project, Apache Shiro version 1.1.0.</p>

        <p>This release includes a number of bug fixes, new features and one important security vulnerability fix - it is recommended that users upgrade to 1.1.0 as soon as possible.</p>

        <p>Version 1.1.0 is available immediately for download <a href="download.html" title="Download">here</a> accompanied by <a href="documentation.html" title="Documentation">associated documentation</a> and <a class="external-link" href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?version=12314742&amp;styleName=Html&amp;projectId=12310950">Release Notes</a>.</p>

        <p>All binaries are available in Maven Central already.  Please note that most of the Apache mirrors have been updated to reflect the source distribution, but some mirrors may not be updated yet.  If a mirror download link does not work, please try another or wait another 12 to 24 hours.</p>

        <p>Enjoy!</p>
    </div>
</div>
    
        
<div class="blog-post-listing">
    <div class="logo-heading-block">
        <a class="blogHeading" href="2010/09/24/apache-shiro-becomes-an-apache-top-level-project.html">Apache Shiro becomes an Apache Top Level Project</a>
        <div class="page-metadata"><a class="url fn news-userlink" href="https://stormpath.com/blog/author/les">Les Hazlewood</a> posted on Sep 24, 2010</div>
    </div>
    
    <div class="news-content">
        <p>On Wednesday, September 22nd 2010, the Apache Software Foundation Board voted unanimously to accept Apache Shiro's graduation out of the Incubator and to become a Apache Top Level Project.</p>

        <p>Many thanks to the entire community for the continued growth and support, and especially to our Mentors, for helping us navigate the project through the incubation process.  Everything is much appreciated and it has been well worth it.</p>

        <p>Next steps:  It will take us a bit of time to migrate our infrastructure to non-Incubator resources (shiro.apache.org subdomain, Subversion move, etc), so please stay tuned.  Hopefully that can be done in the next two weeks.  Shortly thereafter, we hope to release Shiro 1.1.</p>

        <p>Thanks again to all, and please keep contributing to the project and the mailing lists to continually better the project for everyone!</p>

        <p>Best regards,</p>

        <p>Les</p>
    </div>
</div>
    
        
<div class="blog-post-listing">
    <div class="logo-heading-block">
        <a class="blogHeading" href="2010/09/20/san-francisco-jug-presentation.html">San Francisco JUG presentation</a>
        <div class="page-metadata"><a class="url fn news-userlink" href="https://stormpath.com/blog/author/les">Les Hazlewood</a> posted on Sep 20, 2010</div>
    </div>
    
    <div class="news-content">
        <p>On 12 October 2010 at 6:30 pm PDT, Les Hazlewood will present <a class="external-link" href="http://www.sfjava.org/calendar/13539905/" rel="nofollow">Super Simple Application Security with Apache Shiro</a> to the San Francisco Java User Group.  Please RSVP if you wish to attend - seats are limited!</p>
    </div>
    </div>
    
        
<div class="blog-post-listing">
        <div class="logo-heading-block">
            <a class="blogHeading" href="2010/09/14/ibm-developerworks-introduction-to-apache-shiro.html">IBM DeveloperWorks - Introduction to Apache Shiro</a>
            <div class="page-metadata"><a class="url fn news-userlink" href="https://stormpath.com/blog/author/les">Les Hazlewood</a> posted on Sep 14, 2010</div>
        </div>
    
    <div class="news-content">
        <p>Nathan Good wrote <a class="external-link" href="http://www.ibm.com/developerworks/web/library/wa-apacheshiro/" rel="nofollow">an article</a> introducing some of Apache Shiro's capabilities.  Thanks Nathan!</p>
    </div>
</div>
    
        
<div class="blog-post-listing">
    <div class="logo-heading-block">
        <div class="page-metadata"><a class="url fn news-userlink" href="https://stormpath.com/blog/author/les">Les Hazlewood</a> posted on Jun 01, 2010</div>
        <a class="blogHeading" href="2010/06/01/sdforum-java-sig-apache-shiro-presentation.html">SDForum Java SIG Apache Shiro Presentation</a>

    </div>
    
    <div class="news-content">
        <p>Tonight, 1 June 2010, Les Hazlewood <a class="external-link" href="http://www.sdforum.org/index.cfm?fuseaction=Calendar.eventDetail&amp;eventID=13671&amp;pageId=471" rel="nofollow">will present</a> Apache Shiro to the SDForum Java SIG in Palo Alto, California.  Please come if you can!</p>
    </div>
</div>

<input type="hidden" id="ghEditPage" value="news.html"></input>
