This is an automated email from the ASF dual-hosted git repository.
lprimak pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/shiro.git
The following commit(s) were added to refs/heads/main by this push:
new 9f634a5f4 chore: fix CodeQL issues (#2915)
9f634a5f4 is described below
commit 9f634a5f46036caa41feb2d34cd6f6537b19cfda
Author: Lenny Primak <[email protected]>
AuthorDate: Sun Oct 18 12:20:43 2026 -0400
chore: fix CodeQL issues (#2915)
* chore: fix CodeQL issues
* delombok for javadoc
* delombok: cleanup
---
.../src/main/java/org/apache/shiro/config/Ini.java | 2 ++
.../shiro/config/ogdl/ReflectionBuilder.java | 4 +--
core/pom.xml | 2 ++
.../shiro/authc/pam/ModularRealmAuthenticator.java | 1 +
.../shiro/authz/permission/WildcardPermission.java | 6 ++--
.../org/apache/shiro/ini/IniFactorySupport.java | 1 +
.../org/apache/shiro/realm/SimpleAccountRealm.java | 2 +-
.../activedirectory/ActiveDirectoryRealm.java | 2 ++
.../org/apache/shiro/realm/jdbc/JdbcRealm.java | 1 +
.../apache/shiro/realm/ldap/AbstractLdapRealm.java | 3 ++
.../apache/shiro/realm/ldap/DefaultLdapRealm.java | 2 ++
.../shiro/subject/support/DelegatingSubject.java | 1 -
.../java/org/apache/shiro/util/MapContext.java | 1 +
.../org/apache/shiro/SecurityUtilsUnwrapTest.java | 8 ++---
.../shiro/authc/ConcurrentAccessExceptionTest.java | 1 +
.../authc/ExcessiveAttemptsExceptionTest.java | 1 +
.../authc/ExpiredCredentialsExceptionTest.java | 1 +
.../authc/IncorrectCredentialsExceptionTest.java | 1 +
.../shiro/authc/LockedAccountExceptionTest.java | 1 +
.../shiro/authc/UnknownAccountExceptionTest.java | 1 +
.../shiro/authc/pam/AllSuccessfulStrategyTest.java | 2 ++
.../shiro/authz/AuthorizationExceptionTest.java | 1 +
.../shiro/authz/HostUnauthorizedExceptionTest.java | 1 +
.../shiro/authz/ModularRealmAuthorizerTest.java | 2 +-
.../shiro/authz/UnauthenticatedExceptionTest.java | 1 +
.../shiro/authz/UnauthorizedExceptionTest.java | 1 +
.../apache/shiro/config/HashMapCacheManager.java | 2 +-
.../shiro/lang/io/SerializationExceptionTest.java | 1 +
.../activedirectory/ActiveDirectoryRealmTest.java | 2 ++
.../org/apache/shiro/realm/jdbc/JDBCRealmTest.java | 13 ++++----
.../org/apache/shiro/realm/text/IniRealmTest.java | 2 +-
.../realm/text/TextConfigurationRealmTest.java | 2 +-
.../session/mgt/DefaultSessionManagerTest.java | 2 +-
.../shiro/session/mgt/DelegatingSessionTest.java | 2 --
.../subject/SimplePrincipalCollectionTest.java | 5 +---
.../shiro/testing/jakarta/ee/ShiroBeansIT.java | 4 ---
.../lang/io/ClassResolvingObjectInputStream.java | 1 -
pom.xml | 35 +++++++++++++++++++++-
.../src/main/java/QuickstartShiroModule.java | 1 +
.../shiro/samples/sprhib/security/SampleRealm.java | 2 ++
.../shiro/samples/spring/web/JnlpController.java | 1 +
.../shiro/samples/spring/web/LogoutController.java | 1 +
support/cdi/pom.xml | 2 ++
.../org/apache/shiro/cdi/AnnotatedTypeWrapper.java | 2 +-
.../apache/shiro/cdi/AnnotatedTypeWrapperTest.java | 6 ++--
.../java/org/apache/shiro/cdi/AopHelperTest.java | 2 +-
.../shiro/guice/DestroyableInjectionListener.java | 1 +
.../guice/InitializableInjectionListener.java | 1 +
.../java/org/apache/shiro/guice/ShiroModule.java | 5 ++--
.../apache/shiro/guice/GuiceEnvironmentTest.java | 2 +-
.../apache/shiro/guice/aop/ShiroAopModuleTest.java | 2 ++
support/jakarta-ee/pom.xml | 2 ++
.../shiro/ee/filters/FormResubmitRequest.java | 2 +-
.../shiro/ee/filters/FormResubmitResponse.java | 2 +-
.../autoconfigure/ShiroWebFilterConfiguration.java | 1 +
.../EventBusConsumersTestConfiguration.java | 4 +--
.../java/org/apache/shiro/tools/hasher/Hasher.java | 4 +--
.../web/config/IniFilterChainResolverFactory.java | 2 ++
.../shiro/web/filter/PathMatchingFilter.java | 1 +
.../web/filter/authc/AuthenticationFilter.java | 1 +
.../web/filter/authc/FormAuthenticationFilter.java | 1 +
.../web/filter/authc/HttpAuthenticationFilter.java | 1 +
.../filter/authc/PassThruAuthenticationFilter.java | 1 +
.../apache/shiro/web/filter/authc/UserFilter.java | 2 ++
.../web/filter/authz/AuthorizationFilter.java | 1 +
.../apache/shiro/web/filter/authz/HostFilter.java | 1 +
.../apache/shiro/web/filter/authz/IpFilter.java | 1 +
.../authz/PermissionsAuthorizationFilter.java | 1 +
.../apache/shiro/web/filter/authz/PortFilter.java | 1 +
.../web/filter/authz/RolesAuthorizationFilter.java | 1 +
.../web/filter/mgt/SimpleNamedFilterList.java | 2 ++
.../shiro/web/servlet/ShiroHttpServletRequest.java | 2 +-
.../org/apache/shiro/web/servlet/SimpleCookie.java | 2 +-
.../web/session/mgt/DefaultWebSessionManager.java | 2 ++
74 files changed, 136 insertions(+), 51 deletions(-)
diff --git a/config/core/src/main/java/org/apache/shiro/config/Ini.java
b/config/core/src/main/java/org/apache/shiro/config/Ini.java
index 59b38c111..f7b02572e 100644
--- a/config/core/src/main/java/org/apache/shiro/config/Ini.java
+++ b/config/core/src/main/java/org/apache/shiro/config/Ini.java
@@ -507,6 +507,7 @@ public final class Ini implements Map<String, Ini.Section> {
return this.sections.remove(key);
}
+ @Override
public void putAll(Map<? extends String, ? extends Section> m) {
this.sections.putAll(m);
}
@@ -704,6 +705,7 @@ public final class Ini implements Map<String, Ini.Section> {
return this.props.put(key, value);
}
+ @Override
public void putAll(Map<? extends String, ? extends String> m) {
this.props.putAll(m);
}
diff --git
a/config/ogdl/src/main/java/org/apache/shiro/config/ogdl/ReflectionBuilder.java
b/config/ogdl/src/main/java/org/apache/shiro/config/ogdl/ReflectionBuilder.java
index aa350452e..2251c75fc 100644
---
a/config/ogdl/src/main/java/org/apache/shiro/config/ogdl/ReflectionBuilder.java
+++
b/config/ogdl/src/main/java/org/apache/shiro/config/ogdl/ReflectionBuilder.java
@@ -871,7 +871,7 @@ public class ReflectionBuilder {
}
}
- private final class BeanConfiguration {
+ private static final class BeanConfiguration {
private final InstantiationStatement instantiationStatement;
private final List<AssignmentStatement> assignments = new
ArrayList<AssignmentStatement>();
@@ -941,7 +941,7 @@ public class ReflectionBuilder {
}
}
- private abstract class Statement {
+ private abstract static class Statement {
protected final String lhs;
protected final String rhs;
diff --git a/core/pom.xml b/core/pom.xml
index aa203bfc7..ce037bd3b 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -32,6 +32,8 @@
<packaging>bundle</packaging>
<properties>
<module.name>core</module.name>
+ <delombok.phase>prepare-package</delombok.phase>
+ <javadoc.sourcepath>${javadoc.delombok.sourcepath}</javadoc.sourcepath>
</properties>
<build>
diff --git
a/core/src/main/java/org/apache/shiro/authc/pam/ModularRealmAuthenticator.java
b/core/src/main/java/org/apache/shiro/authc/pam/ModularRealmAuthenticator.java
index 20e62cf89..f5f67ad43 100644
---
a/core/src/main/java/org/apache/shiro/authc/pam/ModularRealmAuthenticator.java
+++
b/core/src/main/java/org/apache/shiro/authc/pam/ModularRealmAuthenticator.java
@@ -269,6 +269,7 @@ public class ModularRealmAuthenticator extends
AbstractAuthenticator {
* @throws AuthenticationException if the user could not be authenticated
or the user is denied authentication
* for the given principal and credentials.
*/
+ @Override
protected AuthenticationInfo doAuthenticate(AuthenticationToken
authenticationToken) throws AuthenticationException {
assertRealmsConfigured();
Collection<Realm> realms = getRealms();
diff --git
a/core/src/main/java/org/apache/shiro/authz/permission/WildcardPermission.java
b/core/src/main/java/org/apache/shiro/authz/permission/WildcardPermission.java
index c9e0b88de..a3f17166a 100644
---
a/core/src/main/java/org/apache/shiro/authz/permission/WildcardPermission.java
+++
b/core/src/main/java/org/apache/shiro/authz/permission/WildcardPermission.java
@@ -150,7 +150,7 @@ public class WildcardPermission implements Permission,
Serializable {
wildcardString = StringUtils.clean(wildcardString);
if (wildcardString == null || wildcardString.isEmpty()) {
- throw new IllegalArgumentException("Wildcard string cannot be null
or empty."
+ throw new IllegalArgumentException("Wildcard string cannot be null
or empty. "
+ "Make sure permission strings are properly formatted.");
}
@@ -165,14 +165,14 @@ public class WildcardPermission implements Permission,
Serializable {
Set<String> subparts =
CollectionUtils.asSet(part.split(SUBPART_DIVIDER_TOKEN));
if (subparts.isEmpty()) {
- throw new IllegalArgumentException("Wildcard string cannot
contain parts with only dividers."
+ throw new IllegalArgumentException("Wildcard string cannot
contain parts with only dividers. "
+ "Make sure permission strings are properly
formatted.");
}
this.parts.add(subparts);
}
if (this.parts.isEmpty()) {
- throw new IllegalArgumentException("Wildcard string cannot contain
only dividers."
+ throw new IllegalArgumentException("Wildcard string cannot contain
only dividers. "
+ "Make sure permission strings are properly
formatted.");
}
}
diff --git a/core/src/main/java/org/apache/shiro/ini/IniFactorySupport.java
b/core/src/main/java/org/apache/shiro/ini/IniFactorySupport.java
index 4fb2370bd..79c9469f2 100644
--- a/core/src/main/java/org/apache/shiro/ini/IniFactorySupport.java
+++ b/core/src/main/java/org/apache/shiro/ini/IniFactorySupport.java
@@ -137,6 +137,7 @@ public abstract class IniFactorySupport<T> extends
AbstractFactory<T> {
*
* @return a new {@code SecurityManager} instance by using a configured
INI source.
*/
+ @Override
public T createInstance() {
Ini ini = resolveIni();
diff --git a/core/src/main/java/org/apache/shiro/realm/SimpleAccountRealm.java
b/core/src/main/java/org/apache/shiro/realm/SimpleAccountRealm.java
index 3da896bb7..db6c640cd 100644
--- a/core/src/main/java/org/apache/shiro/realm/SimpleAccountRealm.java
+++ b/core/src/main/java/org/apache/shiro/realm/SimpleAccountRealm.java
@@ -146,7 +146,7 @@ public class SimpleAccountRealm extends AuthorizingRealm {
}
protected static Set<String> toSet(String delimited, String delimiter) {
- if (delimited == null || delimited.trim().equals("")) {
+ if (delimited == null || delimited.trim().isEmpty()) {
return null;
}
diff --git
a/core/src/main/java/org/apache/shiro/realm/activedirectory/ActiveDirectoryRealm.java
b/core/src/main/java/org/apache/shiro/realm/activedirectory/ActiveDirectoryRealm.java
index 85d465dbd..7272e22ce 100644
---
a/core/src/main/java/org/apache/shiro/realm/activedirectory/ActiveDirectoryRealm.java
+++
b/core/src/main/java/org/apache/shiro/realm/activedirectory/ActiveDirectoryRealm.java
@@ -103,6 +103,7 @@ public class ActiveDirectoryRealm extends AbstractLdapRealm
{
* @return an {@link AuthenticationInfo} instance containing information
retrieved from LDAP.
* @throws NamingException if any LDAP errors occur during the search.
*/
+ @Override
protected AuthenticationInfo
queryForAuthenticationInfo(AuthenticationToken token, LdapContextFactory
ldapContextFactory)
throws NamingException {
@@ -140,6 +141,7 @@ public class ActiveDirectoryRealm extends AbstractLdapRealm
{
* @return the AuthorizationInfo for the given Subject principal.
* @throws NamingException if an error occurs when searching the LDAP
server.
*/
+ @Override
protected AuthorizationInfo queryForAuthorizationInfo(PrincipalCollection
principals,
LdapContextFactory
ldapContextFactory) throws NamingException {
diff --git a/core/src/main/java/org/apache/shiro/realm/jdbc/JdbcRealm.java
b/core/src/main/java/org/apache/shiro/realm/jdbc/JdbcRealm.java
index aa567790c..70b224dfb 100644
--- a/core/src/main/java/org/apache/shiro/realm/jdbc/JdbcRealm.java
+++ b/core/src/main/java/org/apache/shiro/realm/jdbc/JdbcRealm.java
@@ -218,6 +218,7 @@ public class JdbcRealm extends AuthorizingRealm {
| M E T H O D S |
============================================*/
+ @Override
protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken
token) throws AuthenticationException {
UsernamePasswordToken upToken = (UsernamePasswordToken) token;
diff --git
a/core/src/main/java/org/apache/shiro/realm/ldap/AbstractLdapRealm.java
b/core/src/main/java/org/apache/shiro/realm/ldap/AbstractLdapRealm.java
index e64425f4e..33c57441f 100644
--- a/core/src/main/java/org/apache/shiro/realm/ldap/AbstractLdapRealm.java
+++ b/core/src/main/java/org/apache/shiro/realm/ldap/AbstractLdapRealm.java
@@ -176,6 +176,7 @@ public abstract class AbstractLdapRealm extends
AuthorizingRealm {
| M E T H O D S |
============================================*/
+ @Override
protected void onInit() {
super.onInit();
ensureContextFactory();
@@ -199,6 +200,7 @@ public abstract class AbstractLdapRealm extends
AuthorizingRealm {
}
+ @Override
protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken
token) throws AuthenticationException {
AuthenticationInfo info;
try {
@@ -214,6 +216,7 @@ public abstract class AbstractLdapRealm extends
AuthorizingRealm {
}
+ @Override
protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection
principals) {
AuthorizationInfo info;
try {
diff --git
a/core/src/main/java/org/apache/shiro/realm/ldap/DefaultLdapRealm.java
b/core/src/main/java/org/apache/shiro/realm/ldap/DefaultLdapRealm.java
index 4856b3d07..1f00aea84 100644
--- a/core/src/main/java/org/apache/shiro/realm/ldap/DefaultLdapRealm.java
+++ b/core/src/main/java/org/apache/shiro/realm/ldap/DefaultLdapRealm.java
@@ -287,6 +287,7 @@ public class DefaultLdapRealm extends AuthorizingRealm {
* @throws AuthenticationException if the authentication attempt fails or
if a
* {@link NamingException} occurs.
*/
+ @Override
protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken
token) throws AuthenticationException {
AuthenticationInfo info;
try {
@@ -305,6 +306,7 @@ public class DefaultLdapRealm extends AuthorizingRealm {
}
+ @Override
protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection
principals) {
AuthorizationInfo info;
try {
diff --git
a/core/src/main/java/org/apache/shiro/subject/support/DelegatingSubject.java
b/core/src/main/java/org/apache/shiro/subject/support/DelegatingSubject.java
index 8430b07d4..60494e0c6 100644
--- a/core/src/main/java/org/apache/shiro/subject/support/DelegatingSubject.java
+++ b/core/src/main/java/org/apache/shiro/subject/support/DelegatingSubject.java
@@ -488,7 +488,6 @@ public class DelegatingSubject implements Subject {
previousPrincipals = this.principals;
} else {
//always get the one behind the current:
- assert stack != null;
previousPrincipals = stack.get(1);
}
}
diff --git a/core/src/main/java/org/apache/shiro/util/MapContext.java
b/core/src/main/java/org/apache/shiro/util/MapContext.java
index 2cb97a8ba..7bf94bb64 100644
--- a/core/src/main/java/org/apache/shiro/util/MapContext.java
+++ b/core/src/main/java/org/apache/shiro/util/MapContext.java
@@ -124,6 +124,7 @@ public class MapContext implements Map<String, Object>,
Serializable {
return backingMap.remove(o);
}
+ @Override
public void putAll(Map<? extends String, ?> map) {
backingMap.putAll(map);
}
diff --git a/core/src/test/java/org/apache/shiro/SecurityUtilsUnwrapTest.java
b/core/src/test/java/org/apache/shiro/SecurityUtilsUnwrapTest.java
index 7ec695291..acc126a75 100644
--- a/core/src/test/java/org/apache/shiro/SecurityUtilsUnwrapTest.java
+++ b/core/src/test/java/org/apache/shiro/SecurityUtilsUnwrapTest.java
@@ -108,17 +108,17 @@ class SecurityUtilsUnwrapTest {
var dsm = unwrapSecurityManager(defaultSecurityManager,
DefaultSecurityManager.class);
assertThat(dsm).isEqualTo(defaultSecurityManager);
when(defaultSecurityManager.createSubject(subjectContext)).thenReturn(subject);
- Subject subject = dsm.createSubject(subjectContext);
- assertThat(subject).isEqualTo(this.subject);
+ Subject created = dsm.createSubject(subjectContext);
+ assertThat(created).isEqualTo(subject);
verify(defaultSecurityManager).createSubject(subjectContext);
- verifyNoMoreInteractions(defaultSecurityManager, this.subject,
subjectContext);
+ verifyNoMoreInteractions(defaultSecurityManager, subject,
subjectContext);
}
@Test
void invalidCast() {
SecurityManager wrapped = new Wrapped(defaultSecurityManager);
assertThatExceptionOfType(ClassCastException.class).isThrownBy(() -> {
- DefaultSecurityManager sm = (DefaultSecurityManager) wrapped;
+ DefaultSecurityManager.class.cast(wrapped);
});
}
diff --git
a/core/src/test/java/org/apache/shiro/authc/ConcurrentAccessExceptionTest.java
b/core/src/test/java/org/apache/shiro/authc/ConcurrentAccessExceptionTest.java
index 079785e07..ee1088f1b 100644
---
a/core/src/test/java/org/apache/shiro/authc/ConcurrentAccessExceptionTest.java
+++
b/core/src/test/java/org/apache/shiro/authc/ConcurrentAccessExceptionTest.java
@@ -30,6 +30,7 @@ import org.apache.shiro.ExceptionTest;
*/
public class ConcurrentAccessExceptionTest extends ExceptionTest {
+ @Override
protected Class<?> getExceptionClass() {
return ConcurrentAccessException.class;
}
diff --git
a/core/src/test/java/org/apache/shiro/authc/ExcessiveAttemptsExceptionTest.java
b/core/src/test/java/org/apache/shiro/authc/ExcessiveAttemptsExceptionTest.java
index f25f0373c..1331e62d1 100644
---
a/core/src/test/java/org/apache/shiro/authc/ExcessiveAttemptsExceptionTest.java
+++
b/core/src/test/java/org/apache/shiro/authc/ExcessiveAttemptsExceptionTest.java
@@ -30,6 +30,7 @@ import org.apache.shiro.ExceptionTest;
*/
public class ExcessiveAttemptsExceptionTest extends ExceptionTest {
+ @Override
protected Class<?> getExceptionClass() {
return ExcessiveAttemptsException.class;
}
diff --git
a/core/src/test/java/org/apache/shiro/authc/ExpiredCredentialsExceptionTest.java
b/core/src/test/java/org/apache/shiro/authc/ExpiredCredentialsExceptionTest.java
index eef1337e7..f21b8768d 100644
---
a/core/src/test/java/org/apache/shiro/authc/ExpiredCredentialsExceptionTest.java
+++
b/core/src/test/java/org/apache/shiro/authc/ExpiredCredentialsExceptionTest.java
@@ -30,6 +30,7 @@ import org.apache.shiro.ExceptionTest;
*/
public class ExpiredCredentialsExceptionTest extends ExceptionTest {
+ @Override
protected Class<?> getExceptionClass() {
return ExpiredCredentialsException.class;
}
diff --git
a/core/src/test/java/org/apache/shiro/authc/IncorrectCredentialsExceptionTest.java
b/core/src/test/java/org/apache/shiro/authc/IncorrectCredentialsExceptionTest.java
index 730223663..5e73ef4aa 100644
---
a/core/src/test/java/org/apache/shiro/authc/IncorrectCredentialsExceptionTest.java
+++
b/core/src/test/java/org/apache/shiro/authc/IncorrectCredentialsExceptionTest.java
@@ -30,6 +30,7 @@ import org.apache.shiro.ExceptionTest;
*/
public class IncorrectCredentialsExceptionTest extends ExceptionTest {
+ @Override
protected Class<?> getExceptionClass() {
return IncorrectCredentialsException.class;
}
diff --git
a/core/src/test/java/org/apache/shiro/authc/LockedAccountExceptionTest.java
b/core/src/test/java/org/apache/shiro/authc/LockedAccountExceptionTest.java
index a4c94c1f6..069dcb4d2 100644
--- a/core/src/test/java/org/apache/shiro/authc/LockedAccountExceptionTest.java
+++ b/core/src/test/java/org/apache/shiro/authc/LockedAccountExceptionTest.java
@@ -30,6 +30,7 @@ import org.apache.shiro.ExceptionTest;
*/
public class LockedAccountExceptionTest extends ExceptionTest {
+ @Override
protected Class<?> getExceptionClass() {
return LockedAccountException.class;
}
diff --git
a/core/src/test/java/org/apache/shiro/authc/UnknownAccountExceptionTest.java
b/core/src/test/java/org/apache/shiro/authc/UnknownAccountExceptionTest.java
index 93a5393f5..9f3efa78f 100644
--- a/core/src/test/java/org/apache/shiro/authc/UnknownAccountExceptionTest.java
+++ b/core/src/test/java/org/apache/shiro/authc/UnknownAccountExceptionTest.java
@@ -30,6 +30,7 @@ import org.apache.shiro.ExceptionTest;
*/
public class UnknownAccountExceptionTest extends ExceptionTest {
+ @Override
protected Class<?> getExceptionClass() {
return UnknownAccountException.class;
}
diff --git
a/core/src/test/java/org/apache/shiro/authc/pam/AllSuccessfulStrategyTest.java
b/core/src/test/java/org/apache/shiro/authc/pam/AllSuccessfulStrategyTest.java
index 95c192987..f7747ec6f 100644
---
a/core/src/test/java/org/apache/shiro/authc/pam/AllSuccessfulStrategyTest.java
+++
b/core/src/test/java/org/apache/shiro/authc/pam/AllSuccessfulStrategyTest.java
@@ -64,10 +64,12 @@ public class AllSuccessfulStrategyTest {
return false;
}
+ @Override
protected AuthenticationInfo
doGetAuthenticationInfo(AuthenticationToken token) throws
AuthenticationException {
return null;
}
+ @Override
protected AuthorizationInfo
doGetAuthorizationInfo(PrincipalCollection principal) {
return null;
}
diff --git
a/core/src/test/java/org/apache/shiro/authz/AuthorizationExceptionTest.java
b/core/src/test/java/org/apache/shiro/authz/AuthorizationExceptionTest.java
index 26855a07f..27cd4ed7a 100644
--- a/core/src/test/java/org/apache/shiro/authz/AuthorizationExceptionTest.java
+++ b/core/src/test/java/org/apache/shiro/authz/AuthorizationExceptionTest.java
@@ -26,6 +26,7 @@ import org.apache.shiro.ExceptionTest;
*/
public class AuthorizationExceptionTest extends ExceptionTest {
+ @Override
protected Class<?> getExceptionClass() {
return AuthorizationException.class;
}
diff --git
a/core/src/test/java/org/apache/shiro/authz/HostUnauthorizedExceptionTest.java
b/core/src/test/java/org/apache/shiro/authz/HostUnauthorizedExceptionTest.java
index edbeb242b..5b10a5d25 100644
---
a/core/src/test/java/org/apache/shiro/authz/HostUnauthorizedExceptionTest.java
+++
b/core/src/test/java/org/apache/shiro/authz/HostUnauthorizedExceptionTest.java
@@ -26,6 +26,7 @@ import org.apache.shiro.ExceptionTest;
*/
public class HostUnauthorizedExceptionTest extends ExceptionTest {
+ @Override
protected Class<?> getExceptionClass() {
return HostUnauthorizedException.class;
}
diff --git
a/core/src/test/java/org/apache/shiro/authz/ModularRealmAuthorizerTest.java
b/core/src/test/java/org/apache/shiro/authz/ModularRealmAuthorizerTest.java
index 4c00b987a..ba8659024 100644
--- a/core/src/test/java/org/apache/shiro/authz/ModularRealmAuthorizerTest.java
+++ b/core/src/test/java/org/apache/shiro/authz/ModularRealmAuthorizerTest.java
@@ -87,7 +87,7 @@ public class ModularRealmAuthorizerTest {
}
- class MockAuthorizingRealm extends AuthorizingRealm {
+ static class MockAuthorizingRealm extends AuthorizingRealm {
@Override
protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection
principals) {
diff --git
a/core/src/test/java/org/apache/shiro/authz/UnauthenticatedExceptionTest.java
b/core/src/test/java/org/apache/shiro/authz/UnauthenticatedExceptionTest.java
index ef6954d6c..659ded566 100644
---
a/core/src/test/java/org/apache/shiro/authz/UnauthenticatedExceptionTest.java
+++
b/core/src/test/java/org/apache/shiro/authz/UnauthenticatedExceptionTest.java
@@ -26,6 +26,7 @@ import org.apache.shiro.ExceptionTest;
*/
public class UnauthenticatedExceptionTest extends ExceptionTest {
+ @Override
protected Class<?> getExceptionClass() {
return UnauthenticatedException.class;
}
diff --git
a/core/src/test/java/org/apache/shiro/authz/UnauthorizedExceptionTest.java
b/core/src/test/java/org/apache/shiro/authz/UnauthorizedExceptionTest.java
index a15959295..ee0d8cb48 100644
--- a/core/src/test/java/org/apache/shiro/authz/UnauthorizedExceptionTest.java
+++ b/core/src/test/java/org/apache/shiro/authz/UnauthorizedExceptionTest.java
@@ -26,6 +26,7 @@ import org.apache.shiro.ExceptionTest;
*/
public class UnauthorizedExceptionTest extends ExceptionTest {
+ @Override
protected Class<?> getExceptionClass() {
return UnauthorizedException.class;
}
diff --git
a/core/src/test/java/org/apache/shiro/config/HashMapCacheManager.java
b/core/src/test/java/org/apache/shiro/config/HashMapCacheManager.java
index ce5f8dd7a..1f2073ad6 100644
--- a/core/src/test/java/org/apache/shiro/config/HashMapCacheManager.java
+++ b/core/src/test/java/org/apache/shiro/config/HashMapCacheManager.java
@@ -41,7 +41,7 @@ public class HashMapCacheManager<K, V> extends
AbstractCacheManager {
//This class is not strictly necessary - it exists to verify a test case
only.
- public class HashMapCache<K, V> extends MapCache<K, V> {
+ public static class HashMapCache<K, V> extends MapCache<K, V> {
public HashMapCache(String name) {
super(name, new HashMap<K, V>());
}
diff --git
a/core/src/test/java/org/apache/shiro/lang/io/SerializationExceptionTest.java
b/core/src/test/java/org/apache/shiro/lang/io/SerializationExceptionTest.java
index c43ddc3f4..b95f78f73 100644
---
a/core/src/test/java/org/apache/shiro/lang/io/SerializationExceptionTest.java
+++
b/core/src/test/java/org/apache/shiro/lang/io/SerializationExceptionTest.java
@@ -26,6 +26,7 @@ import org.apache.shiro.ExceptionTest;
*/
public class SerializationExceptionTest extends ExceptionTest {
+ @Override
protected Class<?> getExceptionClass() {
return SerializationException.class;
}
diff --git
a/core/src/test/java/org/apache/shiro/realm/activedirectory/ActiveDirectoryRealmTest.java
b/core/src/test/java/org/apache/shiro/realm/activedirectory/ActiveDirectoryRealmTest.java
index 3c03c864a..cbd17aa52 100644
---
a/core/src/test/java/org/apache/shiro/realm/activedirectory/ActiveDirectoryRealmTest.java
+++
b/core/src/test/java/org/apache/shiro/realm/activedirectory/ActiveDirectoryRealmTest.java
@@ -283,6 +283,7 @@ public class ActiveDirectoryRealmTest {
setCredentialsMatcher(credentialsMatcher);
}
+ @Override
protected AuthenticationInfo
doGetAuthenticationInfo(AuthenticationToken token) throws
AuthenticationException {
SimpleAccount account = (SimpleAccount)
super.doGetAuthenticationInfo(token);
@@ -297,6 +298,7 @@ public class ActiveDirectoryRealmTest {
}
+ @Override
protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection
principals) {
Set<String> roles = new HashSet<>();
roles.add(ROLE);
diff --git a/core/src/test/java/org/apache/shiro/realm/jdbc/JDBCRealmTest.java
b/core/src/test/java/org/apache/shiro/realm/jdbc/JDBCRealmTest.java
index ff4c86c6d..c0f899115 100644
--- a/core/src/test/java/org/apache/shiro/realm/jdbc/JDBCRealmTest.java
+++ b/core/src/test/java/org/apache/shiro/realm/jdbc/JDBCRealmTest.java
@@ -142,9 +142,10 @@ public class JDBCRealmTest {
JdbcRealm realm = realmMap.get(testMethodName);
createDefaultSchema(testMethodName, false);
realm.setSaltStyle(JdbcRealm.SaltStyle.NO_SALT);
- Connection conn = dsMap.get(testMethodName).getConnection();
- Statement sql = conn.createStatement();
- sql.executeUpdate("insert into users values ('" + username + "',
'dupe')");
+ try (Connection conn = dsMap.get(testMethodName).getConnection();
+ Statement sql = conn.createStatement()) {
+ sql.executeUpdate("insert into users values ('" + username + "',
'dupe')");
+ }
Subject.Builder builder = new Subject.Builder(securityManager);
Subject currentUser = builder.buildSubject();
@@ -326,9 +327,9 @@ public class JDBCRealmTest {
Statement sql = null;
DataSource ds = dsMap.get(testName);
try {
- Connection c = ds.getConnection();
- Statement s = c.createStatement();
- s.executeUpdate("SHUTDOWN");
+ conn = ds.getConnection();
+ sql = conn.createStatement();
+ sql.executeUpdate("SHUTDOWN");
} catch (SQLException ex) {
// ignore
} finally {
diff --git a/core/src/test/java/org/apache/shiro/realm/text/IniRealmTest.java
b/core/src/test/java/org/apache/shiro/realm/text/IniRealmTest.java
index 970b1ca51..b46aee34b 100644
--- a/core/src/test/java/org/apache/shiro/realm/text/IniRealmTest.java
+++ b/core/src/test/java/org/apache/shiro/realm/text/IniRealmTest.java
@@ -35,7 +35,7 @@ public class IniRealmTest {
@Test
void testNullIni() {
- IniRealm realm = new IniRealm((Ini) null);
+ new IniRealm((Ini) null);
}
@Test
diff --git
a/core/src/test/java/org/apache/shiro/realm/text/TextConfigurationRealmTest.java
b/core/src/test/java/org/apache/shiro/realm/text/TextConfigurationRealmTest.java
index 396710e9b..a73d66674 100644
---
a/core/src/test/java/org/apache/shiro/realm/text/TextConfigurationRealmTest.java
+++
b/core/src/test/java/org/apache/shiro/realm/text/TextConfigurationRealmTest.java
@@ -269,7 +269,7 @@ public class TextConfigurationRealmTest {
/*
* A Class that captures a thread's assertion error.
*/
- private class TestThread implements Runnable {
+ private static class TestThread implements Runnable {
private Runnable test;
private volatile AssertionError ae;
diff --git
a/core/src/test/java/org/apache/shiro/session/mgt/DefaultSessionManagerTest.java
b/core/src/test/java/org/apache/shiro/session/mgt/DefaultSessionManagerTest.java
index ca305913d..7122337d6 100644
---
a/core/src/test/java/org/apache/shiro/session/mgt/DefaultSessionManagerTest.java
+++
b/core/src/test/java/org/apache/shiro/session/mgt/DefaultSessionManagerTest.java
@@ -229,7 +229,7 @@ public class DefaultSessionManagerTest {
// starting a session will trigger the starting of the validator
try {
- Session session = sessionManager.start(null);
+ sessionManager.start(null);
// now sessionValidationScheduler should be enabled
assertThat(sessionValidationScheduler.isEnabled()).as("sessionValidationScheduler
was not enabled").isTrue();
diff --git
a/core/src/test/java/org/apache/shiro/session/mgt/DelegatingSessionTest.java
b/core/src/test/java/org/apache/shiro/session/mgt/DelegatingSessionTest.java
index 855b7b803..cb4b7d524 100644
--- a/core/src/test/java/org/apache/shiro/session/mgt/DelegatingSessionTest.java
+++ b/core/src/test/java/org/apache/shiro/session/mgt/DelegatingSessionTest.java
@@ -25,7 +25,6 @@ import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.parallel.Isolated;
-import java.io.Serializable;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.fail;
@@ -63,7 +62,6 @@ public class DelegatingSessionTest {
@SuppressWarnings("checkstyle:MagicNumber")
@Test
void testTimeout() {
- Serializable origId = session.getId();
assertThat(session.getTimeout()).isEqualTo(AbstractSessionManager.DEFAULT_GLOBAL_SESSION_TIMEOUT);
session.touch();
session.setTimeout(100);
diff --git
a/core/src/test/java/org/apache/shiro/subject/SimplePrincipalCollectionTest.java
b/core/src/test/java/org/apache/shiro/subject/SimplePrincipalCollectionTest.java
index a6c590e8f..04eaa7270 100644
---
a/core/src/test/java/org/apache/shiro/subject/SimplePrincipalCollectionTest.java
+++
b/core/src/test/java/org/apache/shiro/subject/SimplePrincipalCollectionTest.java
@@ -35,9 +35,6 @@ public class SimplePrincipalCollectionTest {
principalCollection.addPrincipal("johnny", "realm1");
principalCollection.addPrincipal("Alberto", "realm2");
- PrincipalCollection underTest = principalCollection.build();
-
-// underTest.
- LOG.trace("{}", principalCollection);
+ LOG.trace("{}", principalCollection.build());
}
}
diff --git
a/integration-tests/jakarta-ee/src/test/java/org/apache/shiro/testing/jakarta/ee/ShiroBeansIT.java
b/integration-tests/jakarta-ee/src/test/java/org/apache/shiro/testing/jakarta/ee/ShiroBeansIT.java
index 54a3e22eb..8c068e919 100644
---
a/integration-tests/jakarta-ee/src/test/java/org/apache/shiro/testing/jakarta/ee/ShiroBeansIT.java
+++
b/integration-tests/jakarta-ee/src/test/java/org/apache/shiro/testing/jakarta/ee/ShiroBeansIT.java
@@ -86,9 +86,6 @@ public class ShiroBeansIT {
@FindBy(id = "login")
private WebElement login;
- @FindBy(id = "usingWebSessions")
- private WebElement usingWebSessions;
-
@BeforeEach
void deleteAllCookies() {
webDriver.manage().deleteAllCookies();
@@ -149,7 +146,6 @@ public class ShiroBeansIT {
login();
webDriver.get(baseURL + "shiro/unprotected/manybeans");
- boolean webSessions = Boolean.parseBoolean(usingWebSessions.getText());
guardAjax(elem).click();
webDriver.navigate().refresh();
guardAjax(elem).click();
diff --git
a/lang/src/main/java/org/apache/shiro/lang/io/ClassResolvingObjectInputStream.java
b/lang/src/main/java/org/apache/shiro/lang/io/ClassResolvingObjectInputStream.java
index 538f92b6e..f40747784 100644
---
a/lang/src/main/java/org/apache/shiro/lang/io/ClassResolvingObjectInputStream.java
+++
b/lang/src/main/java/org/apache/shiro/lang/io/ClassResolvingObjectInputStream.java
@@ -52,7 +52,6 @@ public class ClassResolvingObjectInputStream extends
ObjectInputStream {
*
* @param osc the ObjectStreamClass to resolve the class name.
* @return the discovered class
- * @throws IOException never - declaration retained for
subclass consistency
* @throws ClassNotFoundException if the class could not be found in any
known ClassLoader
*/
@Override
diff --git a/pom.xml b/pom.xml
index eadad5752..b815853d7 100644
--- a/pom.xml
+++ b/pom.xml
@@ -133,6 +133,10 @@
<hibernate.version>7.4.13.Final</hibernate.version>
<taglibs.standard.version>1.2.5</taglibs.standard.version>
<lombok.version>1.18.48</lombok.version>
+ <!-- modules using Lombok set delombok.phase=prepare-package and
javadoc.sourcepath=${javadoc.delombok.sourcepath} -->
+ <delombok.phase>none</delombok.phase>
+
<javadoc.sourcepath>${project.build.sourceDirectory}</javadoc.sourcepath>
+
<javadoc.delombok.sourcepath>${project.build.directory}/generated-sources/delombok</javadoc.delombok.sourcepath>
<!-- checkstyle -->
<checkstyle.configLocation>${root.dir}/src/checkstyle.xml</checkstyle.configLocation>
@@ -313,9 +317,34 @@
<link>https://docs.spring.io/spring-boot/${spring-boot.version}/api/java/</link>
<link>https://junit.org/junit5/docs/${junit.version}/api/</link>
<link>https://www.quartz-scheduler.org/api/${quartz.docs.version}/</link>
+ <link>https://projectlombok.org/api/</link>
</links>
</configuration>
</plugin>
+ <plugin>
+ <groupId>org.projectlombok</groupId>
+ <artifactId>lombok-maven-plugin</artifactId>
+ <version>1.18.20.0</version>
+ <configuration>
+
<sourceDirectory>${project.build.sourceDirectory}</sourceDirectory>
+ <addOutputDirectory>false</addOutputDirectory>
+ </configuration>
+ <executions>
+ <execution>
+ <phase>${delombok.phase}</phase>
+ <goals>
+ <goal>delombok</goal>
+ </goals>
+ </execution>
+ </executions>
+ <dependencies>
+ <dependency>
+ <groupId>org.projectlombok</groupId>
+ <artifactId>lombok</artifactId>
+ <version>${lombok.version}</version>
+ </dependency>
+ </dependencies>
+ </plugin>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
@@ -719,6 +748,10 @@
</archive>
</configuration>
</plugin>
+ <plugin>
+ <groupId>org.projectlombok</groupId>
+ <artifactId>lombok-maven-plugin</artifactId>
+ </plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
@@ -1511,7 +1544,7 @@
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<configuration>
-
<sourcepath>${project.build.sourceDirectory}</sourcepath>
+ <sourcepath>${javadoc.sourcepath}</sourcepath>
<doclint>none</doclint>
<additionalJOptions>
<additionalJOption>--allow-script-in-comments</additionalJOption>
diff --git a/samples/quickstart-guice/src/main/java/QuickstartShiroModule.java
b/samples/quickstart-guice/src/main/java/QuickstartShiroModule.java
index 0b32d5b4b..8662e178c 100644
--- a/samples/quickstart-guice/src/main/java/QuickstartShiroModule.java
+++ b/samples/quickstart-guice/src/main/java/QuickstartShiroModule.java
@@ -23,6 +23,7 @@ import org.apache.shiro.guice.ShiroModule;
import org.apache.shiro.realm.text.IniRealm;
public class QuickstartShiroModule extends ShiroModule {
+ @Override
protected void configureShiro() {
try {
bindRealm().toConstructor(IniRealm.class.getConstructor(Ini.class));
diff --git
a/samples/spring-hibernate/src/main/java/org/apache/shiro/samples/sprhib/security/SampleRealm.java
b/samples/spring-hibernate/src/main/java/org/apache/shiro/samples/sprhib/security/SampleRealm.java
index 2852921f4..e0b14ef65 100644
---
a/samples/spring-hibernate/src/main/java/org/apache/shiro/samples/sprhib/security/SampleRealm.java
+++
b/samples/spring-hibernate/src/main/java/org/apache/shiro/samples/sprhib/security/SampleRealm.java
@@ -61,6 +61,7 @@ public class SampleRealm extends AuthorizingRealm {
this.userDAO = userDAO;
}
+ @Override
protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken
authcToken) throws AuthenticationException {
UsernamePasswordToken token = (UsernamePasswordToken) authcToken;
User user = userDAO.findUser(token.getUsername());
@@ -72,6 +73,7 @@ public class SampleRealm extends AuthorizingRealm {
}
+ @Override
protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection
principals) {
Long userId = (Long) principals.fromRealm(getName()).iterator().next();
User user = userDAO.getUser(userId);
diff --git
a/samples/spring-mvc/src/main/java/org/apache/shiro/samples/spring/web/JnlpController.java
b/samples/spring-mvc/src/main/java/org/apache/shiro/samples/spring/web/JnlpController.java
index 06660da8c..ab841af23 100644
---
a/samples/spring-mvc/src/main/java/org/apache/shiro/samples/spring/web/JnlpController.java
+++
b/samples/spring-mvc/src/main/java/org/apache/shiro/samples/spring/web/JnlpController.java
@@ -69,6 +69,7 @@ public class JnlpController extends AbstractController {
@SuppressWarnings("checkstyle:MagicNumber")
@GetMapping
+ @Override
protected ModelAndView handleRequestInternal(HttpServletRequest request,
HttpServletResponse response) throws Exception {
Subject subject = SecurityUtils.getSubject();
diff --git
a/samples/spring-mvc/src/main/java/org/apache/shiro/samples/spring/web/LogoutController.java
b/samples/spring-mvc/src/main/java/org/apache/shiro/samples/spring/web/LogoutController.java
index 54b9849fe..5f34006fe 100644
---
a/samples/spring-mvc/src/main/java/org/apache/shiro/samples/spring/web/LogoutController.java
+++
b/samples/spring-mvc/src/main/java/org/apache/shiro/samples/spring/web/LogoutController.java
@@ -39,6 +39,7 @@ import jakarta.servlet.http.HttpServletResponse;
public class LogoutController extends AbstractController {
@GetMapping
+ @Override
protected ModelAndView handleRequestInternal(HttpServletRequest request,
HttpServletResponse response) throws Exception {
SecurityUtils.getSubject().logout();
return new ModelAndView("redirect:login");
diff --git a/support/cdi/pom.xml b/support/cdi/pom.xml
index fe1eaf89b..56a0c2b22 100644
--- a/support/cdi/pom.xml
+++ b/support/cdi/pom.xml
@@ -32,6 +32,8 @@
</parent>
<properties>
<module.name>cdi</module.name>
+ <delombok.phase>prepare-package</delombok.phase>
+ <javadoc.sourcepath>${javadoc.delombok.sourcepath}</javadoc.sourcepath>
</properties>
<dependencies>
diff --git
a/support/cdi/src/main/java/org/apache/shiro/cdi/AnnotatedTypeWrapper.java
b/support/cdi/src/main/java/org/apache/shiro/cdi/AnnotatedTypeWrapper.java
index 56cab505d..24565a77f 100644
--- a/support/cdi/src/main/java/org/apache/shiro/cdi/AnnotatedTypeWrapper.java
+++ b/support/cdi/src/main/java/org/apache/shiro/cdi/AnnotatedTypeWrapper.java
@@ -33,7 +33,7 @@ public class AnnotatedTypeWrapper<T> implements
AnnotatedType<T> {
}
private final @Delegate(types = AT.class) AnnotatedType<T> wrapped;
- private final @Getter Set<Annotation> annotations;
+ private final @Getter(onMethod_ = @Override) Set<Annotation> annotations;
public AnnotatedTypeWrapper(AnnotatedType<T> wrapped, Annotation...
additionalAnnotations) {
diff --git
a/support/cdi/src/test/java/org/apache/shiro/cdi/AnnotatedTypeWrapperTest.java
b/support/cdi/src/test/java/org/apache/shiro/cdi/AnnotatedTypeWrapperTest.java
index a5df4210f..6057c8151 100644
---
a/support/cdi/src/test/java/org/apache/shiro/cdi/AnnotatedTypeWrapperTest.java
+++
b/support/cdi/src/test/java/org/apache/shiro/cdi/AnnotatedTypeWrapperTest.java
@@ -50,15 +50,15 @@ class AnnotatedTypeWrapperTest {
@RequiresAuthentication
@RequiresGuest
@RequiresPermissions("hello")
- private final class Annotated {
+ private static final class Annotated {
}
@ShiroSecureAnnotation
- private final class ShiroSecureAnnotated {
+ private static final class ShiroSecureAnnotated {
}
@Stateless
- private final class StatelessAnnotated {
+ private static final class StatelessAnnotated {
}
@SessionScoped
diff --git a/support/cdi/src/test/java/org/apache/shiro/cdi/AopHelperTest.java
b/support/cdi/src/test/java/org/apache/shiro/cdi/AopHelperTest.java
index baed4c7f5..4c7c88831 100644
--- a/support/cdi/src/test/java/org/apache/shiro/cdi/AopHelperTest.java
+++ b/support/cdi/src/test/java/org/apache/shiro/cdi/AopHelperTest.java
@@ -47,7 +47,7 @@ class AopHelperTest {
}
@ShiroSecureAnnotation
- public class NotAnnotated {
+ public static class NotAnnotated {
@NotNull
public void method() {
}
diff --git
a/support/guice/src/main/java/org/apache/shiro/guice/DestroyableInjectionListener.java
b/support/guice/src/main/java/org/apache/shiro/guice/DestroyableInjectionListener.java
index 4d425bb37..ebbab697f 100644
---
a/support/guice/src/main/java/org/apache/shiro/guice/DestroyableInjectionListener.java
+++
b/support/guice/src/main/java/org/apache/shiro/guice/DestroyableInjectionListener.java
@@ -39,6 +39,7 @@ class DestroyableInjectionListener<I extends Destroyable>
implements InjectionLi
this.registry = registry;
}
+ @Override
public void afterInjection(Destroyable injectee) {
registry.add(injectee);
}
diff --git
a/support/guice/src/main/java/org/apache/shiro/guice/InitializableInjectionListener.java
b/support/guice/src/main/java/org/apache/shiro/guice/InitializableInjectionListener.java
index efa7c0f99..d44cd513d 100644
---
a/support/guice/src/main/java/org/apache/shiro/guice/InitializableInjectionListener.java
+++
b/support/guice/src/main/java/org/apache/shiro/guice/InitializableInjectionListener.java
@@ -33,6 +33,7 @@ class InitializableInjectionListener<I extends Initializable>
implements Injecti
@SuppressWarnings("rawtypes")
public static final Matcher<TypeLiteral> MATCHER =
ShiroMatchers.typeLiteral(Matchers.subclassesOf(Initializable.class));
+ @Override
public void afterInjection(Initializable injectee) {
injectee.init();
}
diff --git
a/support/guice/src/main/java/org/apache/shiro/guice/ShiroModule.java
b/support/guice/src/main/java/org/apache/shiro/guice/ShiroModule.java
index 9095f64d5..9f388c9c0 100644
--- a/support/guice/src/main/java/org/apache/shiro/guice/ShiroModule.java
+++ b/support/guice/src/main/java/org/apache/shiro/guice/ShiroModule.java
@@ -66,6 +66,7 @@ public abstract class ShiroModule extends PrivateModule
implements Destroyable {
private final Set<Destroyable> destroyables =
Collections.newSetFromMap(new WeakHashMap<Destroyable, Boolean>());
+ @Override
public void configure() {
// setup security manager
bindSecurityManager(bind(SecurityManager.class));
@@ -207,7 +208,7 @@ public abstract class ShiroModule extends PrivateModule
implements Destroyable {
this.destroyables.add(destroyable);
}
- private final class SubscribedEventTypeListener implements TypeListener {
+ private static final class SubscribedEventTypeListener implements
TypeListener {
@Override
public <I> void hear(TypeLiteral<I> typeLiteral, TypeEncounter<I>
typeEncounter) {
@@ -225,7 +226,7 @@ public abstract class ShiroModule extends PrivateModule
implements Destroyable {
}
}
- private final class EventBusAwareTypeListener implements TypeListener {
+ private static final class EventBusAwareTypeListener implements
TypeListener {
@Override
public <I> void hear(TypeLiteral<I> typeLiteral, TypeEncounter<I>
typeEncounter) {
diff --git
a/support/guice/src/test/java/org/apache/shiro/guice/GuiceEnvironmentTest.java
b/support/guice/src/test/java/org/apache/shiro/guice/GuiceEnvironmentTest.java
index e48431269..364b2d846 100644
---
a/support/guice/src/test/java/org/apache/shiro/guice/GuiceEnvironmentTest.java
+++
b/support/guice/src/test/java/org/apache/shiro/guice/GuiceEnvironmentTest.java
@@ -38,7 +38,7 @@ public class GuiceEnvironmentTest {
@Test
void ensureInjectable() {
try {
- InjectionPoint ip =
InjectionPoint.forConstructorOf(GuiceEnvironment.class);
+ InjectionPoint.forConstructorOf(GuiceEnvironment.class);
} catch (Exception e) {
fail("Could not create constructor injection point.");
}
diff --git
a/support/guice/src/test/java/org/apache/shiro/guice/aop/ShiroAopModuleTest.java
b/support/guice/src/test/java/org/apache/shiro/guice/aop/ShiroAopModuleTest.java
index 290e5b2be..2b166cd01 100644
---
a/support/guice/src/test/java/org/apache/shiro/guice/aop/ShiroAopModuleTest.java
+++
b/support/guice/src/test/java/org/apache/shiro/guice/aop/ShiroAopModuleTest.java
@@ -107,6 +107,8 @@ public class ShiroAopModuleTest {
}
}
}
+ assertThat(calledDefault).isTrue();
+ assertThat(calledCustom).isTrue();
}
@Test
diff --git a/support/jakarta-ee/pom.xml b/support/jakarta-ee/pom.xml
index 886f99810..93c5ddf2c 100644
--- a/support/jakarta-ee/pom.xml
+++ b/support/jakarta-ee/pom.xml
@@ -33,6 +33,8 @@
<properties>
<module.name>jakarta.ee</module.name>
+ <delombok.phase>prepare-package</delombok.phase>
+ <javadoc.sourcepath>${javadoc.delombok.sourcepath}</javadoc.sourcepath>
</properties>
<dependencies>
diff --git
a/support/jakarta-ee/src/main/java/org/apache/shiro/ee/filters/FormResubmitRequest.java
b/support/jakarta-ee/src/main/java/org/apache/shiro/ee/filters/FormResubmitRequest.java
index e65c25f2a..16fca2903 100644
---
a/support/jakarta-ee/src/main/java/org/apache/shiro/ee/filters/FormResubmitRequest.java
+++
b/support/jakarta-ee/src/main/java/org/apache/shiro/ee/filters/FormResubmitRequest.java
@@ -39,7 +39,7 @@ final class FormResubmitRequest extends
HttpServletRequestWrapper {
"org.apache.myfaces.", "org.omnifaces.",
"jakarta.servlet.forward.", "jakarta.servlet.include.",
FormResubmitSupport.FORM_IS_RESUBMITTED);
private static final String FACES_REQUEST_HEADER = "Faces-Request";
- private final @Getter String method;
+ private final @Getter(onMethod_ = @Override) String method;
private final AjaxReplay ajaxReplay;
private final @Delegate(types = Parameters.class) MutableRequest
parameters;
private final Map<String, Object> attributes = new HashMap<>();
diff --git
a/support/jakarta-ee/src/main/java/org/apache/shiro/ee/filters/FormResubmitResponse.java
b/support/jakarta-ee/src/main/java/org/apache/shiro/ee/filters/FormResubmitResponse.java
index bfbff58e6..c73ad3615 100644
---
a/support/jakarta-ee/src/main/java/org/apache/shiro/ee/filters/FormResubmitResponse.java
+++
b/support/jakarta-ee/src/main/java/org/apache/shiro/ee/filters/FormResubmitResponse.java
@@ -42,7 +42,7 @@ import org.omnifaces.servlet.BufferedHttpServletResponse;
final class FormResubmitResponse extends BufferedHttpServletResponse {
private final List<Consumer<HttpServletResponse>> deferred = new
ArrayList<>();
private final @Delegate(types = Captured.class) HttpServletResponse
recorder;
- private @Getter @Setter int status = SC_OK;
+ private @Getter(onMethod_ = @Override) @Setter(onMethod_ = @Override) int
status = SC_OK;
private ClosableOutputStream outputStream;
/**
diff --git
a/support/spring-boot/spring-boot-starter/src/main/java/org/apache/shiro/spring/config/web/autoconfigure/ShiroWebFilterConfiguration.java
b/support/spring-boot/spring-boot-starter/src/main/java/org/apache/shiro/spring/config/web/autoconfigure/ShiroWebFilterConfiguration.java
index a48a43f8d..a78cbf09c 100644
---
a/support/spring-boot/spring-boot-starter/src/main/java/org/apache/shiro/spring/config/web/autoconfigure/ShiroWebFilterConfiguration.java
+++
b/support/spring-boot/spring-boot-starter/src/main/java/org/apache/shiro/spring/config/web/autoconfigure/ShiroWebFilterConfiguration.java
@@ -80,6 +80,7 @@ public class ShiroWebFilterConfiguration extends
AbstractShiroWebFilterConfigura
@Bean(name = "globalFilters")
@ConditionalOnMissingBean
+ @Override
protected List<String> globalFilters() {
return super.globalFilters();
}
diff --git
a/support/spring/src/test/java/org/apache/shiro/spring/testconfig/EventBusConsumersTestConfiguration.java
b/support/spring/src/test/java/org/apache/shiro/spring/testconfig/EventBusConsumersTestConfiguration.java
index 5f9ce9797..53151d4bf 100644
---
a/support/spring/src/test/java/org/apache/shiro/spring/testconfig/EventBusConsumersTestConfiguration.java
+++
b/support/spring/src/test/java/org/apache/shiro/spring/testconfig/EventBusConsumersTestConfiguration.java
@@ -38,7 +38,7 @@ public class EventBusConsumersTestConfiguration {
return new EventSubscriber();
}
- public class EventBusAwareObject implements EventBusAware {
+ public static class EventBusAwareObject implements EventBusAware {
private EventBus eventBus;
@@ -52,7 +52,7 @@ public class EventBusConsumersTestConfiguration {
}
}
- public class EventSubscriber {
+ public static class EventSubscriber {
@Subscribe
public void listen(Object object) {
diff --git
a/tools/hasher/src/main/java/org/apache/shiro/tools/hasher/Hasher.java
b/tools/hasher/src/main/java/org/apache/shiro/tools/hasher/Hasher.java
index d19fe5f0d..8d07ff8ff 100644
--- a/tools/hasher/src/main/java/org/apache/shiro/tools/hasher/Hasher.java
+++ b/tools/hasher/src/main/java/org/apache/shiro/tools/hasher/Hasher.java
@@ -196,7 +196,7 @@ public final class Hasher {
generateSalt = true;
generatedSaltSize = getRequiredPositiveInt(line,
SALT_GEN_SIZE);
if (generatedSaltSize % 8 != 0) {
- throw new IllegalArgumentException("Generated salt size
must be"
+ throw new IllegalArgumentException("Generated salt size
must be "
+ "a multiple of 8 (e.g. 128, 192, 256, 512,
etc.).");
}
}
@@ -222,8 +222,6 @@ public final class Hasher {
if (remainingArgs == null || remainingArgs.length != 1) {
printHelpAndExit(options, null, debug, -1);
}
-
- assert remainingArgs != null;
sourceValue = toString(remainingArgs);
if (resource) {
diff --git
a/web/src/main/java/org/apache/shiro/web/config/IniFilterChainResolverFactory.java
b/web/src/main/java/org/apache/shiro/web/config/IniFilterChainResolverFactory.java
index f5159eab2..de028b715 100644
---
a/web/src/main/java/org/apache/shiro/web/config/IniFilterChainResolverFactory.java
+++
b/web/src/main/java/org/apache/shiro/web/config/IniFilterChainResolverFactory.java
@@ -109,6 +109,7 @@ public class IniFilterChainResolverFactory extends
IniFactorySupport<FilterChain
this.caseInsensitive = caseInsensitive;
}
+ @Override
protected FilterChainResolver createInstance(Ini ini) {
FilterChainResolver filterChainResolver = createDefaultInstance();
if (filterChainResolver instanceof PathMatchingFilterChainResolver
resolver) {
@@ -118,6 +119,7 @@ public class IniFilterChainResolverFactory extends
IniFactorySupport<FilterChain
return filterChainResolver;
}
+ @Override
protected FilterChainResolver createDefaultInstance() {
FilterConfig filterConfig = getFilterConfig();
if (filterConfig != null) {
diff --git
a/web/src/main/java/org/apache/shiro/web/filter/PathMatchingFilter.java
b/web/src/main/java/org/apache/shiro/web/filter/PathMatchingFilter.java
index df6474517..c332a9c2d 100644
--- a/web/src/main/java/org/apache/shiro/web/filter/PathMatchingFilter.java
+++ b/web/src/main/java/org/apache/shiro/web/filter/PathMatchingFilter.java
@@ -189,6 +189,7 @@ public abstract class PathMatchingFilter extends
AdviceFilter implements PathCon
* handled the request explicitly.
* @throws Exception if an error occurs
*/
+ @Override
protected boolean preHandle(ServletRequest request, ServletResponse
response) throws Exception {
if (this.appliedPaths == null || this.appliedPaths.isEmpty()) {
diff --git
a/web/src/main/java/org/apache/shiro/web/filter/authc/AuthenticationFilter.java
b/web/src/main/java/org/apache/shiro/web/filter/authc/AuthenticationFilter.java
index 20a79fc2f..490ae9c45 100644
---
a/web/src/main/java/org/apache/shiro/web/filter/authc/AuthenticationFilter.java
+++
b/web/src/main/java/org/apache/shiro/web/filter/authc/AuthenticationFilter.java
@@ -75,6 +75,7 @@ public abstract class AuthenticationFilter extends
AccessControlFilter {
*
* @return true if the subject is authenticated; false if the subject is
unauthenticated
*/
+ @Override
protected boolean isAccessAllowed(ServletRequest request, ServletResponse
response, Object mappedValue) {
Subject subject = getSubject(request, response);
return subject.isAuthenticated() && subject.getPrincipal() != null;
diff --git
a/web/src/main/java/org/apache/shiro/web/filter/authc/FormAuthenticationFilter.java
b/web/src/main/java/org/apache/shiro/web/filter/authc/FormAuthenticationFilter.java
index 8f98b428f..8fb0e3fe6 100644
---
a/web/src/main/java/org/apache/shiro/web/filter/authc/FormAuthenticationFilter.java
+++
b/web/src/main/java/org/apache/shiro/web/filter/authc/FormAuthenticationFilter.java
@@ -156,6 +156,7 @@ public class FormAuthenticationFilter extends
AuthenticatingFilter {
this.failureKeyAttribute = failureKeyAttribute;
}
+ @Override
protected boolean onAccessDenied(ServletRequest request, ServletResponse
response) throws Exception {
if (isLoginRequest(request, response)) {
if (isLoginSubmission(request, response)) {
diff --git
a/web/src/main/java/org/apache/shiro/web/filter/authc/HttpAuthenticationFilter.java
b/web/src/main/java/org/apache/shiro/web/filter/authc/HttpAuthenticationFilter.java
index 503a82dfa..8fbe068a5 100644
---
a/web/src/main/java/org/apache/shiro/web/filter/authc/HttpAuthenticationFilter.java
+++
b/web/src/main/java/org/apache/shiro/web/filter/authc/HttpAuthenticationFilter.java
@@ -243,6 +243,7 @@ abstract class HttpAuthenticationFilter extends
AuthenticatingFilter {
* @param response outgoing ServletResponse
* @return true if the request should be processed; false if the request
should not continue to be processed
*/
+ @Override
protected boolean onAccessDenied(ServletRequest request, ServletResponse
response) throws Exception {
//false by default or we wouldn't be in this method
boolean loggedIn = false;
diff --git
a/web/src/main/java/org/apache/shiro/web/filter/authc/PassThruAuthenticationFilter.java
b/web/src/main/java/org/apache/shiro/web/filter/authc/PassThruAuthenticationFilter.java
index 520b6c661..4f0ddb57e 100644
---
a/web/src/main/java/org/apache/shiro/web/filter/authc/PassThruAuthenticationFilter.java
+++
b/web/src/main/java/org/apache/shiro/web/filter/authc/PassThruAuthenticationFilter.java
@@ -48,6 +48,7 @@ public class PassThruAuthenticationFilter extends
AuthenticationFilter {
//TODO - complete JavaDoc
+ @Override
protected boolean onAccessDenied(ServletRequest request, ServletResponse
response) throws Exception {
if (isLoginRequest(request, response)) {
return true;
diff --git
a/web/src/main/java/org/apache/shiro/web/filter/authc/UserFilter.java
b/web/src/main/java/org/apache/shiro/web/filter/authc/UserFilter.java
index 40cc179cd..450213759 100644
--- a/web/src/main/java/org/apache/shiro/web/filter/authc/UserFilter.java
+++ b/web/src/main/java/org/apache/shiro/web/filter/authc/UserFilter.java
@@ -46,6 +46,7 @@ public class UserFilter extends AccessControlFilter {
* if the current {@link #getSubject(jakarta.servlet.ServletRequest,
jakarta.servlet.ServletResponse) subject}
* is not <code>null</code>, <code>false</code> otherwise.
*/
+ @Override
protected boolean isAccessAllowed(ServletRequest request, ServletResponse
response, Object mappedValue) {
if (isLoginRequest(request, response)) {
return true;
@@ -62,6 +63,7 @@ public class UserFilter extends AccessControlFilter {
* and then immediately returns <code>false</code>, thereby preventing the
chain from continuing so the redirect may
* execute.
*/
+ @Override
protected boolean onAccessDenied(ServletRequest request, ServletResponse
response) throws Exception {
saveRequestAndRedirectToLogin(request, response);
return false;
diff --git
a/web/src/main/java/org/apache/shiro/web/filter/authz/AuthorizationFilter.java
b/web/src/main/java/org/apache/shiro/web/filter/authz/AuthorizationFilter.java
index 50a16c60c..da05fd3a6 100644
---
a/web/src/main/java/org/apache/shiro/web/filter/authz/AuthorizationFilter.java
+++
b/web/src/main/java/org/apache/shiro/web/filter/authz/AuthorizationFilter.java
@@ -103,6 +103,7 @@ public abstract class AuthorizationFilter extends
AccessControlFilter {
* @return {@code false} always for this implementation.
* @throws IOException if there is any servlet error.
*/
+ @Override
protected boolean onAccessDenied(ServletRequest request, ServletResponse
response) throws IOException {
Subject subject = getSubject(request, response);
diff --git
a/web/src/main/java/org/apache/shiro/web/filter/authz/HostFilter.java
b/web/src/main/java/org/apache/shiro/web/filter/authz/HostFilter.java
index 17f1abbf2..19523dd03 100644
--- a/web/src/main/java/org/apache/shiro/web/filter/authz/HostFilter.java
+++ b/web/src/main/java/org/apache/shiro/web/filter/authz/HostFilter.java
@@ -108,6 +108,7 @@ public class HostFilter extends AuthorizationFilter {
return true;
}
+ @Override
protected boolean isAccessAllowed(ServletRequest request, ServletResponse
response, Object mappedValue) throws Exception {
throw new UnsupportedOperationException("Not yet fully
implemented!!!");
}
diff --git a/web/src/main/java/org/apache/shiro/web/filter/authz/IpFilter.java
b/web/src/main/java/org/apache/shiro/web/filter/authz/IpFilter.java
index afad6e9fa..3b37842ac 100644
--- a/web/src/main/java/org/apache/shiro/web/filter/authz/IpFilter.java
+++ b/web/src/main/java/org/apache/shiro/web/filter/authz/IpFilter.java
@@ -112,6 +112,7 @@ public class IpFilter extends AuthorizationFilter {
return request.getRemoteAddr();
}
+ @Override
protected boolean isAccessAllowed(ServletRequest request, ServletResponse
response, Object mappedValue) throws Exception {
String remoteIp = getHostFromRequest(request);
for (IpAddressMatcher matcher : deniedIpMatchers) {
diff --git
a/web/src/main/java/org/apache/shiro/web/filter/authz/PermissionsAuthorizationFilter.java
b/web/src/main/java/org/apache/shiro/web/filter/authz/PermissionsAuthorizationFilter.java
index 9912c660d..d6fe79afd 100644
---
a/web/src/main/java/org/apache/shiro/web/filter/authz/PermissionsAuthorizationFilter.java
+++
b/web/src/main/java/org/apache/shiro/web/filter/authz/PermissionsAuthorizationFilter.java
@@ -34,6 +34,7 @@ public class PermissionsAuthorizationFilter extends
AuthorizationFilter {
//TODO - complete JavaDoc
+ @Override
public boolean isAccessAllowed(ServletRequest request, ServletResponse
response, Object mappedValue) throws IOException {
Subject subject = getSubject(request, response);
diff --git
a/web/src/main/java/org/apache/shiro/web/filter/authz/PortFilter.java
b/web/src/main/java/org/apache/shiro/web/filter/authz/PortFilter.java
index a5e708cc8..20618c27e 100644
--- a/web/src/main/java/org/apache/shiro/web/filter/authz/PortFilter.java
+++ b/web/src/main/java/org/apache/shiro/web/filter/authz/PortFilter.java
@@ -71,6 +71,7 @@ public class PortFilter extends AuthorizationFilter {
return Integer.parseInt(ports[0]);
}
+ @Override
protected boolean isAccessAllowed(ServletRequest request, ServletResponse
response, Object mappedValue) throws Exception {
int requiredPort = toPort(mappedValue);
int requestPort = request.getServerPort();
diff --git
a/web/src/main/java/org/apache/shiro/web/filter/authz/RolesAuthorizationFilter.java
b/web/src/main/java/org/apache/shiro/web/filter/authz/RolesAuthorizationFilter.java
index 5aa4444e0..a3995c4fc 100644
---
a/web/src/main/java/org/apache/shiro/web/filter/authz/RolesAuthorizationFilter.java
+++
b/web/src/main/java/org/apache/shiro/web/filter/authz/RolesAuthorizationFilter.java
@@ -38,6 +38,7 @@ public class RolesAuthorizationFilter extends
AuthorizationFilter {
//TODO - complete JavaDoc
@SuppressWarnings({"unchecked"})
+ @Override
public boolean isAccessAllowed(ServletRequest request, ServletResponse
response, Object mappedValue) throws IOException {
Subject subject = getSubject(request, response);
diff --git
a/web/src/main/java/org/apache/shiro/web/filter/mgt/SimpleNamedFilterList.java
b/web/src/main/java/org/apache/shiro/web/filter/mgt/SimpleNamedFilterList.java
index 137545ef2..e3b1f4048 100644
---
a/web/src/main/java/org/apache/shiro/web/filter/mgt/SimpleNamedFilterList.java
+++
b/web/src/main/java/org/apache/shiro/web/filter/mgt/SimpleNamedFilterList.java
@@ -95,10 +95,12 @@ public class SimpleNamedFilterList implements
NamedFilterList {
this.backingList.add(index, filter);
}
+ @Override
public boolean addAll(Collection<? extends Filter> c) {
return this.backingList.addAll(c);
}
+ @Override
public boolean addAll(int index, Collection<? extends Filter> c) {
return this.backingList.addAll(index, c);
}
diff --git
a/web/src/main/java/org/apache/shiro/web/servlet/ShiroHttpServletRequest.java
b/web/src/main/java/org/apache/shiro/web/servlet/ShiroHttpServletRequest.java
index e76b2eee4..d25e492bd 100644
---
a/web/src/main/java/org/apache/shiro/web/servlet/ShiroHttpServletRequest.java
+++
b/web/src/main/java/org/apache/shiro/web/servlet/ShiroHttpServletRequest.java
@@ -236,7 +236,7 @@ public class ShiroHttpServletRequest extends
HttpServletRequestWrapper {
return isRequestedSessionIdFromURL();
}
- private class ObjectPrincipal implements java.security.Principal {
+ private static class ObjectPrincipal implements java.security.Principal {
private Object object;
ObjectPrincipal(Object object) {
diff --git a/web/src/main/java/org/apache/shiro/web/servlet/SimpleCookie.java
b/web/src/main/java/org/apache/shiro/web/servlet/SimpleCookie.java
index 961c728dc..16a73fc33 100644
--- a/web/src/main/java/org/apache/shiro/web/servlet/SimpleCookie.java
+++ b/web/src/main/java/org/apache/shiro/web/servlet/SimpleCookie.java
@@ -435,7 +435,7 @@ public class SimpleCookie implements Cookie {
boolean httpOnly = false;
SameSiteOptions sameSite = getSameSite();
- addCookieHeader(response, name, DELETED_COOKIE_VALUE, null, domain,
path, maxAge, version, secure, httpOnly, sameSite);
+ addCookieHeader(response, name, DELETED_COOKIE_VALUE, comment, domain,
path, maxAge, version, secure, httpOnly, sameSite);
LOGGER.trace("Removed '{}' cookie by setting maxAge=0", name);
}
diff --git
a/web/src/main/java/org/apache/shiro/web/session/mgt/DefaultWebSessionManager.java
b/web/src/main/java/org/apache/shiro/web/session/mgt/DefaultWebSessionManager.java
index ab4eac356..0d2bf1e4c 100644
---
a/web/src/main/java/org/apache/shiro/web/session/mgt/DefaultWebSessionManager.java
+++
b/web/src/main/java/org/apache/shiro/web/session/mgt/DefaultWebSessionManager.java
@@ -224,6 +224,7 @@ public class DefaultWebSessionManager extends
DefaultSessionManager implements W
return name;
}
+ @Override
protected Session createExposedSession(Session session, SessionContext
context) {
if (!WebUtils.isWeb(context)) {
return super.createExposedSession(session, context);
@@ -234,6 +235,7 @@ public class DefaultWebSessionManager extends
DefaultSessionManager implements W
return new DelegatingSession(this, key);
}
+ @Override
protected Session createExposedSession(Session session, SessionKey key) {
if (!WebUtils.isWeb(key)) {
return super.createExposedSession(session, key);