From a3fcacdab7e45db6b59a5b484e2905f73d71bda0 Mon Sep 17 00:00:00 2001 From: Martin Kanis Date: Wed, 31 Jan 2024 13:30:23 +0100 Subject: [PATCH] Map Store Removal: deprecate model legacy module Closes #26598 Signed-off-by: Martin Kanis --- .../topics/keycloak/changes-24_0_0.adoc | 3 +- model/legacy/pom.xml | 21 +++++++++++ .../LegacyUserCredentialManager.java | 37 +++++++++++++++++++ .../org/keycloak/models/LegacyRealmModel.java | 27 ++++++++++++++ .../keycloak/storage/LegacyStoreManagers.java | 26 +++++++++++++ model/pom.xml | 1 + 6 files changed, 114 insertions(+), 1 deletion(-) create mode 100644 model/legacy/pom.xml create mode 100644 model/legacy/src/main/java/org/keycloak/credential/LegacyUserCredentialManager.java create mode 100644 model/legacy/src/main/java/org/keycloak/models/LegacyRealmModel.java create mode 100644 model/legacy/src/main/java/org/keycloak/storage/LegacyStoreManagers.java diff --git a/docs/documentation/upgrading/topics/keycloak/changes-24_0_0.adoc b/docs/documentation/upgrading/topics/keycloak/changes-24_0_0.adoc index 9f60cdfd63..dfa0f4fe25 100644 --- a/docs/documentation/upgrading/topics/keycloak/changes-24_0_0.adoc +++ b/docs/documentation/upgrading/topics/keycloak/changes-24_0_0.adoc @@ -288,10 +288,11 @@ After removal of the Map Store the following configuration options were renamed: After removal of the Map Store the following modules were renamed: -* `org.keycloak:keycloak-model-legacy` to `org.keycloak:keycloak-model-storage` * `org.keycloak:keycloak-model-legacy-private` to `org.keycloak:keycloak-model-storage-private` * `org.keycloak:keycloak-model-legacy-services` to `org.keycloak:keycloak-model-storage-services` +and `org.keycloak:keycloak-model-legacy` module was deprecated and will be removed in the next release in favour of `org.keycloak:keycloak-model-storage` module. + = Updates to cookies As part of refactoring cookie handling in Keycloak there are some changes to how cookies are set: diff --git a/model/legacy/pom.xml b/model/legacy/pom.xml new file mode 100644 index 0000000000..476a1c6c8b --- /dev/null +++ b/model/legacy/pom.xml @@ -0,0 +1,21 @@ + + + + keycloak-model-pom + org.keycloak + 999.0.0-SNAPSHOT + + 4.0.0 + + keycloak-model-legacy + Keycloak Legacy Database Support + + + + + org.keycloak + keycloak-model-storage + + + + \ No newline at end of file diff --git a/model/legacy/src/main/java/org/keycloak/credential/LegacyUserCredentialManager.java b/model/legacy/src/main/java/org/keycloak/credential/LegacyUserCredentialManager.java new file mode 100644 index 0000000000..881d6abe41 --- /dev/null +++ b/model/legacy/src/main/java/org/keycloak/credential/LegacyUserCredentialManager.java @@ -0,0 +1,37 @@ +/* + * Copyright 2022. Red Hat, Inc. and/or its affiliates + * and other contributors as indicated by the @author tags. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.keycloak.credential; + +import org.keycloak.models.KeycloakSession; +import org.keycloak.models.RealmModel; +import org.keycloak.models.UserModel; + +/** + * Handling credentials for a given user for the store. + * @deprecated Class was renamed to {@link UserCredentialManager} in org.keycloak:keycloak-model-storage which should be used from now on. This class will be removed in the next release. + * + * @author Alexander Schwartz + */ +@Deprecated +public class LegacyUserCredentialManager extends UserCredentialManager { + + public LegacyUserCredentialManager(KeycloakSession session, RealmModel realm, UserModel user) { + super(session, realm, user); + } +} + diff --git a/model/legacy/src/main/java/org/keycloak/models/LegacyRealmModel.java b/model/legacy/src/main/java/org/keycloak/models/LegacyRealmModel.java new file mode 100644 index 0000000000..0ad5637deb --- /dev/null +++ b/model/legacy/src/main/java/org/keycloak/models/LegacyRealmModel.java @@ -0,0 +1,27 @@ +/* + * Copyright 2022 Red Hat, Inc. and/or its affiliates + * and other contributors as indicated by the @author tags. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.keycloak.models; + +/** + * @deprecated Interface was renamed to {@link StorageProviderRealmModel} in org.keycloak:keycloak-model-storage which should be used from now on. This Interface will be removed in the next release. + * @author Alexander Schwartz + */ +@Deprecated +public interface LegacyRealmModel extends StorageProviderRealmModel { + +} diff --git a/model/legacy/src/main/java/org/keycloak/storage/LegacyStoreManagers.java b/model/legacy/src/main/java/org/keycloak/storage/LegacyStoreManagers.java new file mode 100644 index 0000000000..25aaafce14 --- /dev/null +++ b/model/legacy/src/main/java/org/keycloak/storage/LegacyStoreManagers.java @@ -0,0 +1,26 @@ +/* + * Copyright 2022 Red Hat, Inc. and/or its affiliates + * and other contributors as indicated by the @author tags. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.keycloak.storage; + +/** + * @deprecated Interface was renamed to {@link StoreManagers} in org.keycloak:keycloak-model-storage which should be used from now on. This Interface will be removed in the next release. + */ +@Deprecated +public interface LegacyStoreManagers extends StoreManagers { + +} diff --git a/model/pom.xml b/model/pom.xml index 373f164947..97b9188ac5 100755 --- a/model/pom.xml +++ b/model/pom.xml @@ -31,6 +31,7 @@ pom + legacy storage storage-private storage-services