This is an automated email from the ASF dual-hosted git repository. lprimak pushed a commit to branch 3.x in repository https://gitbox.apache.org/repos/asf/shiro.git
commit ebd1d1e3bb65da331e1fd68fc9fc6b8749cb9ea3 Merge: 809b74bb4 fb2af26cf Author: lprimak <[email protected]> AuthorDate: Sun Jan 18 14:22:16 2026 -0600 Merge branch 'main' into 3.x .asf.yaml | 10 +- .../maven-wrapper.properties => .editorconfig | 18 +++- .github/ISSUE_TEMPLATE/bug_report.yml | 2 +- .github/ISSUE_TEMPLATE/documentation_related.yml | 2 +- .github/ISSUE_TEMPLATE/enhancement_request.yml | 2 +- .github/ISSUE_TEMPLATE/feature_request.yml | 2 +- .github/ISSUE_TEMPLATE/question.yml | 2 +- .github/dependabot.yml | 16 ++- .../labeler.yml | 23 +++- .../linters/.markdown-lint.yml | 21 +++- .../linters/.yaml-lint.yml | 15 ++- .github/linters/codespell.txt | 16 +++ .github/pull_request_template.md | 5 +- .github/workflows/codeql.yml | 10 +- .../workflows/dependency-review.yml | 18 +++- .../workflows/labeler.yml | 21 +++- .github/workflows/maven.yml | 16 +-- .github/workflows/pre-commit.yml | 60 +++++++++++ .github/workflows/scorecards.yml | 8 +- .github/workflows/stale.yml | 2 +- .jenkins.groovy | 32 +++++- .mvn/{maven.properties => maven-user.properties} | 0 .mvn/wrapper/maven-wrapper.properties | 20 +--- .pre-commit-config.yaml | 114 ++++++++++++++++++++ CONTRIBUTING.md | 8 +- LICENSE | 2 +- README.md | 13 ++- RELEASE-NOTES | 4 +- bom/pom.xml | 2 +- cache/pom.xml | 2 +- config/core/pom.xml | 2 +- config/ogdl/pom.xml | 2 +- .../org/apache/shiro/config/ogdl/SimpleEnum.groovy | 2 +- config/pom.xml | 3 +- core/pom.xml | 2 +- .../org/apache/shiro/aop/MethodInvocation.java | 1 - .../credential/AllowAllCredentialsMatcher.java | 7 ++ .../shiro/authc/credential/CredentialsMatcher.java | 12 +++ .../shiro/authc/credential/PasswordMatcher.java | 7 +- .../authc/credential/SimpleCredentialsMatcher.java | 34 ++++++ .../shiro/mgt/AbstractRememberMeManager.java | 2 +- .../apache/shiro/realm/AuthenticatingRealm.java | 84 ++++++++++++--- .../activedirectory/ActiveDirectoryRealm.java | 17 +-- .../apache/shiro/realm/ldap/AbstractLdapRealm.java | 9 ++ .../org/apache/shiro/session/package-info.java | 2 +- .../shiro/subject/support/DelegatingSubject.java | 2 +- .../java/org/apache/shiro/util/ThreadContext.java | 1 - .../shiro/realm/AuthenticatingRealmTest.groovy | 1 + .../apache/shiro/aop/AnnotationResolverTest.java | 1 - .../shiro/realm/AuthenticatingRealmJavaTest.java | 120 +++++++++++++++++++++ .../activedirectory/ActiveDirectoryRealmTest.java | 28 ++++- .../shiro/config/IniSecurityManagerFactoryTest.ini | 2 +- .../AdRealm.withPrincipalSuffix.ini | 14 ++- .../shiro/realm/text/IniRealmTest.simple.ini | 1 - core/src/test/resources/test.shiro.ini | 2 +- crypto/cipher/pom.xml | 2 +- crypto/core/pom.xml | 2 +- crypto/hash/pom.xml | 2 +- .../org/apache/shiro/crypto/hash/HashService.java | 2 +- .../org/apache/shiro/crypto/hash/Sha512Hash.java | 1 - .../shiro/crypto/hash/SimpleHashProvider.java | 2 +- .../shiro/crypto/hash/format/HexFormatTest.groovy | 2 - crypto/pom.xml | 3 +- crypto/support/hashes/argon2/pom.xml | 2 +- .../crypto/support/hashes/argon2/Argon2Hash.java | 5 +- crypto/support/hashes/bcrypt/pom.xml | 2 +- .../crypto/support/hashes/bcrypt/BCryptHash.java | 39 +++++-- crypto/support/pom.xml | 2 +- event/pom.xml | 2 +- integration-tests/guice3/pom.xml | 2 +- .../guice3/src/main/webapp/WEB-INF/shiro.ini | 6 +- .../guice3/src/main/webapp/account/index.jsp | 2 +- .../guice3/src/main/webapp/include.jsp | 2 +- integration-tests/guice3/src/main/webapp/index.jsp | 2 +- integration-tests/guice3/src/main/webapp/style.css | 2 +- integration-tests/guice4/pom.xml | 2 +- .../guice4/src/main/webapp/WEB-INF/shiro.ini | 6 +- .../guice4/src/main/webapp/account/index.jsp | 2 +- .../guice4/src/main/webapp/include.jsp | 2 +- integration-tests/guice4/src/main/webapp/index.jsp | 2 +- integration-tests/guice4/src/main/webapp/style.css | 2 +- integration-tests/jakarta-ee-support/pom.xml | 4 +- integration-tests/jakarta-ee/pom.xml | 45 +------- .../src/main/resources/setPayaraPort.groovy | 52 +++++++++ .../main/webapp/shiro/auth/unauthenticated.xhtml | 1 - .../jakarta-ee/src/main/webapp/shiro/form.xhtml | 2 +- .../main/webapp/shiro/unprotected/manybeans.xhtml | 2 +- integration-tests/jaxrs/app/pom.xml | 6 +- .../resources/META-INF/resources/WEB-INF/shiro.ini | 4 +- .../jaxrs/app/src/main/webapp/WEB-INF/shiro.ini | 4 +- integration-tests/jaxrs/meecrowave/pom.xml | 2 +- integration-tests/jaxrs/openliberty/pom.xml | 2 +- integration-tests/jaxrs/pom.xml | 2 +- integration-tests/jaxrs/tests/pom.xml | 7 +- integration-tests/meecrowave-support/pom.xml | 29 ++++- integration-tests/pom.xml | 2 +- integration-tests/support/pom.xml | 9 +- .../support/src/main/resources/createKeyStore.sh | 3 +- lang/pom.xml | 2 +- .../org/apache/shiro/lang/io/XmlSerializer.java | 2 +- mvnw | 50 +++++++-- mvnw.cmd | 56 ++++++++-- pom.xml | 74 +++++++------ samples/aspectj/pom.xml | 2 +- samples/guice/pom.xml | 2 +- samples/guice/src/main/webapp/WEB-INF/shiro.ini | 6 +- samples/guice/src/main/webapp/account/index.jsp | 2 +- samples/guice/src/main/webapp/include.jsp | 2 +- samples/guice/src/main/webapp/index.jsp | 2 +- samples/guice/src/main/webapp/style.css | 2 +- samples/pom.xml | 2 +- samples/quickstart-guice/pom.xml | 4 +- samples/quickstart/pom.xml | 4 +- samples/servlet-plugin/pom.xml | 2 +- .../src/main/webapp/WEB-INF/shiro.ini | 6 +- .../src/main/webapp/account/index.jsp | 2 +- samples/servlet-plugin/src/main/webapp/include.jsp | 2 +- samples/servlet-plugin/src/main/webapp/index.jsp | 2 +- samples/servlet-plugin/src/main/webapp/style.css | 2 +- samples/spring-boot-3-web/pom.xml | 32 +++++- .../src/main/resources/application.properties | 2 +- .../src/main/resources/log4j2.properties | 49 +++++---- .../src/main/resources/templates/account-info.html | 2 +- .../src/main/resources/templates/error.html | 4 +- .../main/resources/templates/fragments/head.html | 2 +- .../src/main/resources/templates/hello.html | 2 +- .../src/main/resources/templates/login.html | 2 +- samples/spring-boot-web/pom.xml | 18 +++- .../src/main/resources/application.properties | 2 +- .../src/main/resources/templates/account-info.html | 2 +- .../src/main/resources/templates/error.html | 4 +- .../main/resources/templates/fragments/head.html | 2 +- .../src/main/resources/templates/hello.html | 2 +- .../src/main/resources/templates/login.html | 2 +- samples/spring-boot/README.md | 1 - samples/spring-boot/pom.xml | 2 +- .../src/main/resources/application.properties | 2 +- samples/spring-hibernate/pom.xml | 2 +- .../shiro/samples/sprhib/dao/HibernateUserDAO.java | 1 - .../apache/shiro/samples/sprhib/model/Role.java | 2 - .../apache/shiro/samples/sprhib/model/User.java | 2 - .../shiro/samples/sprhib/security/SampleRealm.java | 1 - .../src/main/resources/ehcache.xml | 2 +- .../src/main/resources/hibernate.cfg.xml | 2 +- .../src/main/webapp/WEB-INF/jsp/editUser.jsp | 2 +- .../src/main/webapp/WEB-INF/jsp/login.jsp | 2 +- .../src/main/webapp/WEB-INF/jsp/signup.jsp | 2 +- samples/spring-hibernate/src/main/webapp/index.jsp | 2 +- .../src/main/webapp/styles/sample.css | 2 +- samples/spring-mvc/pom.xml | 2 +- .../src/main/webapp/WEB-INF/resources/include.jsp | 2 +- .../main/webapp/WEB-INF/resources/sampleIndex.jsp | 2 +- samples/spring-mvc/src/main/webapp/logo.png | Bin 10883 -> 9480 bytes samples/spring-mvc/src/main/webapp/shiro.css | 2 +- samples/spring/pom.xml | 4 +- .../src/main/resources/application.properties | 1 - samples/web-jakarta/pom.xml | 41 ++++++- .../web-jakarta/src/main/webapp/WEB-INF/shiro.ini | 5 +- samples/web/pom.xml | 2 +- samples/web/src/main/webapp/WEB-INF/shiro.ini | 5 +- samples/web/src/main/webapp/account/index.jsp | 2 +- samples/web/src/main/webapp/include.jsp | 2 +- samples/web/src/main/webapp/index.jsp | 2 +- samples/web/src/main/webapp/style.css | 2 +- shiro.doap.rdf | 2 +- src/japicmp/postAnalysisScript.groovy | 2 +- src/license/header.txt | 2 +- src/license/header_format.xml | 2 +- src/site/resources/images/apache-shiro-logo.png | Bin 20928 -> 11859 bytes src/site/resources/images/asf_logo.png | Bin 18372 -> 12191 bytes src/site/site.xml | 2 +- support/aspectj/pom.xml | 2 +- .../org/apache/shiro/aspectj/package-info.java | 3 - support/aspectj/src/main/resources/META-INF/NOTICE | 6 +- support/cdi/pom.xml | 2 +- support/ehcache/pom.xml | 2 +- .../org/apache/shiro/cache/ehcache/EhCache.java | 2 +- support/ehcache/src/main/resources/META-INF/NOTICE | 6 +- .../org/apache/shiro/cache/ehcache/ehcache.xml | 2 - support/features/pom.xml | 2 +- support/guice/pom.xml | 7 +- .../org/apache/shiro/guice/web/ShiroWebModule.java | 2 +- support/guice/src/main/resources/META-INF/NOTICE | 4 +- support/hazelcast/pom.xml | 2 +- .../hazelcast/src/main/resources/META-INF/NOTICE | 6 +- support/jakarta-ee/pom.xml | 6 +- support/jaxrs/pom.xml | 2 +- support/jcache/pom.xml | 2 +- .../apache/shiro/cache/jcache/JCacheManager.java | 2 +- support/jcache/src/main/resources/META-INF/NOTICE | 4 +- support/pom.xml | 2 +- support/quartz/pom.xml | 2 +- support/quartz/src/main/resources/META-INF/NOTICE | 4 +- support/servlet-plugin/pom.xml | 4 +- support/spring-boot/pom.xml | 10 +- support/spring-boot/spring-boot-starter/pom.xml | 32 +++++- .../src/main/resources/META-INF/NOTICE | 6 +- .../additional-spring-configuration-metadata.json | 2 +- .../src/main/resources/META-INF/spring.factories | 2 +- .../src/main/resources/META-INF/spring.provides | 2 +- ...rk.boot.autoconfigure.AutoConfiguration.imports | 2 +- .../spring-boot/spring-boot-web-starter/pom.xml | 39 ++++++- support/spring/pom.xml | 2 +- support/spring/src/main/resources/META-INF/NOTICE | 4 +- .../SchemaAuthorizationAnnotationTest-context.xml | 2 +- test-coverage/pom.xml | 1 - tools/hasher/pom.xml | 2 +- .../java/org/apache/shiro/tools/hasher/Hasher.java | 20 ++-- .../org/apache/shiro/tools/hasher/HasherTest.java | 15 +++ tools/pom.xml | 3 +- web/pom.xml | 2 +- .../apache/shiro/web/env/EnvironmentLoader.java | 2 +- .../shiro/web/filter/AccessControlFilter.java | 2 +- .../web/filter/authc/HttpAuthenticationFilter.java | 33 ++++-- .../apache/shiro/web/servlet/AbstractFilter.java | 1 - .../shiro/web/servlet/AbstractShiroFilter.java | 4 +- .../apache/shiro/web/servlet/IniShiroFilter.java | 12 +-- .../org/apache/shiro/web/servlet/ShiroFilter.java | 2 +- .../java/org/apache/shiro/web/util/CorsUtils.java | 69 ++++++++++++ .../BearerHttpFilterAuthenticationTest.groovy | 41 ++++++- .../authc/BasicHttpFilterAuthenticationTest.java | 34 ++++++ .../org/apache/shiro/web/util/CorsUtilsTest.java | 71 ++++++++++++ web/src/test/resources/IniShiroFilterTest.ini | 1 - 223 files changed, 1574 insertions(+), 486 deletions(-) diff --cc core/src/test/java/org/apache/shiro/aop/AnnotationResolverTest.java index f96ade82f,d493aa6d9..c46b15f07 --- a/core/src/test/java/org/apache/shiro/aop/AnnotationResolverTest.java +++ b/core/src/test/java/org/apache/shiro/aop/AnnotationResolverTest.java @@@ -71,7 -72,6 +71,6 @@@ public class AnnotationResolverTest expect(methodInvocation.getMethod()).andReturn(method); expect(methodInvocation.getThis()).andReturn(null); replay(methodInvocation); - assertNull(annotationResolver.getAnnotation(methodInvocation, RequiresUser.class)); + assertThat(annotationResolver.getAnnotation(methodInvocation, RequiresUser.class)).isNull(); } } - diff --cc pom.xml index 79cffb4ff,aeb4f185d..6c5b299a9 --- a/pom.xml +++ b/pom.xml @@@ -66,17 -66,15 +66,16 @@@ </distributionManagement> <properties> - <shiro.previousVersion>2.0.0</shiro.previousVersion> + <!-- *** Remove the line below when 3.0.0 is released --> - <japicmp.skip>true</japicmp.skip> + <shiro.previousVersion>3.0.0</shiro.previousVersion> <!-- Replaced by the build number plugin at build time: --> <buildNumber>${user.name}-${maven.build.timestamp}</buildNumber> - <project.build.outputTimestamp>2024-08-12T08:14:05Z</project.build.outputTimestamp> + <project.build.outputTimestamp>2026-01-15T21:40:21Z</project.build.outputTimestamp> <jacoco.skip>true</jacoco.skip> <!--suppress CheckTagEmptyBody --> - <surefire.argLine></surefire.argLine> + <surefire.argLine/> <!--suppress CheckTagEmptyBody --> - <failsafe.argLine></failsafe.argLine> + <failsafe.argLine/> <junit5.parallel.tests.enabled>true</junit5.parallel.tests.enabled> <junit5.parallel.tests.mode>concurrent</junit5.parallel.tests.mode> <nexus.deploy.skip>false</nexus.deploy.skip>
