Skip to content

Duplicate and different classes in keycloak-core/keycloak-common vs keycloak-client-synced #198

@lrozenblyum

Description

@lrozenblyum

Describe the bug

keycloak-client-common-synced 26.0.8 contains classes with same FQCN as in keycloak-core/keycloak-common 26.5.3 but with different content.

This libraries coincide in the runtime classpath because we have to use keycloak-crypto-default (needed for CryptoIntegration.init to succeed) and keycloak-admin-cli and the libraries mentioned above are fetched transitively.

[INFO] --- duplicate-finder-maven-plugin:1.5.0:check (default) @ <sanitized module name> ---
[INFO] Checking compile classpath
[INFO] Checking runtime classpath
[WARNING] Found duplicate and different classes in [org.keycloak:keycloak-client-common-synced:26.0.8, org.keycloak:keycloak-core:26.5.3]:
[WARNING]   org.keycloak.representations.IDToken
[WARNING]   org.keycloak.util.BasicAuthHelper
[WARNING] Found duplicate and different classes in [org.keycloak:keycloak-client-common-synced:26.0.8, org.keycloak:keycloak-common:26.5.3]:
[WARNING]   org.keycloak.common.crypto.PemUtilsProvider
[WARNING]   org.keycloak.common.util.KerberosSerializationUtils
[WARNING] Found duplicate classes/resources in runtime classpath.                     

Version

26.5.3

Expected behavior

No different versions of Keycloak classes in different libraries that have to be used together.

Actual behavior

When we have both of the libraries in the classpath the behavior of the software will be not predictable - which class the classloader should choose?

How to Reproduce?

Add keycloak-admin-client:26.0.8, keycloak-crypto-default:26.5.3 as dependencies to a module.
Check the classpath for duplicate classes (e.g. by using duplicate-finder-maven-plugin)

Anything else?

Keycloak 26.2.5 + keycloak-client 26.0.5 didn't have this issue.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions