Commit graph

1816 commits

Author SHA1 Message Date
Stefan Guilhen
7c1d6eae43
Upgrade to Liquibase 4.6.2
* Upgrade to Liquibase 4.6.2
* Add valid checksums to changesets to allow migration to newest liquibase
* Update liquibase licenses

Co-authored-by: Martin Kanis <mkanis@redhat.com>
2022-02-09 12:56:46 +01:00
vramik
5701c6c85a JPA delegates can throw NoResultException when entity doesn't have any attributes
Closes #10067
2022-02-09 09:18:54 +01:00
vramik
844c210d86 Create common parent for Jpa*AttributeEntity
Closes #10071
2022-02-08 22:09:21 +01:00
Alexander Schwartz
45df1adba9 Update generics in JPA Map storage to avoid casting and compiler warnings
Closes #10060
2022-02-08 17:38:53 +01:00
Alexander Schwartz
de2c1fbb45 Update the entityVersion also for downgrades, as it needs to match the JSON and auxiliary tables.
Will trigger also when changes to a child occur, like for example when attributes change.

Closes #9716
2022-02-07 12:14:05 +01:00
Martin Kanis
0471ec4941 Cross-site validation for lazy loading of offline sessions & Switch default offline sessions to lazy loaded 2022-02-03 21:43:47 +01:00
vramik
7bd0dbb3ce Client Scopes: Added ModelIllegalStateException to handle lazy loading exception.
Closes #9645
2022-02-02 21:49:40 +01:00
vramik
165791b1d7 Client Scopes: Ensure that parent's version ID is incremented when an attribute changes
Closes #9874
2022-02-02 21:49:22 +01:00
Alexander Schwartz
9d46b45a9c Ensure that parent's version ID is incremented when an attribute changes.
This is necessary to allow the optimistic locking functionality to work as expected when changing only attributes on an entity.

Closes #9874
2022-02-01 20:33:10 +01:00
vramik
13e02d5f09 JPA map storage: Client scope no-downtime store
Closes #9663
2022-02-01 20:26:00 +01:00
Michal Hajas
c648e121ed Convert authz entities into interfaces
Closes #9740
2022-01-31 13:51:56 +01:00
Alexander Schwartz
df7ddbf9b3 Added ModelIllegalStateException to handle lazy loading exception.
Closes #9645
2022-01-31 10:10:41 +01:00
Alexander Schwartz
2b81e62b6b Adding workaround for deadlock in tests for Infinispan 12.1.7
Closes #9648
2022-01-28 15:29:50 +01:00
bal1imb
9621d513b5 KEYCLOAK-18727 Improve user search query 2022-01-26 17:03:05 +01:00
Alexander Schwartz
9e257d4a01 Added warning when storage contains multi-valued attributes and Keycloak model doesn't support them.
Closes #9714
2022-01-26 15:40:00 +01:00
Michal Hajas
de161d02b9 Store updated flag in the entity, not in the delegate
Closes #9774
2022-01-26 15:24:42 +01:00
Alexander Schwartz
e2ac7b38f4 Adding missing database constraints for clients in JPA map storage.
This should ensure consistency for the store even in the event of concurrent creation of clients by multiple callers.

Closes #9610
2022-01-23 20:34:28 +01:00
vramik
873a44459a Convert MapClientScopeEntity to interface
Closes #9657
2022-01-23 16:56:25 +01:00
Martin Kanis
ddcabe61b2 KEYCLOAK-19571 Add indices to HotRodClientEntity fields 2022-01-20 17:46:47 +01:00
vramik
7b89d151c1 KEYCLOAK-18565 JPA roles no-downtime store 2022-01-20 12:02:35 +01:00
Guus der Kinderen
213b1f5042 Closes #9562: Add DB index for UserEntity getRealmUserByServiceAccount 2022-01-20 09:52:54 +01:00
vramik
61fbb2fb2e JPA-Map storage might loose writes due to missing locking mechanism
Closes #9411
2022-01-20 09:06:14 +01:00
vramik
22bcdcb630 MapRoleProvider could return also client roles when searching for realm roles
Closes #9587
2022-01-19 16:39:59 +01:00
Konstantinos Georgilakis
db0b36460f KEYCLOAK-19148 correct getGroupsCountByNameContaining of MapGroupProvider 2022-01-15 20:15:27 +01:00
Stefan Guilhen
2fd1593abf Set order of LiquibaseDBLockProviderFactory to 1
- makes it the default provider when no provider is explicitly configured
- avoid NPE at server startup when other providers are present and none is set as default
2022-01-13 08:30:25 +01:00
Dominik DS
93419a1797
KEYCLOAK-19289 check if values to set is not null (#8426)
Closes #9529
2022-01-12 09:22:01 +01:00
Michal Hajas
ab9413b48c Store user nested entities in Set instead of Map 2022-01-10 15:57:45 +01:00
Michal Hajas
9849df3757 Convert MapUserEntity to interface 2022-01-10 15:57:45 +01:00
Alexander Schwartz
9b18688ce2 fixes #9427 regex pattern is now pre-compiled 2022-01-08 17:30:54 +01:00
Martin Kanis
9d5355b7ad Upgrade Infinispan to 12.1.7.Final 2022-01-08 17:29:09 +01:00
Hynek Mlnařík
d39eb95705
Introduce per-field delegation of entities 2022-01-05 14:06:45 +01:00
vramik
dd3d7be2b4 Make JpaClientMapStorage generic
Closes #9244
2022-01-05 07:04:05 +01:00
andreaTP
4817e152e3 [ref: 8889] Annotation processor support for Java > 11 2022-01-04 21:26:07 +01:00
Stefan Guilhen
b12830ae4f 8947 - Add liquibase extension to handle JSON operations 2022-01-04 20:58:32 +01:00
Michal Hajas
96b2669a00 Refactoring of constructors for generated entities 2021-12-22 16:00:10 +01:00
vramik
009ca27a38 Make JsonbType generic
Closes #9165
2021-12-20 17:40:23 +01:00
keycloak-bot
9f3d4a7d42 Set version to 17.0.0-SNAPSHOT 2021-12-20 10:50:39 +01:00
vramik
44184ab0cb MapRoleProvider uses ILIKE operator when EQ operator should be used
Closes #9130
2021-12-16 10:31:43 +01:00
vramik
b4d720d615 Fix DB Migration Script to 13.0.0
Closes #9138
2021-12-15 14:00:29 +01:00
vramik
c6312e3308 KEYCLOAK-18717 KEYCLOAK-18716 KEYCLOAK-18715 KEYCLOAK-18713 KEYCLOAK-18712 KEYCLOAK-18711 JPA clients no-downtime store 2021-12-15 13:32:49 +01:00
vramik
848b170a96 Use DeepCloner.Builder().constructorDC in cases when possible
Closes #9141
2021-12-15 10:28:08 +01:00
vramik
e61da278ba When ternary conditional operator uses primitive type it could throw NPE in some cases
Closes #9137
2021-12-15 10:25:54 +01:00
Michal Hajas
5aa9a09b20 Closes #8969 - Add Groups HotRod storage 2021-12-13 18:12:19 +01:00
Hynek Mlnarik
8e03942e87 Enhance available tree operations
Fixes #9022
2021-12-13 18:05:45 +01:00
Hynek Mlnarik
3c7e5c8440 Create delegates and empty instances in DeepCloner
Fixes: #9030
2021-12-13 18:04:48 +01:00
Michal Hajas
fc237a8b63 Introduce ancestor interface for entities with attributes 2021-12-10 10:54:44 +01:00
Michal Hajas
7aaa33739b KEYCLOAK-19570 Add annotation processing for HotRod clients 2021-12-08 10:00:00 +01:00
Hynek Mlnarik
3602873df2 Introduce model-entity util methods
Fixes: #9025
2021-12-07 16:51:56 +01:00
vramik
783eecf612 Closes #8808 - Convert MapRoleEntity to interface 2021-12-01 15:50:26 +01:00
Kashif Saadat
d9bf511406 KEYCLOAK-19052: Optimised (split) the clearExpiredEvents query to reduce execution time 2021-11-30 22:25:55 +01:00
Michal Hajas
a5c3b83443 Closes #8807 - Make MapGroupEntity generated 2021-11-30 21:44:18 +01:00
Michal Hajas
158640d1f3 Closes #8954 - move Hot Rod classes to hotRod package 2021-11-30 11:52:16 +01:00
vramik
1adce39e1d 8886 Add alwaysDisplayInConsole searchable client field 2021-11-24 13:15:17 +01:00
vramik
6b8890f5dd KEYCLOAK-19525 Inconsistent creation of default-roles-<realm> 2021-11-23 21:30:12 +01:00
Martin Bartoš
1e1a6779be Issue 8814: Replace deprecated hamcrest-all dependencies 2021-11-23 13:56:28 +01:00
Michal Hajas
4291caff3c Fix Delegate bug 2021-11-16 19:47:59 +01:00
Michal Hajas
2f9a5aae0f KEYCLOAK-19028 Add HotRod Map storage implementation 2021-11-11 14:10:00 +01:00
Alec Henninger
cec6a8a884 KEYCLOAK-19700: Attempt to reuse denied device authorization code results in server error 2021-11-08 11:37:51 +01:00
Hynek Mlnarik
58d403cf24 KEYCLOAK-19726 Fix return types of ModelCriteriaBuilder methods 2021-11-05 16:39:40 +01:00
vramik
439e2e4288 KEYCLOAK-19763 fix MapClientProvider.getClientByClientId 2021-11-04 11:48:07 +01:00
Martin Kanis
9c287aff1f KEYCLOAK-19709 Remove MapStorage.createCriteriaBuilder 2021-11-03 20:05:29 +01:00
Hynek Mlnarik
6966e0cfe9 KEYCLOAK-19749 Optimize DefaultModelCriteria creation 2021-11-03 17:42:26 +01:00
Hynek Mlnarik
877ae96590 KEYCLOAK-18854 Introduce storage-independent ModelCriteriaBuilder 2021-10-29 19:21:45 +02:00
Martin Kanis
af97849feb KEYCLOAK-19030 Implement HotRodConnectionProvider 2021-10-27 14:07:19 +02:00
Hynek Mlnarik
53f02a50f6 KEYCLOAK-19562 Introduce generic trees 2021-10-25 13:28:48 +02:00
Michal Hajas
cfbb7f5553 KEYCLOAK-19593 Remove CRUD operations from MapStorage interface
Signed-off-by: Michal Hajas <mhajas@redhat.com>
2021-10-21 17:01:33 +02:00
Hynek Mlnarik
8ee992e638 KEYCLOAK-19482 Generate map entity cloners 2021-10-18 13:14:14 +02:00
Martin Kanis
d069ec7949 KEYCLOAK-18737 Show sessions functionality does not work consistently
Co-authored-by: Pavel Bezdienezhnykh
Co-authored-by: Martin Kanis <mkanis@redhat.com>
2021-10-13 14:04:14 +02:00
vramik
dacf28af84 KEYCLOAK-19536 Removal of client creates new instance of provider for each client role 2021-10-13 13:05:18 +02:00
Hynek Mlnarik
675e1b0941 KEYCLOAK-19505 Generate map entity delegates 2021-10-12 14:04:21 +02:00
Bart Monhemius
5b0986e490 [KEYCLOAK-18891] Add support for searching users by custom user attributes
Users can now be searched by custom attributes using 'q' in the query parameters. The implementation is roughly the same as search clients by custom attributes.
2021-10-12 13:08:47 +02:00
Hynek Mlnarik
576292a662 KEYCLOAK-19480 Introduce MapProtocolMapperEntity 2021-10-11 14:05:32 +02:00
Michal Hajas
6e591305f9 KEYCLOAK-19481 Make Id and RealmId mutable fields 2021-10-08 20:18:58 +02:00
Hynek Mlnarik
3abf9283a8 KEYCLOAK-19374 Create implementation based on annotation processor
Use of boxed types as started in 009d4ca445 is finalized here
to enable storing data in a map. MapClientEntity methods are
reordered for the sake of grouping the collection-based
properties together and understanding the connections between those.
2021-10-07 10:54:25 +02:00
Martin Kanis
30b3caee9f KEYCLOAK-18445 Add support for cross-site model tests 2021-10-06 14:37:06 +02:00
Michal Hajas
da0c945475 KEYCLOAK-18940 Add support for searching composite roles 2021-10-01 12:41:19 +02:00
Daniel Fesenmeyer
0a2f8f5b63 KEYCLOAK-17887 fix endpoint for creating or updating realm localization texts for a given locale (UnsupportedOperation was thrown because RealmAdapter tried to change unmodifiable map):
- fix RealmAdapter to create a new map instead of trying to change unmodifiable map
- only provide POST endpoints for creating or updating the texts (to have the endpoints consistent with other Admin API endpoints)
- add tests
2021-09-30 15:07:56 +02:00
stianst
f471a110cd KEYCLOAK-19408 Better client secrets 2021-09-29 18:19:43 +02:00
Martin Kanis
d606da9065 KEYCLOAK-18981 Infinispan: prevent fetching all sessions from remotes 2021-09-29 14:53:07 +02:00
Sven-Torben Janus
7c0d10130e KEYCLOAK-18981 Infinispan: prevent fetching all sessions from remotes 2021-09-24 17:34:01 +02:00
Pedro Igor
10e425315f [KEYCLOAK-19274] - Avoid loading queries from properties at runtime for Dist.X 2021-09-24 09:26:43 +02:00
Daniel Fesenmeyer
339224578e KEYCLOAK-10603 adjust assignments to roles (user-role and group-role assignments, client-scope and client "scope mappings"): allow assignments of roles which are already indirectly assigned (e.g. by composite role)
- extend RoleMapperModel with method hasDirectRole(RoleModel), which only checks for direct assignment in contrast to the existing method hasRole(RoleModel)
- extend ScopeContainerModel with method hasDirectScope(RoleModel), which only checks for direct scope mapping in contrast to the existing method hasScope(RoleModel)
- use the new hasDirectRole and hasDirectScope methods to check whether a role is in the "available" list and whether it can be assigned (previously, the hasRole method was used for this purpose)
- add hint to UI that available roles contain effectively assigned roles which are not directly assigned
- adjust and extend tests
2021-09-22 13:56:29 +02:00
Luca Graf
2c22ccbf97 KEYCLOAK-19286 Use client storage provider id to construct client StorageId, so that a valid 'external' client id will be generated. 2021-09-20 19:43:20 +02:00
Dominik
4090114398 KEYCLOAK-16246 Revert changes from workaround made in KEYCLOAK-16244 after upgrading to quarkus 2
Also fixed a small type in testclass.
This reverts commit 9b2f2015f7.
2021-09-16 15:42:48 -03:00
rmartinc
47484c1aed KEYCLOAK-18842: deleteExpiredClientSessions very slow on MariaDB 2021-09-10 08:25:33 +02:00
vramik
d216f8f748 KEYCLOAK-19104 Add custom ForeignKeySnapshotGenerator 2021-09-02 09:59:26 +02:00
Martin Kanis
6886bd6651 KEYCLOAK-18941 ExecutionException when computed future - InfinispanCacheInitializer 2021-08-05 18:28:27 +02:00
Hynek Mlnarik
2acb43a627 KEYCLOAK-18617 Fix index on client attributes 2021-08-05 15:35:55 +02:00
keycloak-bot
262ec3d031 Set version to 16.0.0-SNAPSHOT 2021-07-30 14:56:10 +02:00
Hynek Mlnarik
0cdce1340d KEYCLOAK-18680 Always close result stream 2021-07-30 09:40:39 +02:00
Hynek Mlnarik
8889122dc1 KEYCLOAK-18845 Remove key type in map storage (simplify generics) 2021-07-23 17:04:20 +02:00
Hynek Mlnarik
07402d9aac KEYCLOAK-18845 Remove key type in map storage (move StringKeyConvertor to CHM) 2021-07-23 17:04:20 +02:00
Hynek Mlnarik
44cd6cd5fb KEYCLOAK-18824 Simplify MapStorageTransaction and move registerEntityForChanges to CHM transaction 2021-07-21 20:58:26 +02:00
Pedro Igor
d29d945cc4 [KEYCLOAK-18857] - Do not force default to RS256 when verifying tokens sent by clients and JWK does not hold an algorithm 2021-07-21 11:09:02 +02:00
Hynek Mlnarik
1f3650dcd9 KEYCLOAK-18815 Update MapKeycloakTransaction return types to match MapStorage 2021-07-20 21:48:27 +02:00
Hynek Mlnarik
009d4ca445 KEYCLOAK-18747 Turn MapClientEntity into interface + introduce delegates
Given that the Map*Entity is turned into an interface, it makes more sense
to use non-primitive types to allow for null values. This enables signalizing
that an entity does not define a particular value, and builds a base for definition
of instances with defaults: If a value is not present in the queried instance
(i.e. is `null`), the value would be obtained from a delegate containing
the defaults.
2021-07-17 15:45:46 +02:00
bal1imb
fbaeb18a5f KEYCLOAK-18471 Added ID to admin event object. 2021-07-16 12:46:07 +02:00
mhajas
dc1c9b944f KEYCLOAK-18370 Introduce QueryParameters 2021-07-15 13:25:31 +02:00
Daniel Fesenmeyer
a25c70784c KEYCLOAK-18467 support unicode for realm localization texts 2021-07-15 10:30:42 +02:00
vramik
a8fdd79d1b KEYCLOAK-17763 Inefficient call to ClientProvider.getClientsStream() 2021-07-12 11:51:15 +02:00