实例介绍
Apache Shiro源码下载
Apache Shiro是一个功能强大且易于使用的Java安全框架,用于身份验证、授权、加密和会话管理。具有易于理解的API,您可以快速轻松地保护任何应用程序 - 从最小的移动应用程序到最大的Web和企业应用程序。
【实例截图】
【核心代码】
文件清单
└── shiro-55e14f810bd3cc0e5edf16084846146f6b030788
├── bom
│ └── pom.xml
├── cache
│ ├── pom.xml
│ └── src
│ └── main
│ ├── java
│ │ └── org
│ │ └── apache
│ │ └── shiro
│ │ └── cache
│ │ ├── AbstractCacheManager.java
│ │ ├── CacheException.java
│ │ ├── Cache.java
│ │ ├── CacheManagerAware.java
│ │ ├── CacheManager.java
│ │ ├── MapCache.java
│ │ ├── MemoryConstrainedCacheManager.java
│ │ └── package-info.java
│ └── resources
│ └── META-INF
│ └── NOTICE
├── config
│ ├── core
│ │ ├── pom.xml
│ │ └── src
│ │ ├── main
│ │ │ ├── java
│ │ │ │ └── org
│ │ │ │ └── apache
│ │ │ │ └── shiro
│ │ │ │ └── config
│ │ │ │ ├── ConfigurationException.java
│ │ │ │ ├── Ini.java
│ │ │ │ ├── package-info.java
│ │ │ │ └── ResourceConfigurable.java
│ │ │ └── resources
│ │ │ └── META-INF
│ │ │ └── NOTICE
│ │ └── test
│ │ └── groovy
│ │ └── org
│ │ └── apache
│ │ └── shiro
│ │ └── config
│ │ └── IniTest.groovy
│ ├── ogdl
│ │ ├── pom.xml
│ │ └── src
│ │ ├── main
│ │ │ ├── java
│ │ │ │ └── org
│ │ │ │ └── apache
│ │ │ │ └── shiro
│ │ │ │ └── config
│ │ │ │ └── ogdl
│ │ │ │ ├── CommonsInterpolator.java
│ │ │ │ ├── DefaultInterpolator.java
│ │ │ │ ├── event
│ │ │ │ │ ├── BeanEvent.java
│ │ │ │ │ ├── ConfiguredBeanEvent.java
│ │ │ │ │ ├── DestroyedBeanEvent.java
│ │ │ │ │ ├── InitializedBeanEvent.java
│ │ │ │ │ ├── InstantiatedBeanEvent.java
│ │ │ │ │ ├── LoggingBeanEventListener.java
│ │ │ │ │ └── package-info.java
│ │ │ │ ├── Interpolator.java
│ │ │ │ ├── package-info.java
│ │ │ │ ├── ReflectionBuilder.java
│ │ │ │ └── UnresolveableReferenceException.java
│ │ │ └── resources
│ │ │ └── META-INF
│ │ │ └── NOTICE
│ │ └── test
│ │ ├── groovy
│ │ │ └── org
│ │ │ └── apache
│ │ │ └── shiro
│ │ │ └── config
│ │ │ └── ogdl
│ │ │ ├── CommonsInterpolatorTest.groovy
│ │ │ ├── CompositeBean.groovy
│ │ │ ├── DefaultInterpolatorTest.groovy
│ │ │ ├── event
│ │ │ │ └── BeanEventTest.groovy
│ │ │ ├── InitializableBean.groovy
│ │ │ ├── RecordingBeanListener.groovy
│ │ │ ├── ReflectionBuilderTest.groovy
│ │ │ ├── SimpleBeanFactory.groovy
│ │ │ ├── SimpleBean.groovy
│ │ │ └── SimpleEnum.groovy
│ │ └── java
│ │ └── org
│ │ └── apache
│ │ └── shiro
│ │ └── config
│ │ └── ogdl
│ │ └── beans
│ │ └── InitCountBean.java
│ └── pom.xml
├── CONTRIBUTING.md
├── core
│ ├── pom.xml
│ └── src
│ ├── main
│ │ ├── java
│ │ │ └── org
│ │ │ └── apache
│ │ │ └── shiro
│ │ │ ├── aop
│ │ │ │ ├── AnnotationHandler.java
│ │ │ │ ├── AnnotationMethodInterceptor.java
│ │ │ │ ├── AnnotationResolver.java
│ │ │ │ ├── DefaultAnnotationResolver.java
│ │ │ │ ├── MethodInterceptor.java
│ │ │ │ ├── MethodInterceptorSupport.java
│ │ │ │ ├── MethodInvocation.java
│ │ │ │ └── package-info.java
│ │ │ ├── authc
│ │ │ │ ├── AbstractAuthenticator.java
│ │ │ │ ├── AccountException.java
│ │ │ │ ├── Account.java
│ │ │ │ ├── AuthenticationException.java
│ │ │ │ ├── AuthenticationInfo.java
│ │ │ │ ├── AuthenticationListener.java
│ │ │ │ ├── AuthenticationToken.java
│ │ │ │ ├── Authenticator.java
│ │ │ │ ├── BearerToken.java
│ │ │ │ ├── ConcurrentAccessException.java
│ │ │ │ ├── credential
│ │ │ │ │ ├── AllowAllCredentialsMatcher.java
│ │ │ │ │ ├── CredentialsMatcher.java
│ │ │ │ │ ├── DefaultPasswordService.java
│ │ │ │ │ ├── HashedCredentialsMatcher.java
│ │ │ │ │ ├── HashingPasswordService.java
│ │ │ │ │ ├── package-info.java
│ │ │ │ │ ├── PasswordMatcher.java
│ │ │ │ │ ├── PasswordService.java
│ │ │ │ │ ├── Sha256CredentialsMatcher.java
│ │ │ │ │ ├── Sha384CredentialsMatcher.java
│ │ │ │ │ ├── Sha512CredentialsMatcher.java
│ │ │ │ │ └── SimpleCredentialsMatcher.java
│ │ │ │ ├── CredentialsException.java
│ │ │ │ ├── DisabledAccountException.java
│ │ │ │ ├── ExcessiveAttemptsException.java
│ │ │ │ ├── ExpiredCredentialsException.java
│ │ │ │ ├── HostAuthenticationToken.java
│ │ │ │ ├── IncorrectCredentialsException.java
│ │ │ │ ├── LockedAccountException.java
│ │ │ │ ├── LogoutAware.java
│ │ │ │ ├── MergableAuthenticationInfo.java
│ │ │ │ ├── package-info.java
│ │ │ │ ├── pam
│ │ │ │ │ ├── AbstractAuthenticationStrategy.java
│ │ │ │ │ ├── AllSuccessfulStrategy.java
│ │ │ │ │ ├── AtLeastOneSuccessfulStrategy.java
│ │ │ │ │ ├── AuthenticationStrategy.java
│ │ │ │ │ ├── FirstSuccessfulStrategy.java
│ │ │ │ │ ├── ModularRealmAuthenticator.java
│ │ │ │ │ ├── package-info.java
│ │ │ │ │ ├── ShortCircuitIterationException.java
│ │ │ │ │ └── UnsupportedTokenException.java
│ │ │ │ ├── RememberMeAuthenticationToken.java
│ │ │ │ ├── SaltedAuthenticationInfo.java
│ │ │ │ ├── SimpleAccount.java
│ │ │ │ ├── SimpleAuthenticationInfo.java
│ │ │ │ ├── UnknownAccountException.java
│ │ │ │ └── UsernamePasswordToken.java
│ │ │ ├── authz
│ │ │ │ ├── annotation
│ │ │ │ │ ├── Logical.java
│ │ │ │ │ ├── package-info.java
│ │ │ │ │ ├── RequiresAuthentication.java
│ │ │ │ │ ├── RequiresGuest.java
│ │ │ │ │ ├── RequiresPermissions.java
│ │ │ │ │ ├── RequiresRoles.java
│ │ │ │ │ └── RequiresUser.java
│ │ │ │ ├── aop
│ │ │ │ │ ├── AnnotationsAuthorizingMethodInterceptor.java
│ │ │ │ │ ├── AuthenticatedAnnotationHandler.java
│ │ │ │ │ ├── AuthenticatedAnnotationMethodInterceptor.java
│ │ │ │ │ ├── AuthorizingAnnotationHandler.java
│ │ │ │ │ ├── AuthorizingAnnotationMethodInterceptor.java
│ │ │ │ │ ├── AuthorizingMethodInterceptor.java
│ │ │ │ │ ├── DenyAllAnnotationHandler.java
│ │ │ │ │ ├── GuestAnnotationHandler.java
│ │ │ │ │ ├── GuestAnnotationMethodInterceptor.java
│ │ │ │ │ ├── package-info.java
│ │ │ │ │ ├── PermissionAnnotationHandler.java
│ │ │ │ │ ├── PermissionAnnotationMethodInterceptor.java
│ │ │ │ │ ├── PermitAllAnnotationHandler.java
│ │ │ │ │ ├── RoleAnnotationHandler.java
│ │ │ │ │ ├── RoleAnnotationMethodInterceptor.java
│ │ │ │ │ ├── RolesAllowedAnnotationHandler.java
│ │ │ │ │ ├── UserAnnotationHandler.java
│ │ │ │ │ └── UserAnnotationMethodInterceptor.java
│ │ │ │ ├── AuthorizationException.java
│ │ │ │ ├── AuthorizationInfo.java
│ │ │ │ ├── Authorizer.java
│ │ │ │ ├── HostUnauthorizedException.java
│ │ │ │ ├── ModularRealmAuthorizer.java
│ │ │ │ ├── package-info.java
│ │ │ │ ├── permission
│ │ │ │ │ ├── AllPermission.java
│ │ │ │ │ ├── DomainPermission.java
│ │ │ │ │ ├── InvalidPermissionStringException.java
│ │ │ │ │ ├── package-info.java
│ │ │ │ │ ├── PermissionResolverAware.java
│ │ │ │ │ ├── PermissionResolver.java
│ │ │ │ │ ├── RolePermissionResolverAware.java
│ │ │ │ │ ├── RolePermissionResolver.java
│ │ │ │ │ ├── WildcardPermission.java
│ │ │ │ │ └── WildcardPermissionResolver.java
│ │ │ │ ├── Permission.java
│ │ │ │ ├── SimpleAuthorizationInfo.java
│ │ │ │ ├── SimpleRole.java
│ │ │ │ ├── UnauthenticatedException.java
│ │ │ │ └── UnauthorizedException.java
│ │ │ ├── concurrent
│ │ │ │ ├── package-info.java
│ │ │ │ ├── SubjectAwareExecutor.java
│ │ │ │ ├── SubjectAwareExecutorService.java
│ │ │ │ └── SubjectAwareScheduledExecutorService.java
│ │ │ ├── dao
│ │ │ │ ├── DataAccessException.java
│ │ │ │ ├── InvalidResourceUsageException.java
│ │ │ │ └── package-info.java
│ │ │ ├── env
│ │ │ │ ├── BasicIniEnvironment.java
│ │ │ │ ├── DefaultEnvironment.java
│ │ │ │ ├── EnvironmentException.java
│ │ │ │ ├── Environment.java
│ │ │ │ ├── NamedObjectEnvironment.java
│ │ │ │ ├── package-info.java
│ │ │ │ └── RequiredTypeException.java
│ │ │ ├── ini
│ │ │ │ ├── IniFactorySupport.java
│ │ │ │ ├── IniSecurityManagerFactory.java
│ │ │ │ └── package-info.java
│ │ │ ├── jndi
│ │ │ │ ├── JndiCallback.java
│ │ │ │ ├── JndiLocator.java
│ │ │ │ ├── JndiObjectFactory.java
│ │ │ │ ├── JndiTemplate.java
│ │ │ │ └── package-info.java
│ │ │ ├── ldap
│ │ │ │ ├── package-info.java
│ │ │ │ └── UnsupportedAuthenticationMechanismException.java
│ │ │ ├── mgt
│ │ │ │ ├── AbstractRememberMeManager.java
│ │ │ │ ├── AuthenticatingSecurityManager.java
│ │ │ │ ├── AuthorizingSecurityManager.java
│ │ │ │ ├── CachingSecurityManager.java
│ │ │ │ ├── DefaultSecurityManager.java
│ │ │ │ ├── DefaultSessionStorageEvaluator.java
│ │ │ │ ├── DefaultSubjectDAO.java
│ │ │ │ ├── DefaultSubjectFactory.java
│ │ │ │ ├── package-info.java
│ │ │ │ ├── RealmSecurityManager.java
│ │ │ │ ├── RememberMeManager.java
│ │ │ │ ├── SecurityManager.java
│ │ │ │ ├── SessionsSecurityManager.java
│ │ │ │ ├── SessionStorageEvaluator.java
│ │ │ │ ├── SubjectDAO.java
│ │ │ │ └── SubjectFactory.java
│ │ │ ├── package-info.java
│ │ │ ├── realm
│ │ │ │ ├── activedirectory
│ │ │ │ │ ├── ActiveDirectoryRealm.java
│ │ │ │ │ └── package-info.java
│ │ │ │ ├── AuthenticatingRealm.java
│ │ │ │ ├── AuthorizingRealm.java
│ │ │ │ ├── CachingRealm.java
│ │ │ │ ├── jdbc
│ │ │ │ │ ├── JdbcRealm.java
│ │ │ │ │ └── package-info.java
│ │ │ │ ├── jndi
│ │ │ │ │ ├── JndiRealmFactory.java
│ │ │ │ │ └── package-info.java
│ │ │ │ ├── ldap
│ │ │ │ │ ├── AbstractLdapRealm.java
│ │ │ │ │ ├── DefaultLdapRealm.java
│ │ │ │ │ ├── JndiLdapContextFactory.java
│ │ │ │ │ ├── JndiLdapRealm.java
│ │ │ │ │ ├── LdapContextFactory.java
│ │ │ │ │ ├── LdapUtils.java
│ │ │ │ │ └── package-info.java
│ │ │ │ ├── package-info.java
│ │ │ │ ├── RealmFactory.java
│ │ │ │ ├── Realm.java
│ │ │ │ ├── SimpleAccountRealm.java
│ │ │ │ └── text
│ │ │ │ ├── IniRealm.java
│ │ │ │ ├── package-info.java
│ │ │ │ ├── PropertiesRealm.java
│ │ │ │ └── TextConfigurationRealm.java
│ │ │ ├── SecurityUtils.java
│ │ │ ├── session
│ │ │ │ ├── ExpiredSessionException.java
│ │ │ │ ├── InvalidSessionException.java
│ │ │ │ ├── mgt
│ │ │ │ │ ├── AbstractNativeSessionManager.java
│ │ │ │ │ ├── AbstractSessionManager.java
│ │ │ │ │ ├── AbstractValidatingSessionManager.java
│ │ │ │ │ ├── DefaultSessionContext.java
│ │ │ │ │ ├── DefaultSessionKey.java
│ │ │ │ │ ├── DefaultSessionManager.java
│ │ │ │ │ ├── DelegatingSession.java
│ │ │ │ │ ├── eis
│ │ │ │ │ │ ├── AbstractSessionDAO.java
│ │ │ │ │ │ ├── CachingSessionDAO.java
│ │ │ │ │ │ ├── EnterpriseCacheSessionDAO.java
│ │ │ │ │ │ ├── JavaUuidSessionIdGenerator.java
│ │ │ │ │ │ ├── MemorySessionDAO.java
│ │ │ │ │ │ ├── package-info.java
│ │ │ │ │ │ ├── RandomSessionIdGenerator.java
│ │ │ │ │ │ ├── SessionDAO.java
│ │ │ │ │ │ └── SessionIdGenerator.java
│ │ │ │ │ ├── ExecutorServiceSessionValidationScheduler.java
│ │ │ │ │ ├── ImmutableProxiedSession.java
│ │ │ │ │ ├── NativeSessionManager.java
│ │ │ │ │ ├── package-info.java
│ │ │ │ │ ├── SessionContext.java
│ │ │ │ │ ├── SessionFactory.java
│ │ │ │ │ ├── SessionKey.java
│ │ │ │ │ ├── SessionManager.java
│ │ │ │ │ ├── SessionValidationScheduler.java
│ │ │ │ │ ├── SimpleSessionFactory.java
│ │ │ │ │ ├── SimpleSession.java
│ │ │ │ │ ├── ValidatingSession.java
│ │ │ │ │ └── ValidatingSessionManager.java
│ │ │ │ ├── package-info.java
│ │ │ │ ├── ProxiedSession.java
│ │ │ │ ├── SessionException.java
│ │ │ │ ├── Session.java
│ │ │ │ ├── SessionListenerAdapter.java
│ │ │ │ ├── SessionListener.java
│ │ │ │ ├── StoppedSessionException.java
│ │ │ │ └── UnknownSessionException.java
│ │ │ ├── subject
│ │ │ │ ├── ExecutionException.java
│ │ │ │ ├── MutablePrincipalCollection.java
│ │ │ │ ├── package-info.java
│ │ │ │ ├── PrincipalCollection.java
│ │ │ │ ├── PrincipalMap.java
│ │ │ │ ├── SimplePrincipalCollection.java
│ │ │ │ ├── SimplePrincipalMap.java
│ │ │ │ ├── SubjectContext.java
│ │ │ │ ├── Subject.java
│ │ │ │ └── support
│ │ │ │ ├── DefaultSubjectContext.java
│ │ │ │ ├── DelegatingSubject.java
│ │ │ │ ├── DisabledSessionException.java
│ │ │ │ ├── package-info.java
│ │ │ │ ├── SubjectCallable.java
│ │ │ │ ├── SubjectRunnable.java
│ │ │ │ └── SubjectThreadState.java
│ │ │ ├── UnavailableSecurityManagerException.java
│ │ │ └── util
│ │ │ ├── AbstractFactory.java
│ │ │ ├── AntPathMatcher.java
│ │ │ ├── CollectionUtils.java
│ │ │ ├── JavaEnvironment.java
│ │ │ ├── JdbcUtils.java
│ │ │ ├── MapContext.java
│ │ │ ├── OsgiDependencies.java
│ │ │ ├── package-info.java
│ │ │ ├── PatternMatcher.java
│ │ │ ├── PermissionUtils.java
│ │ │ ├── RegExPatternMatcher.java
│ │ │ ├── ThreadContext.java
│ │ │ └── ThreadState.java
│ │ └── resources
│ │ └── META-INF
│ │ └── NOTICE
│ └── test
│ ├── groovy
│ │ └── org
│ │ └── apache
│ │ └── shiro
│ │ ├── authc
│ │ │ ├── credential
│ │ │ │ ├── DefaultPasswordServiceTest.groovy
│ │ │ │ └── PasswordMatcherTest.groovy
│ │ │ └── pam
│ │ │ └── ModularRealmAuthenticatorTest.groovy
│ │ ├── config
│ │ │ ├── IniSecurityManagerFactoryTest.groovy
│ │ │ ├── MockPermissionResolver.groovy
│ │ │ └── ogdl
│ │ │ └── event
│ │ │ └── LoggingBeanEventListenerTest.groovy
│ │ ├── lang
│ │ │ └── codec
│ │ │ └── H64Test.groovy
│ │ ├── mgt
│ │ │ └── DefaultSubjectDAOTest.groovy
│ │ └── realm
│ │ ├── AuthenticatingRealmIntegrationTest.groovy
│ │ ├── AuthenticatingRealmTest.groovy
│ │ ├── CachingRealmTest.groovy
│ │ └── TestAuthenticatingRealm.groovy
│ ├── java
│ │ └── org
│ │ └── apache
│ │ └── shiro
│ │ ├── aop
│ │ │ └── AnnotationResolverTest.java
│ │ ├── AtUnitTestBase.java
│ │ ├── authc
│ │ │ ├── AbstractAuthenticatorTest.java
│ │ │ ├── ConcurrentAccessExceptionTest.java
│ │ │ ├── credential
│ │ │ │ ├── AbstractHashedCredentialsMatcherTest.java
│ │ │ │ ├── AllowAllCredentialsMatcherTest.java
│ │ │ │ ├── HashedCredentialsMatcherTest.java
│ │ │ │ ├── Sha256CredentialsMatcherTest.java
│ │ │ │ ├── Sha384CredentialsMatcherTest.java
│ │ │ │ └── Sha512CredentialsMatcherTest.java
│ │ │ ├── ExcessiveAttemptsExceptionTest.java
│ │ │ ├── ExpiredCredentialsExceptionTest.java
│ │ │ ├── IncorrectCredentialsExceptionTest.java
│ │ │ ├── LockedAccountExceptionTest.java
│ │ │ ├── pam
│ │ │ │ ├── AllSuccessfulStrategyTest.java
│ │ │ │ └── FirstSuccessfulStrategyTest.java
│ │ │ ├── SimpleAuthenticationInfoTest.java
│ │ │ └── UnknownAccountExceptionTest.java
│ │ ├── authz
│ │ │ ├── aop
│ │ │ │ ├── DenyAllAnnotationHandlerTest.java
│ │ │ │ ├── PermissionAnnotationHandlerTest.java
│ │ │ │ ├── PermitAllAnnotationHandlerTest.java
│ │ │ │ ├── RoleAnnotationHandlerTest.java
│ │ │ │ └── RolesAllowedAnnotationHandlerTest.java
│ │ │ ├── AuthorizationExceptionTest.java
│ │ │ ├── HostUnauthorizedExceptionTest.java
│ │ │ ├── ModularRealmAuthorizerTest.java
│ │ │ ├── permission
│ │ │ │ ├── AllPermissionTest.java
│ │ │ │ ├── DomainPermissionTest.java
│ │ │ │ ├── WildcardPermissionResolverTest.java
│ │ │ │ └── WildcardPermissionTest.java
│ │ │ ├── UnauthenticatedExceptionTest.java
│ │ │ └── UnauthorizedExceptionTest.java
│ │ ├── concurrent
│ │ │ ├── SubjectAwareExecutorServiceTest.java
│ │ │ └── SubjectAwareExecutorTest.java
│ │ ├── config
│ │ │ └── HashMapCacheManager.java
│ │ ├── ExceptionTest.java
│ │ ├── jndi
│ │ │ └── JndiObjectFactoryTest.java
│ │ ├── lang
│ │ │ └── io
│ │ │ └── SerializationExceptionTest.java
│ │ ├── mgt
│ │ │ ├── AbstractRememberMeManagerTest.java
│ │ │ ├── AbstractSecurityManagerTest.java
│ │ │ ├── DefaultSecurityManagerTest.java
│ │ │ └── VMSingletonDefaultSecurityManagerTest.java
│ │ ├── realm
│ │ │ ├── activedirectory
│ │ │ │ └── ActiveDirectoryRealmTest.java
│ │ │ ├── AuthorizingRealmTest.java
│ │ │ ├── jdbc
│ │ │ │ └── JDBCRealmTest.java
│ │ │ ├── ldap
│ │ │ │ ├── DefaultLdapRealmTest.java
│ │ │ │ ├── JndiLdapContextFactoryTest.java
│ │ │ │ └── JndiLdapRealmTest.java
│ │ │ ├── text
│ │ │ │ ├── IniRealmTest.java
│ │ │ │ └── TextConfigurationRealmTest.java
│ │ │ ├── UserIdPrincipal.java
│ │ │ └── UsernamePrincipal.java
│ │ ├── session
│ │ │ └── mgt
│ │ │ ├── AbstractValidatingSessionManagerTest.java
│ │ │ ├── DefaultSessionManagerTest.java
│ │ │ ├── DelegatingSessionTest.java
│ │ │ ├── ExecutorServiceSessionValidationSchedulerTest.java
│ │ │ └── SimpleSessionTest.java
│ │ ├── subject
│ │ │ ├── DelegatingSubjectTest.java
│ │ │ └── SimplePrincipalCollectionTest.java
│ │ ├── test
│ │ │ ├── AbstractShiroTest.java
│ │ │ ├── ExampleShiroIntegrationTest.java
│ │ │ ├── ExampleShiroUnitTest.java
│ │ │ └── SecurityManagerTestSupport.java
│ │ └── util
│ │ ├── AntPathMatcherTests.java
│ │ ├── PermissionUtilsTest.java
│ │ ├── RegExPatternMatcherTest.java
│ │ └── StringUtilsTest.java
│ └── resources
│ ├── log4j2-list.xml
│ ├── log4j2-test.xml
│ ├── org
│ │ └── apache
│ │ └── shiro
│ │ ├── config
│ │ │ ├── IniSecurityManagerFactoryTest.ini
│ │ │ └── IniSecurityManagerFactoryTest.propsRealm.properties
│ │ └── realm
│ │ └── text
│ │ ├── IniRealmTest.noUsers.ini
│ │ └── IniRealmTest.simple.ini
│ └── test.shiro.ini
├── crypto
│ ├── cipher
│ │ ├── pom.xml
│ │ └── src
│ │ ├── main
│ │ │ ├── java
│ │ │ │ └── org
│ │ │ │ └── apache
│ │ │ │ └── shiro
│ │ │ │ └── crypto
│ │ │ │ └── cipher
│ │ │ │ ├── AbstractSymmetricCipherService.java
│ │ │ │ ├── AesCipherService.java
│ │ │ │ ├── BlowfishCipherService.java
│ │ │ │ ├── ByteSourceBroker.java
│ │ │ │ ├── ByteSourceUser.java
│ │ │ │ ├── CipherService.java
│ │ │ │ ├── DefaultBlockCipherService.java
│ │ │ │ ├── JcaCipherService.java
│ │ │ │ ├── OperationMode.java
│ │ │ │ ├── package-info.java
│ │ │ │ ├── PaddingScheme.java
│ │ │ │ └── SimpleByteSourceBroker.java
│ │ │ └── resources
│ │ │ └── META-INF
│ │ │ └── NOTICE
│ │ └── test
│ │ └── groovy
│ │ └── org
│ │ └── apache
│ │ └── shiro
│ │ └── crypto
│ │ └── cipher
│ │ ├── AesCipherServiceTest.groovy
│ │ ├── BlowfishCipherServiceTest.groovy
│ │ └── JcaCipherServiceTest.groovy
│ ├── core
│ │ ├── pom.xml
│ │ └── src
│ │ ├── main
│ │ │ ├── java
│ │ │ │ └── org
│ │ │ │ └── apache
│ │ │ │ └── shiro
│ │ │ │ └── crypto
│ │ │ │ ├── CryptoException.java
│ │ │ │ ├── package-info.java
│ │ │ │ ├── RandomNumberGenerator.java
│ │ │ │ ├── SecureRandomNumberGenerator.java
│ │ │ │ └── UnknownAlgorithmException.java
│ │ │ └── resources
│ │ │ └── META-INF
│ │ │ └── NOTICE
│ │ └── test
│ │ └── groovy
│ │ └── org
│ │ └── apache
│ │ └── shiro
│ │ └── crypto
│ │ └── SecureRandomNumberGeneratorTest.groovy
│ ├── hash
│ │ ├── pom.xml
│ │ └── src
│ │ ├── main
│ │ │ ├── java
│ │ │ │ └── org
│ │ │ │ └── apache
│ │ │ │ └── shiro
│ │ │ │ └── crypto
│ │ │ │ └── hash
│ │ │ │ ├── AbstractCryptHash.java
│ │ │ │ ├── AbstractHash.java
│ │ │ │ ├── ConfigurableHashService.java
│ │ │ │ ├── DefaultHashService.java
│ │ │ │ ├── format
│ │ │ │ │ ├── Base64Format.java
│ │ │ │ │ ├── DefaultHashFormatFactory.java
│ │ │ │ │ ├── HashFormatFactory.java
│ │ │ │ │ ├── HashFormat.java
│ │ │ │ │ ├── HexFormat.java
│ │ │ │ │ ├── ModularCryptFormat.java
│ │ │ │ │ ├── package-info.java
│ │ │ │ │ ├── ParsableHashFormat.java
│ │ │ │ │ ├── ProvidedHashFormat.java
│ │ │ │ │ ├── Shiro1CryptFormat.java
│ │ │ │ │ └── Shiro2CryptFormat.java
│ │ │ │ ├── Hash.java
│ │ │ │ ├── HashProvider.java
│ │ │ │ ├── HashRequest.java
│ │ │ │ ├── HashService.java
│ │ │ │ ├── HashSpi.java
│ │ │ │ ├── package-info.java
│ │ │ │ ├── Sha256Hash.java
│ │ │ │ ├── Sha384Hash.java
│ │ │ │ ├── Sha512Hash.java
│ │ │ │ ├── SimpleHash.java
│ │ │ │ ├── SimpleHashProvider.java
│ │ │ │ └── SimpleHashRequest.java
│ │ │ └── resources
│ │ │ └── META-INF
│ │ │ ├── NOTICE
│ │ │ └── services
│ │ │ └── org.apache.shiro.crypto.hash.HashSpi
│ │ └── test
│ │ └── groovy
│ │ └── org
│ │ └── apache
│ │ └── shiro
│ │ └── crypto
│ │ └── hash
│ │ ├── DefaultHashServiceTest.groovy
│ │ ├── format
│ │ │ ├── Base64FormatTest.groovy
│ │ │ ├── DefaultHashFormatFactoryTest.groovy
│ │ │ ├── HexFormatTest.groovy
│ │ │ ├── ProvidedHashFormatTest.groovy
│ │ │ ├── Shiro1CryptFormatTest.groovy
│ │ │ └── ToStringHashFormat.groovy
│ │ └── HashRequestBuilderTest.groovy
│ ├── pom.xml
│ └── support
│ ├── hashes
│ │ ├── argon2
│ │ │ ├── pom.xml
│ │ │ └── src
│ │ │ ├── main
│ │ │ │ ├── java
│ │ │ │ │ └── org
│ │ │ │ │ └── apache
│ │ │ │ │ └── shiro
│ │ │ │ │ └── crypto
│ │ │ │ │ └── support
│ │ │ │ │ └── hashes
│ │ │ │ │ └── argon2
│ │ │ │ │ ├── Argon2Hash.java
│ │ │ │ │ ├── Argon2HashProvider.java
│ │ │ │ │ ├── OsgiDependencies.java
│ │ │ │ │ └── package-info.java
│ │ │ │ └── resources
│ │ │ │ └── META-INF
│ │ │ │ ├── NOTICE
│ │ │ │ └── services
│ │ │ │ └── org.apache.shiro.crypto.hash.HashSpi
│ │ │ └── test
│ │ │ └── groovy
│ │ │ └── org
│ │ │ └── apache
│ │ │ └── shiro
│ │ │ └── crypto
│ │ │ └── support
│ │ │ └── hashes
│ │ │ └── argon2
│ │ │ └── Argon2HashTest.groovy
│ │ └── bcrypt
│ │ ├── pom.xml
│ │ └── src
│ │ ├── main
│ │ │ ├── java
│ │ │ │ └── org
│ │ │ │ └── apache
│ │ │ │ └── shiro
│ │ │ │ └── crypto
│ │ │ │ └── support
│ │ │ │ └── hashes
│ │ │ │ └── bcrypt
│ │ │ │ ├── BCryptHash.java
│ │ │ │ ├── BCryptProvider.java
│ │ │ │ ├── OpenBSDBase64.java
│ │ │ │ ├── OsgiDependencies.java
│ │ │ │ └── package-info.java
│ │ │ └── resources
│ │ │ └── META-INF
│ │ │ ├── NOTICE
│ │ │ └── services
│ │ │ └── org.apache.shiro.crypto.hash.HashSpi
│ │ └── test
│ │ └── groovy
│ │ └── org
│ │ └── apache
│ │ └── shiro
│ │ └── crypto
│ │ └── support
│ │ └── hashes
│ │ └── bcrypt
│ │ └── BCryptHashTest.groovy
│ └── pom.xml
├── event
│ ├── pom.xml
│ └── src
│ ├── main
│ │ ├── java
│ │ │ └── org
│ │ │ └── apache
│ │ │ └── shiro
│ │ │ └── event
│ │ │ ├── EventBusAware.java
│ │ │ ├── EventBus.java
│ │ │ ├── Event.java
│ │ │ ├── package-info.java
│ │ │ ├── Subscribe.java
│ │ │ └── support
│ │ │ ├── AnnotationEventListenerResolver.java
│ │ │ ├── DefaultEventBus.java
│ │ │ ├── EventClassComparator.java
│ │ │ ├── EventListenerComparator.java
│ │ │ ├── EventListener.java
│ │ │ ├── EventListenerResolver.java
│ │ │ ├── package-info.java
│ │ │ ├── SingleArgumentMethodEventListener.java
│ │ │ └── TypedEventListener.java
│ │ └── resources
│ │ └── META-INF
│ │ └── NOTICE
│ └── test
│ └── groovy
│ └── org
│ └── apache
│ └── shiro
│ └── event
│ ├── EventTest.groovy
│ └── support
│ ├── AnnotationEventListenerResolverTest.groovy
│ ├── BarEvent.groovy
│ ├── BazEvent.groovy
│ ├── DefaultEventBusTest.groovy
│ ├── ErroneouslyAnnotatedSubscriber.groovy
│ ├── ErrorCausingEvent.groovy
│ ├── EventClassComparatorTest.groovy
│ ├── EventListenerComparatorTest.groovy
│ ├── ExceptionThrowingSubscriber.groovy
│ ├── FooEvent.groovy
│ ├── InvalidMethodModifierSubscriber.groovy
│ ├── NotAnnotatedSubscriber.groovy
│ ├── SimpleEvent.groovy
│ ├── SimpleSubscriber.groovy
│ ├── SingleArgumentMethodEventListenerTest.groovy
│ ├── SubclassTestSubscriber.groovy
│ └── TestSubscriber.groovy
├── integration-tests
│ ├── guice3
│ │ ├── pom.xml
│ │ └── src
│ │ ├── main
│ │ │ ├── java
│ │ │ │ └── org
│ │ │ │ └── apache
│ │ │ │ └── shiro
│ │ │ │ └── samples
│ │ │ │ └── guice
│ │ │ │ ├── SampleShiroGuiceBootstrap.java
│ │ │ │ └── SampleShiroServletModule.java
│ │ │ ├── resources
│ │ │ │ └── log4j2.xml
│ │ │ └── webapp
│ │ │ ├── account
│ │ │ │ └── index.jsp
│ │ │ ├── home.jsp
│ │ │ ├── include.jsp
│ │ │ ├── index.jsp
│ │ │ ├── login.jsp
│ │ │ ├── style.css
│ │ │ └── WEB-INF
│ │ │ ├── shiro.ini
│ │ │ └── web.xml
│ │ └── test
│ │ └── java
│ │ └── org
│ │ └── apache
│ │ └── shiro
│ │ └── samples
│ │ └── guice
│ │ └── ContainerIntegrationIT.java
│ ├── guice4
│ │ ├── pom.xml
│ │ └── src
│ │ ├── main
│ │ │ ├── java
│ │ │ │ └── org
│ │ │ │ └── apache
│ │ │ │ └── shiro
│ │ │ │ └── samples
│ │ │ │ └── guice
│ │ │ │ ├── SampleShiroGuiceBootstrap.java
│ │ │ │ └── SampleShiroServletModule.java
│ │ │ ├── resources
│ │ │ │ └── log4j2.xml
│ │ │ └── webapp
│ │ │ ├── account
│ │ │ │ └── index.jsp
│ │ │ ├── home.jsp
│ │ │ ├── include.jsp
│ │ │ ├── index.jsp
│ │ │ ├── login.jsp
│ │ │ ├── style.css
│ │ │ └── WEB-INF
│ │ │ ├── shiro.ini
│ │ │ └── web.xml
│ │ └── test
│ │ └── java
│ │ └── org
│ │ └── apache
│ │ └── shiro
│ │ └── samples
│ │ └── guice
│ │ └── ContainerIntegrationIT.java
│ ├── jakarta-ee
│ │ ├── pom.xml
│ │ └── src
│ │ ├── main
│ │ │ ├── java
│ │ │ │ └── org
│ │ │ │ └── apache
│ │ │ │ └── shiro
│ │ │ │ └── testing
│ │ │ │ ├── cdi
│ │ │ │ │ ├── CipherKeyGenerator.java
│ │ │ │ │ └── ComponentInjectionBean.java
│ │ │ │ ├── jakarta
│ │ │ │ │ └── ee
│ │ │ │ │ ├── FormBean.java
│ │ │ │ │ ├── PropertyPrincipal.java
│ │ │ │ │ ├── PropertyRealm.java
│ │ │ │ │ ├── ProtectedFacesViewScopedBean.java
│ │ │ │ │ ├── ProtectedOmniViewScopedBean.java
│ │ │ │ │ ├── ProtectedOneMethod.java
│ │ │ │ │ ├── ProtectedSessionScopedBean.java
│ │ │ │ │ ├── ProtectedStatelessBean.java
│ │ │ │ │ ├── servlets
│ │ │ │ │ │ ├── ExceptionServlet.java
│ │ │ │ │ │ ├── InvalidateSessionServlet.java
│ │ │ │ │ │ ├── LogoutServlet.java
│ │ │ │ │ │ └── RestConfig.java
│ │ │ │ │ ├── StatisticsResource.java
│ │ │ │ │ ├── UnprotectedFacade.java
│ │ │ │ │ └── UseFallback.java
│ │ │ │ ├── jaxrs
│ │ │ │ │ ├── JsonPojo.java
│ │ │ │ │ ├── RolesAllowedBean.java
│ │ │ │ │ ├── TestApplication.java
│ │ │ │ │ ├── WhoamiBean.java
│ │ │ │ │ └── WhoamiResource.java
│ │ │ │ └── logcapture
│ │ │ │ ├── LogCapture.java
│ │ │ │ └── LogCaptureSingleton.java
│ │ │ ├── resources
│ │ │ │ └── META-INF
│ │ │ │ ├── shiro.ini
│ │ │ │ └── shiro-native-sessions.ini
│ │ │ └── webapp
│ │ │ ├── index.xhtml
│ │ │ ├── shiro
│ │ │ │ ├── adminpage.xhtml
│ │ │ │ ├── auth
│ │ │ │ │ ├── loginform.xhtml
│ │ │ │ │ ├── unauthenticated.xhtml
│ │ │ │ │ └── unauthorized.xhtml
│ │ │ │ ├── form.xhtml
│ │ │ │ ├── index.xhtml
│ │ │ │ ├── protected.xhtml
│ │ │ │ └── unprotected
│ │ │ │ ├── manybeans.xhtml
│ │ │ │ └── tags.xhtml
│ │ │ └── WEB-INF
│ │ │ ├── errorpages
│ │ │ │ └── invalidErrorPage.xhtml
│ │ │ ├── faces-config.xml
│ │ │ ├── payara-web.xml
│ │ │ └── web.xml
│ │ └── test
│ │ ├── java
│ │ │ └── org
│ │ │ └── apache
│ │ │ └── shiro
│ │ │ └── testing
│ │ │ ├── cdi
│ │ │ │ └── ComponentInjectionIT.java
│ │ │ ├── jakarta
│ │ │ │ └── ee
│ │ │ │ ├── Deployments.java
│ │ │ │ ├── FacesTagsIT.java
│ │ │ │ ├── ShiroAuthFormsIT.java
│ │ │ │ ├── ShiroBeansIT.java
│ │ │ │ └── ShiroSSLFilterIT.java
│ │ │ └── jaxrs
│ │ │ └── NoIniJaxRsIT.java
│ │ └── resources
│ │ ├── arquillian.xml
│ │ └── mockito-extensions
│ │ └── org.mockito.plugins.MockMaker
│ ├── jakarta-ee-support
│ │ └── pom.xml
│ ├── jaxrs
│ │ ├── app
│ │ │ ├── pom.xml
│ │ │ └── src
│ │ │ └── main
│ │ │ ├── java
│ │ │ │ └── org
│ │ │ │ └── apache
│ │ │ │ └── shiro
│ │ │ │ └── testing
│ │ │ │ └── jaxrs
│ │ │ │ └── app
│ │ │ │ ├── config
│ │ │ │ │ ├── JaxRsShiroFeature.java
│ │ │ │ │ ├── ShiroListener.java
│ │ │ │ │ └── ShiroServletFilter.java
│ │ │ │ ├── dao
│ │ │ │ │ ├── InMemoryStormtrooperDao.java
│ │ │ │ │ └── StormtrooperDao.java
│ │ │ │ ├── JaxRsApplication.java
│ │ │ │ ├── json
│ │ │ │ │ ├── JsonbConfigProvider.java
│ │ │ │ │ └── StormtrooperIdConverter.java
│ │ │ │ ├── model
│ │ │ │ │ ├── StormtrooperId.java
│ │ │ │ │ ├── Stormtrooper.java
│ │ │ │ │ └── StormtrooperTemplate.java
│ │ │ │ ├── package-info.java
│ │ │ │ └── resources
│ │ │ │ └── StormtrooperResource.java
│ │ │ ├── resources
│ │ │ │ └── META-INF
│ │ │ │ ├── beans.xml
│ │ │ │ ├── NOTICE
│ │ │ │ └── resources
│ │ │ │ └── WEB-INF
│ │ │ │ └── shiro.ini
│ │ │ └── webapp
│ │ │ └── WEB-INF
│ │ │ ├── beans.xml
│ │ │ └── shiro.ini
│ │ ├── meecrowave
│ │ │ ├── pom.xml
│ │ │ └── src
│ │ │ └── test
│ │ │ ├── java
│ │ │ │ └── org
│ │ │ │ └── apache
│ │ │ │ └── shiro
│ │ │ │ └── testing
│ │ │ │ └── jaxrs
│ │ │ │ └── meecrowave
│ │ │ │ └── MeecrowaveIT.java
│ │ │ └── resources
│ │ │ └── log4j2.xml
│ │ ├── openliberty
│ │ │ ├── pom.xml
│ │ │ └── src
│ │ │ ├── main
│ │ │ │ └── liberty
│ │ │ │ └── config
│ │ │ │ └── server.xml
│ │ │ └── test
│ │ │ └── java
│ │ │ └── org
│ │ │ └── apache
│ │ │ └── shiro
│ │ │ └── testing
│ │ │ └── jaxrs
│ │ │ └── openliberty
│ │ │ └── OpenLibertyIT.java
│ │ ├── pom.xml
│ │ └── tests
│ │ ├── pom.xml
│ │ └── src
│ │ └── main
│ │ └── java
│ │ └── org
│ │ └── apache
│ │ └── shiro
│ │ └── testing
│ │ └── jaxrs
│ │ └── tests
│ │ └── AbstractShiroJaxRsIT.java
│ ├── meecrowave-support
│ │ ├── pom.xml
│ │ └── src
│ │ └── main
│ │ └── resources
│ │ └── META-INF
│ │ └── openwebbeans
│ │ └── openwebbeans.properties
│ ├── pom.xml
│ └── support
│ ├── pom.xml
│ └── src
│ └── main
│ ├── java
│ │ └── org
│ │ └── apache
│ │ └── shiro
│ │ └── testing
│ │ └── web
│ │ └── AbstractContainerIT.java
│ └── resources
│ ├── createKeyStore.sh
│ ├── test-keystore.jks
│ └── test-keystore.pem
├── jitpack.yml
├── lang
│ ├── pom.xml
│ └── src
│ ├── main
│ │ ├── java
│ │ │ └── org
│ │ │ └── apache
│ │ │ └── shiro
│ │ │ └── lang
│ │ │ ├── codec
│ │ │ │ ├── Base64.java
│ │ │ │ ├── CodecException.java
│ │ │ │ ├── CodecSupport.java
│ │ │ │ ├── H64.java
│ │ │ │ ├── Hex.java
│ │ │ │ └── package-info.java
│ │ │ ├── io
│ │ │ │ ├── ClassResolvingObjectInputStream.java
│ │ │ │ ├── DefaultSerializer.java
│ │ │ │ ├── package-info.java
│ │ │ │ ├── ResourceUtils.java
│ │ │ │ ├── SerializationException.java
│ │ │ │ ├── Serializer.java
│ │ │ │ └── XmlSerializer.java
│ │ │ ├── package-info.java
│ │ │ ├── ShiroException.java
│ │ │ └── util
│ │ │ ├── Assert.java
│ │ │ ├── ByteSource.java
│ │ │ ├── ByteSourceWrapper.java
│ │ │ ├── ByteUtils.java
│ │ │ ├── ClassUtils.java
│ │ │ ├── Destroyable.java
│ │ │ ├── Factory.java
│ │ │ ├── Initializable.java
│ │ │ ├── InstantiationException.java
│ │ │ ├── JspEngineDependency.java
│ │ │ ├── LifecycleUtils.java
│ │ │ ├── Nameable.java
│ │ │ ├── package-info.java
│ │ │ ├── SimpleByteSource.java
│ │ │ ├── SoftHashMap.java
│ │ │ ├── StringUtils.java
│ │ │ └── UnknownClassException.java
│ │ └── resources
│ │ └── META-INF
│ │ └── NOTICE
│ └── test
│ └── java
│ └── org
│ └── apache
│ └── shiro
│ └── lang
│ └── util
│ └── ClassUtilsTest.java
├── LICENSE
├── NOTICE
├── pom.xml
├── README
├── README.md
├── RELEASE-NOTES
├── samples
│ ├── aspectj
│ │ ├── pom.xml
│ │ └── src
│ │ ├── main
│ │ │ ├── java
│ │ │ │ └── org
│ │ │ │ └── apache
│ │ │ │ └── shiro
│ │ │ │ └── samples
│ │ │ │ └── aspectj
│ │ │ │ └── bank
│ │ │ │ ├── Account.java
│ │ │ │ ├── AccountNotFoundException.java
│ │ │ │ ├── AccountTransaction.java
│ │ │ │ ├── BankServerRunner.java
│ │ │ │ ├── BankServiceException.java
│ │ │ │ ├── BankService.java
│ │ │ │ ├── InactiveAccountException.java
│ │ │ │ ├── NotEnoughFundsException.java
│ │ │ │ └── SecureBankService.java
│ │ │ └── resources
│ │ │ └── META-INF
│ │ │ └── NOTICE
│ │ └── test
│ │ ├── java
│ │ │ └── org
│ │ │ └── apache
│ │ │ └── shiro
│ │ │ └── samples
│ │ │ └── aspectj
│ │ │ └── bank
│ │ │ └── SecureBankServiceTest.java
│ │ └── resources
│ │ ├── log4j2-test.xml
│ │ ├── META-INF
│ │ │ └── aop.xml
│ │ └── shiroBankServiceTest.ini
│ ├── guice
│ │ ├── pom.xml
│ │ ├── README.md
│ │ └── src
│ │ ├── main
│ │ │ ├── java
│ │ │ │ └── org
│ │ │ │ └── apache
│ │ │ │ └── shiro
│ │ │ │ └── samples
│ │ │ │ └── guice
│ │ │ │ ├── SampleShiroGuiceBootstrap.java
│ │ │ │ ├── SampleShiroNativeSessionsServletModule.java
│ │ │ │ └── SampleShiroServletModule.java
│ │ │ ├── resources
│ │ │ │ ├── log4j2.xml
│ │ │ │ └── META-INF
│ │ │ │ └── NOTICE
│ │ │ └── webapp
│ │ │ ├── account
│ │ │ │ └── index.jsp
│ │ │ ├── home.jsp
│ │ │ ├── include.jsp
│ │ │ ├── index.jsp
│ │ │ ├── login.jsp
│ │ │ ├── style.css
│ │ │ └── WEB-INF
│ │ │ ├── shiro.ini
│ │ │ └── web.xml
│ │ └── test
│ │ └── java
│ │ └── org
│ │ └── apache
│ │ └── shiro
│ │ └── samples
│ │ └── guice
│ │ └── ContainerIntegrationIT.java
│ ├── pom.xml
│ ├── quickstart
│ │ ├── pom.xml
│ │ └── src
│ │ └── main
│ │ ├── java
│ │ │ └── Quickstart.java
│ │ └── resources
│ │ ├── log4j2.xml
│ │ ├── META-INF
│ │ │ └── NOTICE
│ │ └── shiro.ini
│ ├── quickstart-guice
│ │ ├── pom.xml
│ │ └── src
│ │ └── main
│ │ ├── java
│ │ │ ├── QuickstartGuice.java
│ │ │ └── QuickstartShiroModule.java
│ │ └── resources
│ │ ├── log4j2.xml
│ │ ├── META-INF
│ │ │ └── NOTICE
│ │ └── shiro.ini
│ ├── servlet-plugin
│ │ ├── pom.xml
│ │ └── src
│ │ ├── main
│ │ │ ├── resources
│ │ │ │ ├── log4j2.xml
│ │ │ │ └── META-INF
│ │ │ │ └── NOTICE
│ │ │ └── webapp
│ │ │ ├── account
│ │ │ │ └── index.jsp
│ │ │ ├── home.jsp
│ │ │ ├── include.jsp
│ │ │ ├── index.jsp
│ │ │ ├── login.jsp
│ │ │ ├── style.css
│ │ │ └── WEB-INF
│ │ │ ├── shiro.ini
│ │ │ └── web.xml
│ │ └── test
│ │ └── java
│ │ └── org
│ │ └── apache
│ │ └── shiro
│ │ └── test
│ │ └── ContainerIntegrationIT.java
│ ├── spring
│ │ ├── pom.xml
│ │ ├── README.md
│ │ └── src
│ │ └── main
│ │ ├── java
│ │ │ └── org
│ │ │ └── apache
│ │ │ └── shiro
│ │ │ └── samples
│ │ │ └── spring
│ │ │ ├── CliApp.java
│ │ │ ├── QuickStart.java
│ │ │ └── SimpleService.java
│ │ └── resources
│ │ ├── application.properties
│ │ ├── log4j2.xml
│ │ └── META-INF
│ │ └── NOTICE
│ ├── spring-boot
│ │ ├── pom.xml
│ │ ├── README.md
│ │ └── src
│ │ └── main
│ │ ├── java
│ │ │ └── org
│ │ │ └── apache
│ │ │ └── shiro
│ │ │ └── samples
│ │ │ ├── CliApp.java
│ │ │ ├── QuickStart.java
│ │ │ └── SimpleService.java
│ │ └── resources
│ │ ├── application.properties
│ │ └── META-INF
│ │ └── NOTICE
│ ├── spring-boot-3-web
│ │ ├── pom.xml
│ │ ├── README.md
│ │ └── src
│ │ └── main
│ │ ├── java
│ │ │ └── org
│ │ │ └── apache
│ │ │ └── shiro
│ │ │ └── samples
│ │ │ ├── AccountInfoController.java
│ │ │ ├── HelloController.java
│ │ │ ├── LoginController.java
│ │ │ ├── RestrictedErrorController.java
│ │ │ └── WebApp.java
│ │ └── resources
│ │ ├── application.properties
│ │ ├── META-INF
│ │ │ └── NOTICE
│ │ └── templates
│ │ ├── account-info.html
│ │ ├── error.html
│ │ ├── fragments
│ │ │ └── head.html
│ │ ├── hello.html
│ │ └── login.html
│ ├── spring-boot-web
│ │ ├── pom.xml
│ │ ├── README.md
│ │ └── src
│ │ └── main
│ │ ├── java
│ │ │ └── org
│ │ │ └── apache
│ │ │ └── shiro
│ │ │ └── samples
│ │ │ ├── AccountInfoController.java
│ │ │ ├── HelloController.java
│ │ │ ├── LoginController.java
│ │ │ ├── RestrictedErrorController.java
│ │ │ └── WebApp.java
│ │ └── resources
│ │ ├── application.properties
│ │ ├── META-INF
│ │ │ └── NOTICE
│ │ └── templates
│ │ ├── account-info.html
│ │ ├── error.html
│ │ ├── fragments
│ │ │ └── head.html
│ │ ├── hello.html
│ │ └── login.html
│ ├── spring-hibernate
│ │ ├── pom.xml
│ │ ├── README.md
│ │ └── src
│ │ ├── main
│ │ │ ├── java
│ │ │ │ └── org
│ │ │ │ └── apache
│ │ │ │ └── shiro
│ │ │ │ └── samples
│ │ │ │ └── sprhib
│ │ │ │ ├── dao
│ │ │ │ │ ├── BootstrapDataPopulator.java
│ │ │ │ │ ├── HibernateDao.java
│ │ │ │ │ ├── HibernateUserDAO.java
│ │ │ │ │ └── UserDAO.java
│ │ │ │ ├── model
│ │ │ │ │ ├── Role.java
│ │ │ │ │ └── User.java
│ │ │ │ ├── security
│ │ │ │ │ └── SampleRealm.java
│ │ │ │ ├── service
│ │ │ │ │ ├── DefaultUserService.java
│ │ │ │ │ └── UserService.java
│ │ │ │ └── web
│ │ │ │ ├── CurrentUserInterceptor.java
│ │ │ │ ├── EditUserCommand.java
│ │ │ │ ├── EditUserValidator.java
│ │ │ │ ├── HomeController.java
│ │ │ │ ├── LoginCommand.java
│ │ │ │ ├── LoginValidator.java
│ │ │ │ ├── ManageUsersController.java
│ │ │ │ ├── SecurityController.java
│ │ │ │ ├── SignupCommand.java
│ │ │ │ ├── SignupController.java
│ │ │ │ └── SignupValidator.java
│ │ │ ├── resources
│ │ │ │ ├── ehcache.xml
│ │ │ │ ├── hibernate.cfg.xml
│ │ │ │ ├── log4j2.xml
│ │ │ │ └── META-INF
│ │ │ │ └── NOTICE
│ │ │ └── webapp
│ │ │ ├── index.jsp
│ │ │ ├── styles
│ │ │ │ └── sample.css
│ │ │ ├── unauthorized.jsp
│ │ │ └── WEB-INF
│ │ │ ├── applicationContext.xml
│ │ │ ├── jsp
│ │ │ │ ├── editUser.jsp
│ │ │ │ ├── home.jsp
│ │ │ │ ├── login.jsp
│ │ │ │ ├── manageUsers.jsp
│ │ │ │ └── signup.jsp
│ │ │ ├── sprhib-servlet.xml
│ │ │ └── web.xml
│ │ └── test
│ │ └── java
│ │ └── org
│ │ └── apache
│ │ └── shiro
│ │ └── samples
│ │ └── ContainerIntegrationIT.java
│ ├── spring-mvc
│ │ ├── pom.xml
│ │ ├── README.md
│ │ └── src
│ │ └── main
│ │ ├── java
│ │ │ └── org
│ │ │ └── apache
│ │ │ └── shiro
│ │ │ └── samples
│ │ │ └── spring
│ │ │ ├── BootstrapDataPopulator.java
│ │ │ ├── config
│ │ │ │ ├── ApplicationConfig.java
│ │ │ │ ├── JspViewsConfig.java
│ │ │ │ ├── RemotingServletConfig.java
│ │ │ │ └── ServletApplicationInitializer.java
│ │ │ ├── DefaultSampleManager.java
│ │ │ ├── realm
│ │ │ │ └── SaltAwareJdbcRealm.java
│ │ │ ├── SampleManager.java
│ │ │ └── web
│ │ │ ├── IndexController.java
│ │ │ ├── JnlpController.java
│ │ │ ├── LoginController.java
│ │ │ ├── LogoutController.java
│ │ │ └── RootRedirectController.java
│ │ ├── resources
│ │ │ ├── application.properties
│ │ │ ├── ehcache.xml
│ │ │ ├── log4j2.xml
│ │ │ └── META-INF
│ │ │ └── NOTICE
│ │ └── webapp
│ │ ├── logo.png
│ │ ├── shiro.css
│ │ └── WEB-INF
│ │ └── resources
│ │ ├── include.jsp
│ │ ├── login.jsp
│ │ └── sampleIndex.jsp
│ ├── web
│ │ ├── pom.xml
│ │ ├── README.md
│ │ └── src
│ │ ├── main
│ │ │ ├── resources
│ │ │ │ ├── log4j2.xml
│ │ │ │ └── META-INF
│ │ │ │ └── NOTICE
│ │ │ └── webapp
│ │ │ ├── account
│ │ │ │ └── index.jsp
│ │ │ ├── home.jsp
│ │ │ ├── include.jsp
│ │ │ ├── index.jsp
│ │ │ ├── login.jsp
│ │ │ ├── logout.jsp
│ │ │ ├── style.css
│ │ │ └── WEB-INF
│ │ │ ├── shiro.ini
│ │ │ └── web.xml
│ │ └── test
│ │ └── java
│ │ └── org
│ │ └── apache
│ │ └── shiro
│ │ └── test
│ │ └── WebAppContainerIntegrationIT.java
│ └── web-jakarta
│ ├── pom.xml
│ └── src
│ ├── main
│ │ ├── resources
│ │ │ ├── log4j2.xml
│ │ │ └── META-INF
│ │ │ └── NOTICE
│ │ └── webapp
│ │ ├── account
│ │ │ └── index.jsp
│ │ ├── home.jsp
│ │ ├── include.jsp
│ │ ├── index.jsp
│ │ ├── login.jsp
│ │ ├── logout.jsp
│ │ ├── style.css
│ │ └── WEB-INF
│ │ ├── shiro.ini
│ │ └── web.xml
│ └── test
│ ├── java
│ │ └── org
│ │ └── apache
│ │ └── shiro
│ │ └── test
│ │ └── web
│ │ └── jakarta
│ │ ├── JakartaAbstractContainerIT.java
│ │ └── WebContainerIT.java
│ └── resources
│ └── log4j2.xml
├── shiro.doap.rdf
├── src
│ ├── checkstyle.xml
│ ├── japicmp
│ │ └── postAnalysisScript.groovy
│ ├── license
│ │ ├── header_format.xml
│ │ └── header.txt
│ ├── owasp-suppression.xml
│ ├── site
│ │ ├── resources
│ │ │ └── images
│ │ │ ├── apache-shiro-logo.png
│ │ │ └── asf_logo.png
│ │ └── site.xml
│ └── suppressions.xml
├── support
│ ├── aspectj
│ │ ├── pom.xml
│ │ └── src
│ │ ├── main
│ │ │ ├── aspect
│ │ │ │ └── org
│ │ │ │ └── apache
│ │ │ │ └── shiro
│ │ │ │ └── aspectj
│ │ │ │ └── ShiroAnnotationAuthorizingAspect.java
│ │ │ ├── java
│ │ │ │ └── org
│ │ │ │ └── apache
│ │ │ │ └── shiro
│ │ │ │ └── aspectj
│ │ │ │ ├── AspectjAnnotationsAuthorizingMethodInterceptor.java
│ │ │ │ ├── BeforeAdviceMethodInvocationAdapter.java
│ │ │ │ └── package-info.java
│ │ │ └── resources
│ │ │ └── META-INF
│ │ │ └── NOTICE
│ │ └── test
│ │ ├── java
│ │ │ └── org
│ │ │ └── apache
│ │ │ └── shiro
│ │ │ └── aspectj
│ │ │ ├── DummyService.java
│ │ │ ├── DummyServiceTest.java
│ │ │ ├── RestrictedDummyService.java
│ │ │ └── SecuredDummyService.java
│ │ └── resources
│ │ ├── META-INF
│ │ │ └── aop.xml
│ │ └── shiroDummyServiceTest.ini
│ ├── cdi
│ │ ├── pom.xml
│ │ └── src
│ │ ├── main
│ │ │ ├── java
│ │ │ │ └── org
│ │ │ │ └── apache
│ │ │ │ └── shiro
│ │ │ │ └── cdi
│ │ │ │ ├── AnnotatedTypeWrapper.java
│ │ │ │ ├── annotations
│ │ │ │ │ ├── CipherKeySupplier.java
│ │ │ │ │ ├── NoSessionCreation.java
│ │ │ │ │ └── Principal.java
│ │ │ │ ├── AopHelper.java
│ │ │ │ ├── ShiroComponentProducer.java
│ │ │ │ ├── ShiroSecureAnnotation.java
│ │ │ │ ├── ShiroSecurityExtension.java
│ │ │ │ └── ShiroSecurityInterceptor.java
│ │ │ └── resources
│ │ │ └── META-INF
│ │ │ ├── beans.xml
│ │ │ └── services
│ │ │ └── javax.enterprise.inject.spi.Extension
│ │ └── test
│ │ └── java
│ │ └── org
│ │ └── apache
│ │ └── shiro
│ │ └── cdi
│ │ ├── AnnotatedTypeWrapperTest.java
│ │ └── AopHelperTest.java
│ ├── ehcache
│ │ ├── pom.xml
│ │ └── src
│ │ ├── main
│ │ │ ├── java
│ │ │ │ └── org
│ │ │ │ └── apache
│ │ │ │ └── shiro
│ │ │ │ └── cache
│ │ │ │ └── ehcache
│ │ │ │ ├── EhCache.java
│ │ │ │ ├── EhCacheManager.java
│ │ │ │ └── package-info.java
│ │ │ └── resources
│ │ │ ├── META-INF
│ │ │ │ └── NOTICE
│ │ │ └── org
│ │ │ └── apache
│ │ │ └── shiro
│ │ │ └── cache
│ │ │ └── ehcache
│ │ │ └── ehcache.xml
│ │ └── test
│ │ ├── java
│ │ │ └── org
│ │ │ └── apache
│ │ │ └── shiro
│ │ │ └── cache
│ │ │ └── ehcache
│ │ │ └── EhCacheManagerTest.java
│ │ └── resources
│ │ └── log4j2-test.xml
│ ├── features
│ │ ├── pom.xml
│ │ └── src
│ │ └── main
│ │ └── resources
│ │ └── features.xml
│ ├── guice
│ │ ├── pom.xml
│ │ └── src
│ │ ├── main
│ │ │ ├── java
│ │ │ │ └── org
│ │ │ │ └── apache
│ │ │ │ └── shiro
│ │ │ │ └── guice
│ │ │ │ ├── aop
│ │ │ │ │ ├── AopAllianceMethodInterceptorAdapter.java
│ │ │ │ │ ├── AopAllianceMethodInvocationAdapter.java
│ │ │ │ │ └── ShiroAopModule.java
│ │ │ │ ├── BeanTypeListener.java
│ │ │ │ ├── DestroyableInjectionListener.java
│ │ │ │ ├── GuiceEnvironment.java
│ │ │ │ ├── InitializableInjectionListener.java
│ │ │ │ ├── LifecycleTypeListener.java
│ │ │ │ ├── ShiroMatchers.java
│ │ │ │ ├── ShiroModule.java
│ │ │ │ ├── ShiroSessionScope.java
│ │ │ │ └── web
│ │ │ │ ├── AbstractInjectionProvider.java
│ │ │ │ ├── FilterChainResolverProvider.java
│ │ │ │ ├── GuiceShiroFilter.java
│ │ │ │ ├── PathMatchingFilterProvider.java
│ │ │ │ ├── ShiroWebModule.java
│ │ │ │ ├── SimpleFilterChain.java
│ │ │ │ ├── SimpleFilterChainResolver.java
│ │ │ │ └── WebGuiceEnvironment.java
│ │ │ └── resources
│ │ │ └── META-INF
│ │ │ └── NOTICE
│ │ └── test
│ │ ├── java
│ │ │ └── org
│ │ │ └── apache
│ │ │ └── shiro
│ │ │ └── guice
│ │ │ ├── aop
│ │ │ │ ├── AopAllianceMethodInterceptorAdapterTest.java
│ │ │ │ ├── AopAllianceMethodInvocationAdapterTest.java
│ │ │ │ └── ShiroAopModuleTest.java
│ │ │ ├── BeanTypeListenerTest.java
│ │ │ ├── DestroyableInjectionListenerTest.java
│ │ │ ├── GuiceEnvironmentTest.java
│ │ │ ├── InitializableInjectionListenerTest.java
│ │ │ ├── LifecycleTypeListenerTest.java
│ │ │ ├── ShiroMatchersTest.java
│ │ │ ├── ShiroModuleTest.java
│ │ │ ├── ShiroSessionScopeTest.java
│ │ │ └── web
│ │ │ ├── AbstractInjectionProviderTest.java
│ │ │ ├── DefaultFiltersTest.java
│ │ │ ├── FilterChainResolverProviderTest.java
│ │ │ ├── FilterConfigTest.java
│ │ │ ├── GuiceShiroFilterTest.java
│ │ │ ├── PathMatchingFilterProviderTest.java
│ │ │ ├── ShiroWebModuleTest.java
│ │ │ ├── SimpleFilterChainResolverTest.java
│ │ │ ├── SimpleFilterChainTest.java
│ │ │ └── WebGuiceEnvironmentTest.java
│ │ └── resources
│ │ └── log4j2-test.xml
│ ├── hazelcast
│ │ ├── pom.xml
│ │ └── src
│ │ ├── main
│ │ │ ├── java
│ │ │ │ └── org
│ │ │ │ └── apache
│ │ │ │ └── shiro
│ │ │ │ └── hazelcast
│ │ │ │ └── cache
│ │ │ │ ├── HazelcastCacheManager.java
│ │ │ │ └── package-info.java
│ │ │ └── resources
│ │ │ └── META-INF
│ │ │ └── NOTICE
│ │ └── test
│ │ ├── groovy
│ │ │ └── org
│ │ │ └── apache
│ │ │ └── shiro
│ │ │ └── hazelcast
│ │ │ └── cache
│ │ │ └── HazelcastCacheManagerTest.groovy
│ │ └── resources
│ │ └── log4j2-test.xml
│ ├── jakarta-ee
│ │ ├── pom.xml
│ │ ├── README.adoc
│ │ └── src
│ │ ├── main
│ │ │ ├── java
│ │ │ │ └── org
│ │ │ │ └── apache
│ │ │ │ └── shiro
│ │ │ │ └── ee
│ │ │ │ ├── cdi
│ │ │ │ │ ├── ShiroFacesViewScoped.java
│ │ │ │ │ ├── ShiroOmniViewScoped.java
│ │ │ │ │ ├── ShiroScopeContext.java
│ │ │ │ │ ├── ShiroSessionScoped.java
│ │ │ │ │ └── ShiroSessionScopeExtension.java
│ │ │ │ ├── faces
│ │ │ │ │ └── tags
│ │ │ │ │ ├── AuthenticatedTag.java
│ │ │ │ │ ├── AuthenticationTagHandler.java
│ │ │ │ │ ├── GuestTag.java
│ │ │ │ │ ├── HasAnyPermissionTag.java
│ │ │ │ │ ├── HasAnyRolesTag.java
│ │ │ │ │ ├── HasPermissionTag.java
│ │ │ │ │ ├── HasRoleTag.java
│ │ │ │ │ ├── LacksPermissionTag.java
│ │ │ │ │ ├── LacksRoleTag.java
│ │ │ │ │ ├── NotAuthenticatedTag.java
│ │ │ │ │ ├── PermissionTagHandler.java
│ │ │ │ │ ├── PrincipalTag.java
│ │ │ │ │ ├── RememberedTag.java
│ │ │ │ │ ├── SecureComponent.java
│ │ │ │ │ ├── SecureTagHandler.java
│ │ │ │ │ └── UserTag.java
│ │ │ │ ├── filters
│ │ │ │ │ ├── AuthenticationFilterDelegate.java
│ │ │ │ │ ├── FormAuthenticationFilter.java
│ │ │ │ │ ├── FormResubmitSupportCookies.java
│ │ │ │ │ ├── FormResubmitSupport.java
│ │ │ │ │ ├── Forms.java
│ │ │ │ │ ├── LogoutFilter.java
│ │ │ │ │ ├── PassThruAuthenticationFilter.java
│ │ │ │ │ ├── ShiroFilter.java
│ │ │ │ │ └── SslFilter.java
│ │ │ │ ├── listeners
│ │ │ │ │ ├── EnvironmentLoaderListener.java
│ │ │ │ │ └── IniEnvironment.java
│ │ │ │ └── util
│ │ │ │ └── JakartaTransformer.java
│ │ │ └── resources
│ │ │ └── META-INF
│ │ │ ├── beans.xml
│ │ │ ├── faces-config.xml
│ │ │ ├── services
│ │ │ │ └── javax.enterprise.inject.spi.Extension
│ │ │ └── shiro-faces.taglib.xml
│ │ └── test
│ │ └── java
│ │ └── org
│ │ └── apache
│ │ └── shiro
│ │ └── ee
│ │ ├── cdi
│ │ │ └── ShiroScopeContextTest.java
│ │ └── filters
│ │ └── FormSupportTest.java
│ ├── jaxrs
│ │ ├── pom.xml
│ │ └── src
│ │ ├── main
│ │ │ ├── java
│ │ │ │ └── org
│ │ │ │ └── apache
│ │ │ │ └── shiro
│ │ │ │ └── web
│ │ │ │ └── jaxrs
│ │ │ │ ├── AnnotationAuthorizationFilter.java
│ │ │ │ ├── ShiroAnnotationFilterFeature.java
│ │ │ │ ├── ShiroFeature.java
│ │ │ │ ├── ShiroSecurityContext.java
│ │ │ │ ├── SubjectPrincipalRequestFilter.java
│ │ │ │ ├── UnauthenticatedExceptionExceptionMapper.java
│ │ │ │ └── UnauthorizedExceptionExceptionMapper.java
│ │ │ └── resources
│ │ │ └── META-INF
│ │ │ └── NOTICE
│ │ └── test
│ │ └── groovy
│ │ └── org
│ │ └── apache
│ │ └── shiro
│ │ └── web
│ │ └── jaxrs
│ │ ├── ShiroSecurityContextTest.groovy
│ │ ├── SubjectPrincipalRequestFilterTest.groovy
│ │ └── UnauthorizedExceptionExceptionMapperTest.groovy
│ ├── jcache
│ │ ├── pom.xml
│ │ └── src
│ │ ├── main
│ │ │ ├── java
│ │ │ │ └── org
│ │ │ │ └── apache
│ │ │ │ └── shiro
│ │ │ │ └── cache
│ │ │ │ └── jcache
│ │ │ │ ├── JCacheManager.java
│ │ │ │ └── package-info.java
│ │ │ └── resources
│ │ │ └── META-INF
│ │ │ └── NOTICE
│ │ └── test
│ │ └── groovy
│ │ └── org
│ │ └── apache
│ │ └── shiro
│ │ └── cache
│ │ └── jcache
│ │ └── JCacheManagerTest.groovy
│ ├── pom.xml
│ ├── quartz
│ │ ├── pom.xml
│ │ └── src
│ │ └── main
│ │ ├── java
│ │ │ └── org
│ │ │ └── apache
│ │ │ └── shiro
│ │ │ └── session
│ │ │ └── mgt
│ │ │ └── quartz
│ │ │ ├── package-info.java
│ │ │ ├── QuartzSessionValidationJob.java
│ │ │ └── QuartzSessionValidationScheduler.java
│ │ └── resources
│ │ └── META-INF
│ │ └── NOTICE
│ ├── servlet-plugin
│ │ ├── pom.xml
│ │ └── src
│ │ └── main
│ │ └── resources
│ │ └── META-INF
│ │ └── web-fragment.xml
│ ├── spring
│ │ ├── pom.xml
│ │ └── src
│ │ ├── main
│ │ │ ├── java
│ │ │ │ └── org
│ │ │ │ └── apache
│ │ │ │ └── shiro
│ │ │ │ └── spring
│ │ │ │ ├── aop
│ │ │ │ │ └── SpringAnnotationResolver.java
│ │ │ │ ├── config
│ │ │ │ │ ├── AbstractShiroAnnotationProcessorConfiguration.java
│ │ │ │ │ ├── AbstractShiroBeanConfiguration.java
│ │ │ │ │ ├── AbstractShiroConfiguration.java
│ │ │ │ │ ├── ShiroAnnotationProcessorConfiguration.java
│ │ │ │ │ ├── ShiroBeanConfiguration.java
│ │ │ │ │ └── ShiroConfiguration.java
│ │ │ │ ├── LifecycleBeanPostProcessor.java
│ │ │ │ ├── package-info.java
│ │ │ │ ├── remoting
│ │ │ │ │ ├── package-info.java
│ │ │ │ │ ├── SecureRemoteInvocationExecutor.java
│ │ │ │ │ └── SecureRemoteInvocationFactory.java
│ │ │ │ ├── security
│ │ │ │ │ └── interceptor
│ │ │ │ │ ├── AopAllianceAnnotationsAuthorizingMethodInterceptor.java
│ │ │ │ │ ├── AuthorizationAttributeSourceAdvisor.java
│ │ │ │ │ └── package-info.java
│ │ │ │ ├── ShiroEventBusBeanPostProcessor.java
│ │ │ │ └── web
│ │ │ │ ├── config
│ │ │ │ │ ├── AbstractShiroWebConfiguration.java
│ │ │ │ │ ├── AbstractShiroWebFilterConfiguration.java
│ │ │ │ │ ├── DefaultShiroFilterChainDefinition.java
│ │ │ │ │ ├── ShiroFilterChainDefinition.java
│ │ │ │ │ ├── ShiroRequestMappingConfig.java
│ │ │ │ │ ├── ShiroWebConfiguration.java
│ │ │ │ │ └── ShiroWebFilterConfiguration.java
│ │ │ │ ├── package-info.java
│ │ │ │ ├── ShiroFilterFactoryBean.java
│ │ │ │ └── ShiroUrlPathHelper.java
│ │ │ └── resources
│ │ │ └── META-INF
│ │ │ └── NOTICE
│ │ └── test
│ │ ├── groovy
│ │ │ └── org
│ │ │ └── apache
│ │ │ └── shiro
│ │ │ └── spring
│ │ │ ├── config
│ │ │ │ ├── ShiroBeanConfigurationTest.groovy
│ │ │ │ ├── ShiroConfigurationTest.groovy
│ │ │ │ ├── ShiroConfigurationWithOptionalComponentsTest.groovy
│ │ │ │ ├── ShiroEventBusAwareBeanPostProcessorTest.groovy
│ │ │ │ ├── ShiroWebConfigurationTest.groovy
│ │ │ │ └── ShiroWebFilterConfigurationTest.groovy
│ │ │ └── web
│ │ │ ├── config
│ │ │ │ ├── DefaultShiroFilterChainDefinitionTest.groovy
│ │ │ │ ├── ShiroWebConfigurationTest.groovy
│ │ │ │ └── ShiroWebConfigurationWithCacheTest.groovy
│ │ │ └── ShiroUrlPathHelperTest.groovy
│ │ ├── java
│ │ │ └── org
│ │ │ └── apache
│ │ │ └── shiro
│ │ │ └── spring
│ │ │ ├── remoting
│ │ │ │ └── SecureRemoteInvocationFactoryTest.java
│ │ │ ├── security
│ │ │ │ └── interceptor
│ │ │ │ ├── AbstractAuthorizationAnnotationTest.java
│ │ │ │ ├── AuthorizationAttributeSourceAdvisorTest.java
│ │ │ │ ├── DapcAuthorizationAnnotationTest.java
│ │ │ │ ├── DefaultTestService.java
│ │ │ │ ├── SchemaAuthorizationAnnotationTest.java
│ │ │ │ └── TestService.java
│ │ │ ├── testconfig
│ │ │ │ ├── EventBusConsumersTestConfiguration.java
│ │ │ │ ├── EventBusTestConfiguration.java
│ │ │ │ ├── OptionalComponentsTestConfiguration.java
│ │ │ │ └── RealmTestConfiguration.java
│ │ │ └── web
│ │ │ ├── config
│ │ │ │ └── ShiroWebConfigurationTestSameSiteStrict.java
│ │ │ ├── DummyFilter.java
│ │ │ ├── ShiroFilterFactoryBeanTest.java
│ │ │ └── testconfig
│ │ │ └── CacheManagerConfiguration.java
│ │ └── resources
│ │ ├── log4j2-test.xml
│ │ └── org
│ │ └── apache
│ │ └── shiro
│ │ └── spring
│ │ ├── security
│ │ │ └── interceptor
│ │ │ ├── AbstractAuthorizationAnnotationTest-context.xml
│ │ │ ├── DapcAuthorizationAnnotationTest-context.xml
│ │ │ └── SchemaAuthorizationAnnotationTest-context.xml
│ │ └── web
│ │ ├── config
│ │ │ └── ShiroWebConfigurationTestSameSiteStrict.properties
│ │ └── ShiroFilterFactoryBeanTest.xml
│ └── spring-boot
│ ├── pom.xml
│ ├── spring-boot-starter
│ │ ├── pom.xml
│ │ └── src
│ │ ├── main
│ │ │ ├── java
│ │ │ │ └── org
│ │ │ │ └── apache
│ │ │ │ └── shiro
│ │ │ │ └── spring
│ │ │ │ ├── boot
│ │ │ │ │ └── autoconfigure
│ │ │ │ │ ├── exception
│ │ │ │ │ │ └── NoRealmBeanConfiguredException.java
│ │ │ │ │ ├── ShiroAnnotationProcessorAutoConfiguration.java
│ │ │ │ │ ├── ShiroAutoConfiguration.java
│ │ │ │ │ ├── ShiroBeanAutoConfiguration.java
│ │ │ │ │ └── ShiroNoRealmConfiguredFailureAnalyzer.java
│ │ │ │ └── config
│ │ │ │ └── web
│ │ │ │ └── autoconfigure
│ │ │ │ ├── ShiroEnvironmentPostProcessor.java
│ │ │ │ ├── ShiroWebAutoConfiguration.java
│ │ │ │ ├── ShiroWebFilterConfiguration.java
│ │ │ │ └── ShiroWebMvcAutoConfiguration.java
│ │ │ └── resources
│ │ │ └── META-INF
│ │ │ ├── additional-spring-configuration-metadata.json
│ │ │ ├── NOTICE
│ │ │ ├── spring
│ │ │ │ └── org.springframework.boot.autoconfigure.AutoConfiguration.imports
│ │ │ ├── spring.factories
│ │ │ └── spring.provides
│ │ └── test
│ │ ├── groovy
│ │ │ └── org
│ │ │ └── apache
│ │ │ └── shiro
│ │ │ └── spring
│ │ │ └── boot
│ │ │ └── autoconfigure
│ │ │ ├── AspectjAndDefaultProxyCreatorTest.groovy
│ │ │ ├── ShiroAnnotationProcessorAutoConfigurationTest.groovy
│ │ │ ├── ShiroSpringAutoConfigurationTest.groovy
│ │ │ ├── SpringFactoriesTest.groovy
│ │ │ └── web
│ │ │ ├── ConfiguredGlobalFiltersTest.groovy
│ │ │ ├── DisabledGlobalFiltersTest.groovy
│ │ │ └── ShiroWebSpringAutoConfigurationTest.groovy
│ │ ├── java
│ │ │ └── org
│ │ │ └── apache
│ │ │ └── shiro
│ │ │ └── spring
│ │ │ └── boot
│ │ │ └── autoconfigure
│ │ │ ├── application
│ │ │ │ └── ShiroAutoConfigurationTestApplication.java
│ │ │ ├── AspectjAndDefaultProxyCreatorApplication.java
│ │ │ ├── AspectjEnabledApplication.java
│ │ │ └── web
│ │ │ └── application
│ │ │ └── ShiroWebAutoConfigurationTestApplication.java
│ │ └── resources
│ │ └── logback.xml
│ └── spring-boot-web-starter
│ └── pom.xml
├── test-coverage
│ └── pom.xml
├── tools
│ ├── hasher
│ │ ├── pom.xml
│ │ └── src
│ │ ├── main
│ │ │ ├── java
│ │ │ │ └── org
│ │ │ │ └── apache
│ │ │ │ └── shiro
│ │ │ │ └── tools
│ │ │ │ └── hasher
│ │ │ │ └── Hasher.java
│ │ │ └── resources
│ │ │ ├── log4j2.xml
│ │ │ └── META-INF
│ │ │ └── NOTICE
│ │ └── test
│ │ └── java
│ │ └── org
│ │ └── apache
│ │ └── shiro
│ │ └── tools
│ │ └── hasher
│ │ └── HasherTest.java
│ └── pom.xml
└── web
├── pom.xml
└── src
├── main
│ ├── java
│ │ └── org
│ │ └── apache
│ │ └── shiro
│ │ └── web
│ │ ├── config
│ │ │ ├── IniFilterChainResolverFactory.java
│ │ │ ├── package-info.java
│ │ │ ├── ShiroFilterConfiguration.java
│ │ │ └── WebIniSecurityManagerFactory.java
│ │ ├── env
│ │ │ ├── DefaultWebEnvironment.java
│ │ │ ├── EnvironmentLoader.java
│ │ │ ├── EnvironmentLoaderListener.java
│ │ │ ├── IniWebEnvironment.java
│ │ │ ├── MutableWebEnvironment.java
│ │ │ ├── package-info.java
│ │ │ ├── ResourceBasedWebEnvironment.java
│ │ │ └── WebEnvironment.java
│ │ ├── filter
│ │ │ ├── AccessControlFilter.java
│ │ │ ├── authc
│ │ │ │ ├── AnonymousFilter.java
│ │ │ │ ├── AuthenticatingFilter.java
│ │ │ │ ├── AuthenticationFilter.java
│ │ │ │ ├── BasicHttpAuthenticationFilter.java
│ │ │ │ ├── BearerHttpAuthenticationFilter.java
│ │ │ │ ├── FormAuthenticationFilter.java
│ │ │ │ ├── HttpAuthenticationFilter.java
│ │ │ │ ├── LogoutFilter.java
│ │ │ │ ├── package-info.java
│ │ │ │ ├── PassThruAuthenticationFilter.java
│ │ │ │ └── UserFilter.java
│ │ │ ├── authz
│ │ │ │ ├── AuthorizationFilter.java
│ │ │ │ ├── HostFilter.java
│ │ │ │ ├── HttpMethodPermissionFilter.java
│ │ │ │ ├── IpAddressMatcher.java
│ │ │ │ ├── IpFilter.java
│ │ │ │ ├── IpSource.java
│ │ │ │ ├── package-info.java
│ │ │ │ ├── PermissionsAuthorizationFilter.java
│ │ │ │ ├── PortFilter.java
│ │ │ │ ├── RolesAuthorizationFilter.java
│ │ │ │ └── SslFilter.java
│ │ │ ├── InvalidRequestFilter.java
│ │ │ ├── mgt
│ │ │ │ ├── DefaultFilterChainManager.java
│ │ │ │ ├── DefaultFilter.java
│ │ │ │ ├── FilterChainManager.java
│ │ │ │ ├── FilterChainResolver.java
│ │ │ │ ├── NamedFilterList.java
│ │ │ │ ├── package-info.java
│ │ │ │ ├── PathMatchingFilterChainResolver.java
│ │ │ │ └── SimpleNamedFilterList.java
│ │ │ ├── package-info.java
│ │ │ ├── PathConfigProcessor.java
│ │ │ ├── PathMatchingFilter.java
│ │ │ └── session
│ │ │ ├── NoSessionCreationFilter.java
│ │ │ └── package-info.java
│ │ ├── mgt
│ │ │ ├── CookieRememberMeManager.java
│ │ │ ├── DefaultWebSecurityManager.java
│ │ │ ├── DefaultWebSessionStorageEvaluator.java
│ │ │ ├── DefaultWebSubjectFactory.java
│ │ │ ├── package-info.java
│ │ │ └── WebSecurityManager.java
│ │ ├── package-info.java
│ │ ├── servlet
│ │ │ ├── AbstractFilter.java
│ │ │ ├── AbstractShiroFilter.java
│ │ │ ├── AdviceFilter.java
│ │ │ ├── Cookie.java
│ │ │ ├── HttpSessionContext.java
│ │ │ ├── IniShiroFilter.java
│ │ │ ├── NameableFilter.java
│ │ │ ├── OncePerRequestFilter.java
│ │ │ ├── package-info.java
│ │ │ ├── ProxiedFilterChain.java
│ │ │ ├── ServletContextSupport.java
│ │ │ ├── ShiroFilter.java
│ │ │ ├── ShiroHttpServletRequest.java
│ │ │ ├── ShiroHttpServletResponse.java
│ │ │ ├── ShiroHttpSession.java
│ │ │ └── SimpleCookie.java
│ │ ├── session
│ │ │ ├── HttpServletSession.java
│ │ │ ├── mgt
│ │ │ │ ├── DefaultWebSessionContext.java
│ │ │ │ ├── DefaultWebSessionManager.java
│ │ │ │ ├── package-info.java
│ │ │ │ ├── ServletContainerSessionManager.java
│ │ │ │ ├── WebSessionContext.java
│ │ │ │ ├── WebSessionKey.java
│ │ │ │ └── WebSessionManager.java
│ │ │ └── package-info.java
│ │ ├── subject
│ │ │ ├── package-info.java
│ │ │ ├── support
│ │ │ │ ├── DefaultWebSubjectContext.java
│ │ │ │ ├── package-info.java
│ │ │ │ └── WebDelegatingSubject.java
│ │ │ ├── WebSubjectContext.java
│ │ │ └── WebSubject.java
│ │ ├── tags
│ │ │ ├── AuthenticatedTag.java
│ │ │ ├── GuestTag.java
│ │ │ ├── HasAnyRolesTag.java
│ │ │ ├── HasPermissionTag.java
│ │ │ ├── HasRoleTag.java
│ │ │ ├── LacksPermissionTag.java
│ │ │ ├── LacksRoleTag.java
│ │ │ ├── NotAuthenticatedTag.java
│ │ │ ├── package-info.java
│ │ │ ├── PermissionTag.java
│ │ │ ├── PrincipalTag.java
│ │ │ ├── RoleTag.java
│ │ │ ├── SecureTag.java
│ │ │ └── UserTag.java
│ │ └── util
│ │ ├── package-info.java
│ │ ├── RedirectView.java
│ │ ├── RequestPairSource.java
│ │ ├── SavedRequest.java
│ │ └── WebUtils.java
│ └── resources
│ └── META-INF
│ ├── NOTICE
│ └── shiro.tld
└── test
├── groovy
│ └── org
│ └── apache
│ └── shiro
│ └── web
│ ├── config
│ │ └── IniFilterChainResolverFactoryTest.groovy
│ ├── env
│ │ ├── EnvironmentLoaderTest.groovy
│ │ ├── IniWebEnvironmentTest.groovy
│ │ └── MockWebEnvironment.groovy
│ ├── filter
│ │ ├── authc
│ │ │ ├── BearerHttpFilterAuthenticationTest.groovy
│ │ │ └── LogoutFilterTest.groovy
│ │ ├── InvalidRequestFilterTest.groovy
│ │ ├── mgt
│ │ │ └── DefaultFilterChainManagerTest.groovy
│ │ └── session
│ │ └── NoSessionCreationFilterTest.groovy
│ ├── mgt
│ │ └── DefaultWebSessionStorageEvaluatorTest.groovy
│ ├── servlet
│ │ ├── AbstractShiroFilterTest.groovy
│ │ ├── IniShiroFilterTest.groovy
│ │ ├── ShiroFilterTest.groovy
│ │ └── ShiroHttpServletResponseTest.groovy
│ ├── session
│ │ └── mgt
│ │ ├── DefaultWebSessionManagerTest.groovy
│ │ └── ServletContainerSessionManagerTest.groovy
│ └── util
│ ├── SavedRequestTest.groovy
│ └── WebUtilsTest.groovy
├── java
│ └── org
│ └── apache
│ └── shiro
│ └── web
│ ├── config
│ │ └── WebIniSecurityManagerFactoryTest.java
│ ├── env
│ │ ├── EnvironmentLoaderServiceTest.java
│ │ ├── FilterStub.java
│ │ └── WebEnvironmentStub.java
│ ├── filter
│ │ ├── authc
│ │ │ ├── AnonymousFilterTest.java
│ │ │ └── BasicHttpFilterAuthenticationTest.java
│ │ ├── authz
│ │ │ ├── AuthorizationFilterTest.java
│ │ │ ├── HostFilterTest.java
│ │ │ ├── HttpMethodPermissionFilterTest.java
│ │ │ ├── IpAddressMatcherTests.java
│ │ │ ├── IpFilterTest.java
│ │ │ ├── PortFilterTest.java
│ │ │ └── SslFilterTest.java
│ │ ├── mgt
│ │ │ ├── PathMatchingFilterChainResolverTest.java
│ │ │ └── SimpleNamedFilterListTest.java
│ │ ├── PathMatchingFilterParameterizedTest.java
│ │ └── PathMatchingFilterTest.java
│ ├── mgt
│ │ ├── AbstractWebSecurityManagerTest.java
│ │ ├── CookieRememberMeManagerTest.java
│ │ ├── DefaultWebSecurityManagerTest.java
│ │ └── NonIniWebSecurityManagerTest.java
│ ├── RestoreSystemProperties.java
│ ├── servlet
│ │ ├── OncePerRequestFilterTest.java
│ │ ├── ShiroHttpServletRequestTest.java
│ │ └── SimpleCookieTest.java
│ ├── session
│ │ └── HttpServletSessionTest.java
│ └── WebTest.java
└── resources
├── EmptyShiroIni.ini
├── IniShiroFilterTest.ini
└── log4j2-test.xml
977 directories, 1243 files
标签:
相关软件
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论