= Powered by Apache Shiro
:jbake-date: 2010-03-18 00:00:00
:jbake-type: page
:jbake-status: published
:jbake-tags: documentation, overview, features
:idprefix:
:icons: font
:toc:

== "Powered by Apache Shiro" Logo

Feel free to use our "powered by" logo.

image::/images/powered_by_apache_shiro.svg[title="Powered by Apache Shiro Logo",width=480,height=480,fallback=/images/powered-by-shiro-vertical.png]


[#PoweredbyShiro-OrganizationsusingApacheShiro]
== Organizations using Apache Shiro

Please consider adding yourself to the Apache Shiro PoweredBy page.
By letting others know that you are using Shiro, you help expand the community and in turn improve Shiro.
Win/Win!

[#PoweredbyShiro-Stormpath]
=== https://stormpath.com/[Stormpath]

Stormpath builds software products that make application security easy for developers and their organization. Les Hazlewood, the Apache Shiro PMC Chair, is Stormpath's founder and CTO.

* Stormpath uses Shiro as the core security subsystem for their products.
* Shiro is used to support Stormpath's Single Sign-On (SSO) architecture.
* Shiro's pluggable Realm architecture is used by Stormpath's runtime plugin system to allow changing an application's Realms at runtime, without requiring a server restart.

=== Large Financial Information Provider

Using Shiro in a large scale external web application for authentication, authorization, and custom Session clustering in an enterprise clustered cache

=== http://mulesoft.com[MuleSoft]

The company behind http://mulesoft.org[Mule], MuleSoft is behind the leading open source middleware, making integration and managing applications easier for everyone.

Mule uses Shiro to provide authentication and authorization to hosted services and resources. This allows users to secure HTTP/REST services, Web Services, message queues, data and file access with the simplicity of Shiro.

[#PoweredbyShiro-Sonatype]
=== http://www.sonatype.com[Sonatype]

The company behind link:http://maven.apache.org[Maven Central], Sonatype streamlines infrastructure and development workflows for Maven-centric development environments.

* Sonatype uses Shiro to secure link:http://www.sonatype.com/nexus-professional.html[Nexus], the leading open-source and professional Maven repository manager.
