Skip to content

Add RFC 7643 SCIM core schema support - #2258

Open
sdelamo wants to merge 1 commit into
5.4.xfrom
scim-core
Open

Add RFC 7643 SCIM core schema support#2258
sdelamo wants to merge 1 commit into
5.4.xfrom
scim-core

Conversation

@sdelamo

@sdelamo sdelamo commented Jul 22, 2026

Copy link
Copy Markdown
Member

RFC 7643

Introduce the security-scim-core module with Java models for SCIM User, Group, enterprise User extensions, and discovery resources.

Add Micronaut Serialization and Jakarta Validation support, including schema URI handling and custom extensions. Cover every serializable model with introspection, validation, and RFC-derived JSON deserialization tests.

Document installation, resource models, schema extensions, discovery resources, and the boundary between RFC 7643 models and RFC 7644 protocol operations.

Every class is currently annotated with @experimental.

[RFC 7643](https://datatracker.ietf.org/doc/html/rfc7643)

Introduce the security-scim-core module with Java models for SCIM User, Group, enterprise User extensions, and discovery resources.

Add Micronaut Serialization and Jakarta Validation support, including schema URI handling and custom extensions. Cover every serializable model with introspection, validation, and RFC-derived JSON deserialization tests.

Document installation, resource models, schema extensions, discovery resources, and the boundary between RFC 7643 models and RFC 7644 protocol operations.

Every class is currently annotated with @experimental.
Copilot AI review requested due to automatic review settings July 22, 2026 07:03

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@sdelamo

sdelamo commented Jul 22, 2026

Copy link
Copy Markdown
Member Author

@graemerocher there is an open source Java library for SCIM which we could use instead. However, it is coupled to Jackson Databind

@sdelamo
sdelamo requested a review from graemerocher July 22, 2026 07:05
@sdelamo sdelamo added the type: enhancement New feature or request label Jul 22, 2026
@sonarqubecloud

Copy link
Copy Markdown

@sdelamo
sdelamo requested a review from radovanradic July 22, 2026 08:20
@sdelamo sdelamo removed this from 5.1.0 Release Jul 27, 2026
@graemerocher
graemerocher requested a lite review from Copilot September 2, 2026 14:22

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Warning

Copilot couldn't run its full agentic review because it didn't start before the timeout. Make sure your repository has a runner available, or add a copilot-code-review.yml file specifying one with the runs-on attribute. See the docs for more details.

Pull request overview

Copilot reviewed 65 out of 65 changed files in this pull request and generated 7 comments.

}
micronautBuild {
binaryCompatibility.enabledAfter("5.4.0")
testFramework = TestFramework.JUNIT6
if (!validated.contains(primarySchema)) {
throw new IllegalArgumentException("schemas must contain the primary schema " + primarySchema);
}
this.schemas = new ArrayList<>(validated);
Comment on lines +107 to +112
public void addSchema(String schema) {
String validated = requireAbsoluteUri(schema);
if (!schemas.contains(validated)) {
schemas.add(validated);
}
}
Comment on lines +121 to +127
public boolean removeSchema(String schema) {
if (primarySchema.equals(schema)) {
return false;
}
extensions.remove(schema);
return schemas.remove(schema);
}
@Nullable
@JsonIgnore
public Object getExtension(String schema) {
return extensions.get(schema);
@@ -0,0 +1,82 @@
package io.micronaut.security.scim.core;
*/
protected ScimResource(String primarySchema) {
this.primarySchema = requireAbsoluteUri(primarySchema);
this.schemas = new ArrayList<>(List.of(primarySchema));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

type: enhancement New feature or request

Projects

Status: Backlog

Development

Successfully merging this pull request may close these issues.

2 participants