From cf394b385a8063b11d0f251fc76385e2923606ce Mon Sep 17 00:00:00 2001 From: Vincent Potucek Date: Fri, 7 Nov 2025 14:22:15 +0100 Subject: [PATCH] [rewrite] Add `RemoveUnusedImports` Signed-off-by: Vincent Potucek --- .github/workflows/ci.yml | 3 + CONTRIBUTING.md | 14 ++++ .../adapters/cloned/HttpAdapterUtilsTest.java | 2 +- .../infinispan/SsoSessionCacheListener.java | 5 +- boms/pom.xml | 32 ++++++++- .../keycloak/util/BasicAuthHelperTest.java | 3 +- .../jpa/entities/PolicyEntity.java | 5 +- .../keycloak/storage/jpa/KeyUtilsTest.java | 3 +- rewrite.yml | 67 +++++++++++++++++++ .../actiontoken/ActionTokenContext.java | 5 +- .../ExecuteActionsActionTokenHandler.java | 4 +- ...dpVerifyAccountLinkActionTokenHandler.java | 9 ++- .../ResetCredentialsActionTokenHandler.java | 4 +- .../VerifyEmailActionTokenHandler.java | 9 ++- .../IdpEmailVerificationAuthenticator.java | 5 +- .../resetcred/ResetCredentialChooseUser.java | 5 +- .../resetcred/ResetCredentialEmail.java | 9 ++- ...ClientCertificateAuthenticatorFactory.java | 23 ------- .../requiredactions/TermsAndConditions.java | 4 +- .../keycloak/protocol/saml/SamlService.java | 4 +- .../org/keycloak/theme/FolderThemeTest.java | 2 +- .../SamlLogoutRequestTypeMatcher.java | 6 +- .../matchers/SamlResponseTypeMatcher.java | 6 +- .../SamlStatusResponseTypeMatcher.java | 6 +- .../AbstractSAMLAdapterClusteredTest.java | 8 ++- .../broker/KcOIDCBrokerWithSignatureTest.java | 5 +- ...erColonAliasClientSecretBasicAuthTest.java | 3 +- .../KcOidcBrokerUiLocalesWithIdpHintTest.java | 10 +-- .../testsuite/forms/ResetPasswordTest.java | 5 +- .../OID4VCAuthorizationCodeFlowTestBase.java | 3 +- .../oidc/AbstractWellKnownProviderTest.java | 1 - .../AuthorizationTokenEncryptionTest.java | 5 +- .../saml/AuthnRequestNameIdFormatTest.java | 2 +- .../testsuite/saml/AuthnRequestTest.java | 4 +- .../webauthn/WebAuthnIdlessTest.java | 5 +- 35 files changed, 219 insertions(+), 67 deletions(-) create mode 100644 rewrite.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ada5dd74f089..7851ec268e97 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -94,6 +94,9 @@ jobs: - name: Spotless run: ./mvnw spotless:check + - name: Rewrite + run: ./mvnw rewrite:dryRun + - name: Build Keycloak uses: ./.github/actions/build-keycloak diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index c0cac41469a3..542db1405e8e 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -124,6 +124,20 @@ You can either use your IDE to fix these issues; or Spotless can fix them for yo ./mvnw spotless:apply ``` +### Rewrite + +Rewrite is used to check and apply sanity check. To check your code locally before sending a PR run: + +``` +./mvnw rewrite:dryRun +``` + +You can either use your IDE to fix these issues; or Rewrite can fix them for you by running: + +``` +./mvnw rewrite:run +``` + A good practice is to create a commit with your changes prior to running `spotless:apply` then you can see and review what changes Spotless has applied, for example by using a diff tool. Finally, if you are happy with the changes Spotless has applied you can amend the changes to your commit by running: diff --git a/adapters/saml/core/src/test/java/org/keycloak/adapters/cloned/HttpAdapterUtilsTest.java b/adapters/saml/core/src/test/java/org/keycloak/adapters/cloned/HttpAdapterUtilsTest.java index 7a7b63b4cded..d53e3488af48 100644 --- a/adapters/saml/core/src/test/java/org/keycloak/adapters/cloned/HttpAdapterUtilsTest.java +++ b/adapters/saml/core/src/test/java/org/keycloak/adapters/cloned/HttpAdapterUtilsTest.java @@ -15,7 +15,7 @@ import org.hamcrest.Matcher; import static org.hamcrest.CoreMatchers.*; import org.junit.Test; -import static org.junit.Assert.*; +import static org.junit.Assert.assertThat; import org.keycloak.adapters.saml.config.parsers.KeycloakSamlAdapterV1QNames; import org.keycloak.common.util.MultivaluedHashMap; import org.keycloak.dom.saml.v2.metadata.KeyTypes; diff --git a/adapters/saml/wildfly-elytron/src/main/java/org/keycloak/adapters/saml/elytron/infinispan/SsoSessionCacheListener.java b/adapters/saml/wildfly-elytron/src/main/java/org/keycloak/adapters/saml/elytron/infinispan/SsoSessionCacheListener.java index c47b1a73f2e6..ca7055204fbb 100644 --- a/adapters/saml/wildfly-elytron/src/main/java/org/keycloak/adapters/saml/elytron/infinispan/SsoSessionCacheListener.java +++ b/adapters/saml/wildfly-elytron/src/main/java/org/keycloak/adapters/saml/elytron/infinispan/SsoSessionCacheListener.java @@ -28,7 +28,10 @@ import org.infinispan.client.hotrod.event.ClientCacheEntryRemovedEvent; import org.infinispan.context.Flag; import org.infinispan.notifications.Listener; -import org.infinispan.notifications.cachelistener.annotation.*; +import org.infinispan.notifications.cachelistener.annotation.CacheEntryCreated; +import org.infinispan.notifications.cachelistener.annotation.CacheEntryRemoved; +import org.infinispan.notifications.cachelistener.annotation.TransactionCompleted; +import org.infinispan.notifications.cachelistener.annotation.TransactionRegistered; import org.infinispan.notifications.cachelistener.event.*; import org.infinispan.notifications.cachemanagerlistener.annotation.CacheStarted; import org.infinispan.notifications.cachemanagerlistener.annotation.CacheStopped; diff --git a/boms/pom.xml b/boms/pom.xml index a9f5de04ddb8..a0a0dc33f552 100644 --- a/boms/pom.xml +++ b/boms/pom.xml @@ -47,7 +47,6 @@ 0.7.0 1.0.7 - 3.0.0 @@ -81,7 +80,36 @@ com.diffplug.spotless spotless-maven-plugin - ${spotless-plugin.version} + 3.0.0 + + + org.openrewrite.maven + rewrite-maven-plugin + 6.23.0 + + + org.keycloak.openrewrite.SanityCheck + + true + true + + + + org.openrewrite.recipe + rewrite-migrate-java + 3.21.1 + + + org.openrewrite.recipe + rewrite-static-analysis + 2.21.0 + + + org.openrewrite.recipe + rewrite-rewrite + 0.15.0 + + diff --git a/core/src/test/java/org/keycloak/util/BasicAuthHelperTest.java b/core/src/test/java/org/keycloak/util/BasicAuthHelperTest.java index 82fe08649119..9830c5eadfd4 100644 --- a/core/src/test/java/org/keycloak/util/BasicAuthHelperTest.java +++ b/core/src/test/java/org/keycloak/util/BasicAuthHelperTest.java @@ -2,7 +2,8 @@ import org.junit.Test; -import static org.junit.Assert.*; +import static org.junit.Assert.assertArrayEquals; +import static org.junit.Assert.assertEquals; public class BasicAuthHelperTest { diff --git a/model/jpa/src/main/java/org/keycloak/authorization/jpa/entities/PolicyEntity.java b/model/jpa/src/main/java/org/keycloak/authorization/jpa/entities/PolicyEntity.java index f4ea7697b9fe..9f338f82a6b1 100644 --- a/model/jpa/src/main/java/org/keycloak/authorization/jpa/entities/PolicyEntity.java +++ b/model/jpa/src/main/java/org/keycloak/authorization/jpa/entities/PolicyEntity.java @@ -18,7 +18,10 @@ package org.keycloak.authorization.jpa.entities; -import java.util.*; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; +import java.util.Set; import jakarta.persistence.Access; import jakarta.persistence.AccessType; diff --git a/model/jpa/src/test/java/org/keycloak/storage/jpa/KeyUtilsTest.java b/model/jpa/src/test/java/org/keycloak/storage/jpa/KeyUtilsTest.java index c44c6d30141e..d0e45f967492 100644 --- a/model/jpa/src/test/java/org/keycloak/storage/jpa/KeyUtilsTest.java +++ b/model/jpa/src/test/java/org/keycloak/storage/jpa/KeyUtilsTest.java @@ -20,7 +20,8 @@ import org.junit.Test; import org.keycloak.models.utils.KeycloakModelUtils; -import static org.junit.Assert.*; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; /** * diff --git a/rewrite.yml b/rewrite.yml new file mode 100644 index 000000000000..f8485674f8fc --- /dev/null +++ b/rewrite.yml @@ -0,0 +1,67 @@ +--- +type: specs.openrewrite.org/v1beta/recipe +name: org.keycloak.openrewrite.SanityCheck +displayName: Apply all Java & Maven best practices +description: Comprehensive code quality recipe combining modernization, security, and best practices. +tags: + - java + - maven + - static-analysis + - cleanup +recipeList: + - org.openrewrite.java.RemoveUnusedImports + # - org.openrewrite.staticanalysis.RemoveUnusedPrivateMethods + # - org.openrewrite.maven.BestPractices + # - org.openrewrite.java.format.NormalizeLineBreaks + # - org.openrewrite.java.format.RemoveTrailingWhitespace + # TBD + # - org.openrewrite.java.format.NormalizeFormat + # - org.openrewrite.java.migrate.UpgradeToJava17 + # - org.openrewrite.java.migrate.lang.FindVirtualThreadOpportunities # don't want to use: https://github.com/diffplug/spotless/pull/2684#discussion_r2433831887 + # - org.openrewrite.java.migrate.lang.StringRulesRecipes + # - org.openrewrite.java.migrate.util.JavaLangAPIs + # - org.openrewrite.java.migrate.util.JavaUtilAPIs + # - org.openrewrite.java.migrate.util.MigrateInflaterDeflaterToClose + # - org.openrewrite.java.migrate.util.ReplaceStreamCollectWithToList + # - org.openrewrite.java.migrate.util.SequencedCollection + # - org.openrewrite.java.recipes.JavaRecipeBestPractices + # - org.openrewrite.java.recipes.RecipeTestingBestPractices + # - org.openrewrite.java.security.JavaSecurityBestPractices + # - org.openrewrite.staticanalysis.BufferedWriterCreationRecipes + # - org.openrewrite.staticanalysis.CommonStaticAnalysis + # - org.openrewrite.staticanalysis.EqualsAvoidsNull + # - org.openrewrite.staticanalysis.JavaApiBestPractices + # - org.openrewrite.staticanalysis.LowercasePackage + # - org.openrewrite.staticanalysis.MissingOverrideAnnotation + # - org.openrewrite.staticanalysis.ModifierOrder + # - org.openrewrite.staticanalysis.NoFinalizer + # - org.openrewrite.staticanalysis.NoToStringOnStringType + # - org.openrewrite.staticanalysis.NoValueOfOnStringType + # - org.openrewrite.staticanalysis.RemoveUnusedLocalVariables + # - org.openrewrite.staticanalysis.RemoveUnusedPrivateFields + # - org.openrewrite.staticanalysis.ReplaceApacheCommonsLang3ValidateNotNullWithObjectsRequireNonNull + # - org.openrewrite.staticanalysis.SimplifyTernaryRecipes + # - org.openrewrite.staticanalysis.URLEqualsHashCodeRecipes + # - org.openrewrite.staticanalysis.UnnecessaryCloseInTryWithResources + # - org.openrewrite.staticanalysis.UnnecessaryExplicitTypeArguments + # - org.openrewrite.staticanalysis.UnnecessaryParentheses + # - org.openrewrite.staticanalysis.UnnecessaryReturnAsLastStatement + # - tech.picnic.errorprone.refasterrules.BigDecimalRulesRecipes + # - tech.picnic.errorprone.refasterrules.CharSequenceRulesRecipes + # - tech.picnic.errorprone.refasterrules.ClassRulesRecipes + # - tech.picnic.errorprone.refasterrules.CollectionRulesRecipes + # - tech.picnic.errorprone.refasterrules.ComparatorRulesRecipes + # - tech.picnic.errorprone.refasterrules.EqualityRulesRecipes + # - tech.picnic.errorprone.refasterrules.FileRulesRecipes + # - tech.picnic.errorprone.refasterrules.MapRulesRecipes + # - tech.picnic.errorprone.refasterrules.MicrometerRulesRecipes + # - tech.picnic.errorprone.refasterrules.MockitoRulesRecipes + # - tech.picnic.errorprone.refasterrules.NullRulesRecipes + # - tech.picnic.errorprone.refasterrules.OptionalRulesRecipes + # - tech.picnic.errorprone.refasterrules.PatternRulesRecipes + # - tech.picnic.errorprone.refasterrules.PreconditionsRulesRecipes + # - tech.picnic.errorprone.refasterrules.PrimitiveRulesRecipes + # - tech.picnic.errorprone.refasterrules.StreamRulesRecipes + # - tech.picnic.errorprone.refasterrules.StringRulesRecipes + # - tech.picnic.errorprone.refasterrules.TimeRulesRecipes +--- diff --git a/services/src/main/java/org/keycloak/authentication/actiontoken/ActionTokenContext.java b/services/src/main/java/org/keycloak/authentication/actiontoken/ActionTokenContext.java index 675447881156..8f6073c66a8d 100644 --- a/services/src/main/java/org/keycloak/authentication/actiontoken/ActionTokenContext.java +++ b/services/src/main/java/org/keycloak/authentication/actiontoken/ActionTokenContext.java @@ -20,7 +20,10 @@ import org.keycloak.authentication.AuthenticationProcessor; import org.keycloak.common.ClientConnection; import org.keycloak.events.EventBuilder; -import org.keycloak.models.*; +import org.keycloak.models.AuthenticationFlowModel; +import org.keycloak.models.ClientModel; +import org.keycloak.models.KeycloakSession; +import org.keycloak.models.RealmModel; import org.keycloak.models.utils.SystemClientUtil; import org.keycloak.protocol.oidc.OIDCLoginProtocol; import org.keycloak.representations.JsonWebToken; diff --git a/services/src/main/java/org/keycloak/authentication/actiontoken/execactions/ExecuteActionsActionTokenHandler.java b/services/src/main/java/org/keycloak/authentication/actiontoken/execactions/ExecuteActionsActionTokenHandler.java index d8b4b4bb26b5..55d63a15cfd6 100644 --- a/services/src/main/java/org/keycloak/authentication/actiontoken/execactions/ExecuteActionsActionTokenHandler.java +++ b/services/src/main/java/org/keycloak/authentication/actiontoken/execactions/ExecuteActionsActionTokenHandler.java @@ -21,7 +21,9 @@ import org.keycloak.authentication.AuthenticationProcessor; import org.keycloak.authentication.RequiredActionFactory; import org.keycloak.authentication.RequiredActionProvider; -import org.keycloak.authentication.actiontoken.*; +import org.keycloak.authentication.actiontoken.AbstractActionTokenHandler; +import org.keycloak.authentication.actiontoken.ActionTokenContext; +import org.keycloak.authentication.actiontoken.TokenUtils; import org.keycloak.authentication.requiredactions.util.RequiredActionsValidator; import org.keycloak.events.Errors; import org.keycloak.events.EventType; diff --git a/services/src/main/java/org/keycloak/authentication/actiontoken/idpverifyemail/IdpVerifyAccountLinkActionTokenHandler.java b/services/src/main/java/org/keycloak/authentication/actiontoken/idpverifyemail/IdpVerifyAccountLinkActionTokenHandler.java index 0b745bf4fb8b..590b9a527252 100644 --- a/services/src/main/java/org/keycloak/authentication/actiontoken/idpverifyemail/IdpVerifyAccountLinkActionTokenHandler.java +++ b/services/src/main/java/org/keycloak/authentication/actiontoken/idpverifyemail/IdpVerifyAccountLinkActionTokenHandler.java @@ -19,9 +19,14 @@ import org.keycloak.authentication.actiontoken.AbstractActionTokenHandler; import org.keycloak.TokenVerifier.Predicate; import org.keycloak.authentication.AuthenticationProcessor; -import org.keycloak.authentication.actiontoken.*; +import org.keycloak.authentication.actiontoken.AbstractActionTokenHandler; +import org.keycloak.authentication.actiontoken.ActionTokenContext; +import org.keycloak.authentication.actiontoken.TokenUtils; import org.keycloak.authentication.authenticators.broker.IdpEmailVerificationAuthenticator; -import org.keycloak.events.*; +import org.keycloak.events.Details; +import org.keycloak.events.Errors; +import org.keycloak.events.EventBuilder; +import org.keycloak.events.EventType; import org.keycloak.forms.login.LoginFormsProvider; import org.keycloak.models.ClientModel; import org.keycloak.models.Constants; diff --git a/services/src/main/java/org/keycloak/authentication/actiontoken/resetcred/ResetCredentialsActionTokenHandler.java b/services/src/main/java/org/keycloak/authentication/actiontoken/resetcred/ResetCredentialsActionTokenHandler.java index 579f29e64b66..235dfc6217b5 100644 --- a/services/src/main/java/org/keycloak/authentication/actiontoken/resetcred/ResetCredentialsActionTokenHandler.java +++ b/services/src/main/java/org/keycloak/authentication/actiontoken/resetcred/ResetCredentialsActionTokenHandler.java @@ -18,7 +18,9 @@ import org.keycloak.TokenVerifier.Predicate; import org.keycloak.authentication.AuthenticationProcessor; -import org.keycloak.authentication.actiontoken.*; +import org.keycloak.authentication.actiontoken.AbstractActionTokenHandler; +import org.keycloak.authentication.actiontoken.ActionTokenContext; +import org.keycloak.authentication.actiontoken.TokenUtils; import org.keycloak.authentication.authenticators.broker.AbstractIdpAuthenticator; import org.keycloak.authentication.authenticators.broker.util.SerializedBrokeredIdentityContext; import org.keycloak.events.Errors; diff --git a/services/src/main/java/org/keycloak/authentication/actiontoken/verifyemail/VerifyEmailActionTokenHandler.java b/services/src/main/java/org/keycloak/authentication/actiontoken/verifyemail/VerifyEmailActionTokenHandler.java index 6694e53423a7..c9659ea1f14a 100644 --- a/services/src/main/java/org/keycloak/authentication/actiontoken/verifyemail/VerifyEmailActionTokenHandler.java +++ b/services/src/main/java/org/keycloak/authentication/actiontoken/verifyemail/VerifyEmailActionTokenHandler.java @@ -19,8 +19,13 @@ import org.keycloak.authentication.AuthenticationProcessor; import org.keycloak.authentication.actiontoken.AbstractActionTokenHandler; import org.keycloak.TokenVerifier.Predicate; -import org.keycloak.authentication.actiontoken.*; -import org.keycloak.events.*; +import org.keycloak.authentication.actiontoken.AbstractActionTokenHandler; +import org.keycloak.authentication.actiontoken.ActionTokenContext; +import org.keycloak.authentication.actiontoken.TokenUtils; +import org.keycloak.events.Details; +import org.keycloak.events.Errors; +import org.keycloak.events.EventBuilder; +import org.keycloak.events.EventType; import org.keycloak.forms.login.LoginFormsProvider; import org.keycloak.models.Constants; import org.keycloak.models.KeycloakSession; diff --git a/services/src/main/java/org/keycloak/authentication/authenticators/broker/IdpEmailVerificationAuthenticator.java b/services/src/main/java/org/keycloak/authentication/authenticators/broker/IdpEmailVerificationAuthenticator.java index 10edd4d03578..b907c50e811d 100755 --- a/services/src/main/java/org/keycloak/authentication/authenticators/broker/IdpEmailVerificationAuthenticator.java +++ b/services/src/main/java/org/keycloak/authentication/authenticators/broker/IdpEmailVerificationAuthenticator.java @@ -48,7 +48,10 @@ import jakarta.ws.rs.core.Response; import jakarta.ws.rs.core.UriBuilder; import java.util.concurrent.TimeUnit; -import jakarta.ws.rs.core.*; +import jakarta.ws.rs.core.Response; +import jakarta.ws.rs.core.UriBuilder; +import jakarta.ws.rs.core.UriBuilderException; +import jakarta.ws.rs.core.UriInfo; /** * @author Marek Posolda diff --git a/services/src/main/java/org/keycloak/authentication/authenticators/resetcred/ResetCredentialChooseUser.java b/services/src/main/java/org/keycloak/authentication/authenticators/resetcred/ResetCredentialChooseUser.java index 400a001e316f..fe5892b75684 100755 --- a/services/src/main/java/org/keycloak/authentication/authenticators/resetcred/ResetCredentialChooseUser.java +++ b/services/src/main/java/org/keycloak/authentication/authenticators/resetcred/ResetCredentialChooseUser.java @@ -20,7 +20,10 @@ import org.keycloak.models.DefaultActionTokenKey; import org.jboss.logging.Logger; import org.keycloak.Config; -import org.keycloak.authentication.*; +import org.keycloak.authentication.AuthenticationFlowContext; +import org.keycloak.authentication.AuthenticationFlowError; +import org.keycloak.authentication.Authenticator; +import org.keycloak.authentication.AuthenticatorFactory; import org.keycloak.authentication.authenticators.broker.AbstractIdpAuthenticator; import org.keycloak.authentication.authenticators.browser.AbstractUsernameFormAuthenticator; import org.keycloak.events.Details; diff --git a/services/src/main/java/org/keycloak/authentication/authenticators/resetcred/ResetCredentialEmail.java b/services/src/main/java/org/keycloak/authentication/authenticators/resetcred/ResetCredentialEmail.java index 51daefdd5bc0..47e29d7dfb7f 100755 --- a/services/src/main/java/org/keycloak/authentication/authenticators/resetcred/ResetCredentialEmail.java +++ b/services/src/main/java/org/keycloak/authentication/authenticators/resetcred/ResetCredentialEmail.java @@ -23,7 +23,10 @@ import org.keycloak.authentication.actiontoken.resetcred.ResetCredentialsActionToken; import org.keycloak.authentication.authenticators.browser.AbstractUsernameFormAuthenticator; import org.keycloak.common.util.Time; -import org.keycloak.credential.*; +import org.keycloak.credential.CredentialModel; +import org.keycloak.credential.CredentialProvider; +import org.keycloak.credential.PasswordCredentialProvider; +import org.keycloak.credential.PasswordCredentialProviderFactory; import org.keycloak.email.EmailException; import org.keycloak.email.EmailTemplateProvider; import org.keycloak.events.Details; @@ -46,7 +49,9 @@ import org.keycloak.sessions.AuthenticationSessionModel; import org.keycloak.storage.StorageId; -import java.util.*; +import java.util.Arrays; +import java.util.List; +import java.util.Objects; import jakarta.ws.rs.core.UriBuilder; import java.util.concurrent.TimeUnit; import org.jboss.logging.Logger; diff --git a/services/src/main/java/org/keycloak/authentication/authenticators/x509/AbstractX509ClientCertificateAuthenticatorFactory.java b/services/src/main/java/org/keycloak/authentication/authenticators/x509/AbstractX509ClientCertificateAuthenticatorFactory.java index 9828f9c609d9..ed4e6a2caeab 100644 --- a/services/src/main/java/org/keycloak/authentication/authenticators/x509/AbstractX509ClientCertificateAuthenticatorFactory.java +++ b/services/src/main/java/org/keycloak/authentication/authenticators/x509/AbstractX509ClientCertificateAuthenticatorFactory.java @@ -30,29 +30,6 @@ import org.keycloak.provider.ProviderConfigProperty; import static org.keycloak.authentication.authenticators.x509.AbstractX509ClientCertificateAuthenticator.*; -import static org.keycloak.authentication.authenticators.x509.AbstractX509ClientCertificateAuthenticator.CERTIFICATE_KEY_USAGE; -import static org.keycloak.authentication.authenticators.x509.AbstractX509ClientCertificateAuthenticator.CONFIRMATION_PAGE_DISALLOWED; -import static org.keycloak.authentication.authenticators.x509.AbstractX509ClientCertificateAuthenticator.CRL_RELATIVE_PATH; -import static org.keycloak.authentication.authenticators.x509.AbstractX509ClientCertificateAuthenticator.CUSTOM_ATTRIBUTE_NAME; -import static org.keycloak.authentication.authenticators.x509.AbstractX509ClientCertificateAuthenticator.DEFAULT_ATTRIBUTE_NAME; -import static org.keycloak.authentication.authenticators.x509.AbstractX509ClientCertificateAuthenticator.DEFAULT_MATCH_ALL_EXPRESSION; -import static org.keycloak.authentication.authenticators.x509.AbstractX509ClientCertificateAuthenticator.ENABLE_CRL; -import static org.keycloak.authentication.authenticators.x509.AbstractX509ClientCertificateAuthenticator.ENABLE_CRLDP; -import static org.keycloak.authentication.authenticators.x509.AbstractX509ClientCertificateAuthenticator.ENABLE_OCSP; -import static org.keycloak.authentication.authenticators.x509.AbstractX509ClientCertificateAuthenticator.MAPPING_SOURCE_CERT_ISSUERDN; -import static org.keycloak.authentication.authenticators.x509.AbstractX509ClientCertificateAuthenticator.MAPPING_SOURCE_CERT_SERIALNUMBER; -import static org.keycloak.authentication.authenticators.x509.AbstractX509ClientCertificateAuthenticator.MAPPING_SOURCE_CERT_SUBJECTALTNAME_EMAIL; -import static org.keycloak.authentication.authenticators.x509.AbstractX509ClientCertificateAuthenticator.MAPPING_SOURCE_CERT_SUBJECTALTNAME_OTHERNAME; -import static org.keycloak.authentication.authenticators.x509.AbstractX509ClientCertificateAuthenticator.MAPPING_SOURCE_CERT_SUBJECTDN; -import static org.keycloak.authentication.authenticators.x509.AbstractX509ClientCertificateAuthenticator.MAPPING_SOURCE_CERT_SUBJECTDN_CN; -import static org.keycloak.authentication.authenticators.x509.AbstractX509ClientCertificateAuthenticator.MAPPING_SOURCE_CERT_SUBJECTDN_EMAIL; -import static org.keycloak.authentication.authenticators.x509.AbstractX509ClientCertificateAuthenticator.MAPPING_SOURCE_SELECTION; -import static org.keycloak.authentication.authenticators.x509.AbstractX509ClientCertificateAuthenticator.OCSPRESPONDER_CERTIFICATE; -import static org.keycloak.authentication.authenticators.x509.AbstractX509ClientCertificateAuthenticator.OCSPRESPONDER_URI; -import static org.keycloak.authentication.authenticators.x509.AbstractX509ClientCertificateAuthenticator.REGULAR_EXPRESSION; -import static org.keycloak.authentication.authenticators.x509.AbstractX509ClientCertificateAuthenticator.USERNAME_EMAIL_MAPPER; -import static org.keycloak.authentication.authenticators.x509.AbstractX509ClientCertificateAuthenticator.USER_ATTRIBUTE_MAPPER; -import static org.keycloak.authentication.authenticators.x509.AbstractX509ClientCertificateAuthenticator.USER_MAPPER_SELECTION; import static org.keycloak.provider.ProviderConfigProperty.BOOLEAN_TYPE; import static org.keycloak.provider.ProviderConfigProperty.MULTIVALUED_STRING_TYPE; import static org.keycloak.provider.ProviderConfigProperty.STRING_TYPE; diff --git a/services/src/main/java/org/keycloak/authentication/requiredactions/TermsAndConditions.java b/services/src/main/java/org/keycloak/authentication/requiredactions/TermsAndConditions.java index fac17fe2ad29..cc3c7864b0bf 100755 --- a/services/src/main/java/org/keycloak/authentication/requiredactions/TermsAndConditions.java +++ b/services/src/main/java/org/keycloak/authentication/requiredactions/TermsAndConditions.java @@ -18,7 +18,9 @@ package org.keycloak.authentication.requiredactions; import org.keycloak.Config; -import org.keycloak.authentication.*; +import org.keycloak.authentication.RequiredActionContext; +import org.keycloak.authentication.RequiredActionFactory; +import org.keycloak.authentication.RequiredActionProvider; import org.keycloak.common.util.Time; import org.keycloak.models.KeycloakSession; import org.keycloak.models.KeycloakSessionFactory; diff --git a/services/src/main/java/org/keycloak/protocol/saml/SamlService.java b/services/src/main/java/org/keycloak/protocol/saml/SamlService.java index 4151da75c431..1631cd8fb3e4 100755 --- a/services/src/main/java/org/keycloak/protocol/saml/SamlService.java +++ b/services/src/main/java/org/keycloak/protocol/saml/SamlService.java @@ -123,7 +123,9 @@ import jakarta.ws.rs.QueryParam; import jakarta.ws.rs.container.AsyncResponse; import jakarta.ws.rs.container.Suspended; -import jakarta.ws.rs.core.*; +import jakarta.ws.rs.core.MultivaluedMap; +import jakarta.ws.rs.core.Response; +import jakarta.ws.rs.core.UriInfo; import javax.xml.crypto.dsig.XMLSignature; import javax.xml.stream.XMLStreamWriter; import java.io.ByteArrayInputStream; diff --git a/services/src/test/java/org/keycloak/theme/FolderThemeTest.java b/services/src/test/java/org/keycloak/theme/FolderThemeTest.java index a1bba9e92347..c85d581d88a0 100644 --- a/services/src/test/java/org/keycloak/theme/FolderThemeTest.java +++ b/services/src/test/java/org/keycloak/theme/FolderThemeTest.java @@ -17,7 +17,7 @@ package org.keycloak.theme; -import static org.junit.Assert.*; +import static org.junit.Assert.assertNotNull; import static org.keycloak.theme.Theme.Type.LOGIN; import org.junit.Test; diff --git a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/util/matchers/SamlLogoutRequestTypeMatcher.java b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/util/matchers/SamlLogoutRequestTypeMatcher.java index 10f7359ebfbf..26417b6cf388 100644 --- a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/util/matchers/SamlLogoutRequestTypeMatcher.java +++ b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/util/matchers/SamlLogoutRequestTypeMatcher.java @@ -8,8 +8,10 @@ import org.keycloak.dom.saml.v2.SAML2Object; import org.keycloak.dom.saml.v2.protocol.LogoutRequestType; import java.net.URI; -import org.hamcrest.*; -import static org.hamcrest.Matchers.*; +import org.hamcrest.BaseMatcher; +import org.hamcrest.Description; +import org.hamcrest.Matcher; +import static org.hamcrest.Matchers.is; /** * diff --git a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/util/matchers/SamlResponseTypeMatcher.java b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/util/matchers/SamlResponseTypeMatcher.java index 05dd9b1cf2a6..ff0fc4d1dc10 100644 --- a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/util/matchers/SamlResponseTypeMatcher.java +++ b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/util/matchers/SamlResponseTypeMatcher.java @@ -9,8 +9,10 @@ import org.keycloak.dom.saml.v2.protocol.ResponseType; import org.keycloak.saml.common.constants.JBossSAMLURIConstants; import java.net.URI; -import org.hamcrest.*; -import static org.hamcrest.Matchers.*; +import org.hamcrest.BaseMatcher; +import org.hamcrest.Description; +import org.hamcrest.Matcher; +import static org.hamcrest.Matchers.is; /** * diff --git a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/util/matchers/SamlStatusResponseTypeMatcher.java b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/util/matchers/SamlStatusResponseTypeMatcher.java index e12f95b3e43a..4153509e8a6d 100644 --- a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/util/matchers/SamlStatusResponseTypeMatcher.java +++ b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/util/matchers/SamlStatusResponseTypeMatcher.java @@ -11,8 +11,10 @@ import java.net.URI; import java.util.ArrayList; import java.util.List; -import org.hamcrest.*; -import static org.hamcrest.Matchers.*; +import org.hamcrest.BaseMatcher; +import org.hamcrest.Description; +import org.hamcrest.Matcher; +import static org.hamcrest.Matchers.is; /** * diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/AbstractSAMLAdapterClusteredTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/AbstractSAMLAdapterClusteredTest.java index be30a04e4bf8..b8ddac45e539 100644 --- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/AbstractSAMLAdapterClusteredTest.java +++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/AbstractSAMLAdapterClusteredTest.java @@ -31,11 +31,13 @@ import java.util.stream.Collectors; import org.apache.http.client.methods.HttpGet; -import org.jboss.arquillian.container.test.api.*; +import org.jboss.arquillian.container.test.api.OperateOnDeployment; import org.jboss.arquillian.test.api.ArquillianResource; -import org.junit.*; +import org.junit.Test; import org.keycloak.admin.client.resource.RealmResource; -import org.keycloak.representations.idm.*; +import org.keycloak.representations.idm.ClientRepresentation; +import org.keycloak.representations.idm.CredentialRepresentation; +import org.keycloak.representations.idm.RealmRepresentation; import org.keycloak.common.util.Retry; import org.keycloak.testsuite.adapter.page.EmployeeServletDistributable; import org.keycloak.testsuite.admin.ApiUtil; diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/broker/KcOIDCBrokerWithSignatureTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/broker/KcOIDCBrokerWithSignatureTest.java index 002ca9058833..93aa577a6152 100644 --- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/broker/KcOIDCBrokerWithSignatureTest.java +++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/broker/KcOIDCBrokerWithSignatureTest.java @@ -26,7 +26,10 @@ import org.junit.Test; import org.keycloak.admin.client.resource.RealmResource; -import org.keycloak.common.util.*; +import org.keycloak.common.util.Base64Url; +import org.keycloak.common.util.KeyUtils; +import org.keycloak.common.util.MultivaluedHashMap; +import org.keycloak.common.util.PemUtils; import org.keycloak.connections.infinispan.InfinispanConnectionProvider; import org.keycloak.crypto.Algorithm; import org.keycloak.keys.Attributes; diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/broker/KcOidcBrokerColonAliasClientSecretBasicAuthTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/broker/KcOidcBrokerColonAliasClientSecretBasicAuthTest.java index 6feed52f1ce9..0d47f9206502 100644 --- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/broker/KcOidcBrokerColonAliasClientSecretBasicAuthTest.java +++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/broker/KcOidcBrokerColonAliasClientSecretBasicAuthTest.java @@ -27,7 +27,8 @@ import static org.keycloak.broker.oidc.OAuth2IdentityProviderConfig.TOKEN_ENDPOINT_URL; import static org.keycloak.testsuite.broker.BrokerTestConstants.*; -import static org.keycloak.testsuite.broker.BrokerTestTools.*; +import static org.keycloak.testsuite.broker.BrokerTestTools.createIdentityProvider; +import static org.keycloak.testsuite.broker.BrokerTestTools.getProviderRoot; public class KcOidcBrokerColonAliasClientSecretBasicAuthTest extends AbstractBrokerTest { diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/broker/KcOidcBrokerUiLocalesWithIdpHintTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/broker/KcOidcBrokerUiLocalesWithIdpHintTest.java index d54fddd9ed17..32d6f9633a9e 100644 --- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/broker/KcOidcBrokerUiLocalesWithIdpHintTest.java +++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/broker/KcOidcBrokerUiLocalesWithIdpHintTest.java @@ -10,11 +10,13 @@ import java.util.Locale; import java.util.Map; -import static org.hamcrest.CoreMatchers.*; +import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.MatcherAssert.assertThat; -import static org.keycloak.OAuth2Constants.*; -import static org.keycloak.testsuite.broker.BrokerTestConstants.*; -import static org.keycloak.testsuite.broker.BrokerTestTools.*; +import static org.keycloak.OAuth2Constants.UI_LOCALES_PARAM; +import static org.keycloak.testsuite.broker.BrokerTestConstants.IDP_OIDC_ALIAS; +import static org.keycloak.testsuite.broker.BrokerTestConstants.IDP_OIDC_PROVIDER_ID; +import static org.keycloak.testsuite.broker.BrokerTestTools.createIdentityProvider; +import static org.keycloak.testsuite.broker.BrokerTestTools.waitForPage; public class KcOidcBrokerUiLocalesWithIdpHintTest extends AbstractBrokerTest { diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/forms/ResetPasswordTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/forms/ResetPasswordTest.java index 73a36eaa8399..aed2fe5cdb50 100644 --- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/forms/ResetPasswordTest.java +++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/forms/ResetPasswordTest.java @@ -88,7 +88,10 @@ import java.util.Map; import java.util.concurrent.atomic.AtomicInteger; -import org.junit.*; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Rule; +import org.junit.Test; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/oid4vc/issuance/signing/OID4VCAuthorizationCodeFlowTestBase.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/oid4vc/issuance/signing/OID4VCAuthorizationCodeFlowTestBase.java index 19eead66f890..2a8586620ec6 100644 --- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/oid4vc/issuance/signing/OID4VCAuthorizationCodeFlowTestBase.java +++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/oid4vc/issuance/signing/OID4VCAuthorizationCodeFlowTestBase.java @@ -50,7 +50,8 @@ import java.util.List; import java.util.Map; -import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; /** * Base class for authorization code flow tests with authorization details and claims validation. diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/oidc/AbstractWellKnownProviderTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/oidc/AbstractWellKnownProviderTest.java index 28d3feb87441..1f7e038c041f 100644 --- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/oidc/AbstractWellKnownProviderTest.java +++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/oidc/AbstractWellKnownProviderTest.java @@ -78,7 +78,6 @@ import static jakarta.ws.rs.core.HttpHeaders.ACCEPT; import static jakarta.ws.rs.core.HttpHeaders.CONTENT_TYPE; import static org.junit.Assert.*; -import static org.junit.Assert.assertEquals; import static org.keycloak.utils.MediaType.APPLICATION_JWKS; @FixMethodOrder(MethodSorters.NAME_ASCENDING) diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/oidc/AuthorizationTokenEncryptionTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/oidc/AuthorizationTokenEncryptionTest.java index 94dd6a5b4f8e..b2b6ea68c426 100644 --- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/oidc/AuthorizationTokenEncryptionTest.java +++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/oidc/AuthorizationTokenEncryptionTest.java @@ -43,7 +43,10 @@ import org.keycloak.testsuite.arquillian.annotation.UncaughtServerErrorExpected; import org.keycloak.testsuite.client.resources.TestApplicationResourceUrls; import org.keycloak.testsuite.client.resources.TestOIDCEndpointsApplicationResource; -import org.keycloak.testsuite.pages.*; +import org.keycloak.testsuite.pages.AppPage; +import org.keycloak.testsuite.pages.ErrorPage; +import org.keycloak.testsuite.pages.LoginPage; +import org.keycloak.testsuite.pages.OAuthGrantPage; import org.keycloak.testsuite.util.oauth.AuthorizationEndpointResponse; import org.keycloak.testsuite.util.TokenSignatureUtil; import org.keycloak.util.JsonSerialization; diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/saml/AuthnRequestNameIdFormatTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/saml/AuthnRequestNameIdFormatTest.java index 04ed0994c912..8cde2ea8a180 100644 --- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/saml/AuthnRequestNameIdFormatTest.java +++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/saml/AuthnRequestNameIdFormatTest.java @@ -31,7 +31,7 @@ import org.junit.Test; import static org.hamcrest.Matchers.*; -import static org.keycloak.testsuite.util.SamlClient.*; +import static org.keycloak.testsuite.util.SamlClient.Binding; import static org.hamcrest.MatcherAssert.assertThat; /** diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/saml/AuthnRequestTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/saml/AuthnRequestTest.java index aba8606f97ca..432f2129fab5 100644 --- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/saml/AuthnRequestTest.java +++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/saml/AuthnRequestTest.java @@ -20,8 +20,8 @@ import org.apache.http.util.EntityUtils; import org.junit.Test; -import static org.hamcrest.Matchers.*; -import static org.keycloak.testsuite.util.SamlClient.*; +import static org.hamcrest.Matchers.containsString; +import static org.keycloak.testsuite.util.SamlClient.Binding; import static org.hamcrest.MatcherAssert.assertThat; /** diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/webauthn/WebAuthnIdlessTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/webauthn/WebAuthnIdlessTest.java index d7ff497ddb26..25f18fd98fb0 100644 --- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/webauthn/WebAuthnIdlessTest.java +++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/webauthn/WebAuthnIdlessTest.java @@ -22,7 +22,10 @@ import org.junit.Test; import org.keycloak.WebAuthnConstants; import org.keycloak.admin.client.resource.UserResource; -import org.keycloak.authentication.authenticators.browser.*; +import org.keycloak.authentication.authenticators.browser.UsernameFormFactory; +import org.keycloak.authentication.authenticators.browser.UsernamePasswordFormFactory; +import org.keycloak.authentication.authenticators.browser.WebAuthnAuthenticatorFactory; +import org.keycloak.authentication.authenticators.browser.WebAuthnPasswordlessAuthenticatorFactory; import org.keycloak.authentication.requiredactions.WebAuthnPasswordlessRegisterFactory; import org.keycloak.authentication.requiredactions.WebAuthnRegisterFactory; import org.keycloak.common.util.SecretGenerator;