Skip to content
Merged
Show file tree
Hide file tree
Changes from 16 commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
cd09b3e
update apache felix to 7.0.5
maximthomas Jul 14, 2025
112b66e
jetty exclude optional deps
maximthomas Jul 15, 2025
fa86d03
change pax-web-jetty-bundle to pax-web-jetty
maximthomas Jul 16, 2025
dd87278
restore openidm-ui
maximthomas Jul 17, 2025
6f03df0
Suppress warnings of failed error page model validation
maximthomas Jul 17, 2025
241e850
Merge branch 'master' into update-pax8
maximthomas Jul 21, 2025
9e67627
move jetty version to properties
maximthomas Jul 22, 2025
74f4423
Fix No SLF4J providers were found for SLF4J 2
maximthomas Jul 23, 2025
d6d4a5f
Update to PAX 9 initial commit
maximthomas Jul 23, 2025
ed8f727
pax web 10 initial commit
maximthomas Jul 23, 2025
edb5091
pax web 11 initial commit
maximthomas Jul 29, 2025
443af7e
Migrate to OSGI compliant bundles
maximthomas Jul 29, 2025
0992f35
Set min JDK 17 in GitHub workflows
maximthomas Jul 30, 2025
de63d6b
Set maven compiler version to 17 and remove deprecated profiles
maximthomas Jul 31, 2025
5a934a4
Add SECURITY.md
maximthomas Jul 31, 2025
84e10b3
Set project version to 7.0.0
maximthomas Jul 31, 2025
9aa815a
Update SECURITY.md
maximthomas Aug 4, 2025
730dbb8
Update SECURITY.md
maximthomas Aug 4, 2025
4303c73
Update Docker Alpine image to JDK 17
maximthomas Aug 4, 2025
63f37fa
Update OpenICF to 2.0.0
maximthomas Aug 4, 2025
430b917
restore openidm-ui
maximthomas Aug 4, 2025
74b7207
restore openidm-ui
maximthomas Aug 4, 2025
f0174d2
Set bunlde version range to [2.0.0.0,3)
maximthomas Aug 4, 2025
4deb41f
Update README.md
maximthomas Aug 4, 2025
cfbbc50
remove deprecated platforms for Docker Alpine image
maximthomas Aug 5, 2025
a8d10eb
fix Docker Alpine image build
maximthomas Aug 5, 2025
113bae3
Merge branch 'master' into update-pax11
maximthomas Aug 5, 2025
6cc14fc
update asm version to 9.8 to deal with JDK 24
maximthomas Aug 6, 2025
33c2989
fix documentation build
maximthomas Aug 6, 2025
2d03baa
documentation update
maximthomas Aug 11, 2025
c83dbee
Set min Java version in the README.md
maximthomas Aug 12, 2025
bda2931
Update SECURITY.md
vharseko Aug 12, 2025
b55ca7f
Merge branch 'master' into update-pax11
vharseko Sep 17, 2025
38447ab
Merge branch 'master' into update-pax11
vharseko Sep 18, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
java: [ '8', '11', '17', '21', '24' ]
java: [ '17', '21', '24' ]
os: [ 'ubuntu-latest', 'macos-latest', 'windows-latest' ]
fail-fast: false
steps:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ jobs:
- name: Set up Java for publishing to Maven Central Repository OSS
uses: actions/setup-java@v4
with:
java-version: '8'
java-version: '17'
distribution: 'temurin'
server-id: ossrh
server-username: MAVEN_USERNAME
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ jobs:
- name: Set up Java for publishing to Maven Central Repository OSS
uses: actions/setup-java@v4
with:
java-version: '8'
java-version: '17'
distribution: 'temurin'
server-id: ossrh
server-username: MAVEN_USERNAME
Expand Down
18 changes: 18 additions & 0 deletions SECURITY.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Security Policy

## Supported Versions

Use this section to tell people about which versions of your project are
currently being supported with security updates.

| Version | Java Versions Support | EE | Supported |
|------------------------------------|-----------------------|------------|-----------------------------------------------|
| Open Identity Platform OpenIDM 7.x | 17 and later | Jakarta EE | :white_check_mark: |
| Open Identity Platform OpenIDM 6.x | 8 and later | Java EE | :white_check_mark: |
| Open Identity Platform OpenIDM 5.x | 8 and later | Java EE | :white_check_mark: |
| ForgeRock OpenIDM 5.x | 8 and later | Java EE | :x: upgrade to Open Identity Platform OpenIDM |
| ForgeRock OpenIDM 4.x | 1.7, 8 and later | Java EE | :x: upgrade to Open Identity Platform OpenIDM |

## Reporting a Vulnerability

Please create issue https://github.com/OpenIdentityPlatform/OpenIDM/issues/new?template=Bug_report.md
12 changes: 3 additions & 9 deletions custom-scripted-connector-bundler/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -29,12 +29,12 @@
<parent>
<groupId>org.openidentityplatform.openidm</groupId>
<artifactId>openidm-project</artifactId>
<version>6.3.1-SNAPSHOT</version>
<version>7.0.0-SNAPSHOT</version>
</parent>

<groupId>org.openidentityplatform.openidm.tools</groupId>
<artifactId>custom-scripted-connector-bundler</artifactId>
<version>6.3.1-SNAPSHOT</version>
<version>7.0.0-SNAPSHOT</version>
<name>OpenIDM Custom Scripted Groovy Connector Bundler</name>
<description>This is a tool to bundle the Groovy connector using configured bundle name and configuration
parameters without the user needing to write connector code manually (aside from the Groovy scripts).
Expand Down Expand Up @@ -94,13 +94,7 @@
<dependency>
<groupId>com.github.jknack</groupId>
<artifactId>handlebars</artifactId>
<version>2.0.0</version>
<exclusions>
<exclusion>
<groupId>org.mozilla</groupId>
<artifactId>rhino</artifactId>
</exclusion>
</exclusions>
<version>4.4.0</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
Expand Down
8 changes: 4 additions & 4 deletions openidm-api-servlet/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -13,14 +13,14 @@
~ information: "Portions copyright [year] [name of copyright owner]".
~
~ Copyright 2013-2016 ForgeRock AS.
~ Portions Copyrighted 2024 3A Systems LLC.
~ Portions Copyrighted 2024-2025 3A Systems LLC.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.openidentityplatform.openidm</groupId>
<artifactId>openidm-project</artifactId>
<version>6.3.1-SNAPSHOT</version>
<version>7.0.0-SNAPSHOT</version>
</parent>
<artifactId>openidm-api-servlet</artifactId>
<packaging>bundle</packaging>
Expand Down Expand Up @@ -94,8 +94,8 @@

<!-- Provided Dependencies -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<groupId>jakarta.servlet</groupId>
<artifactId>jakarta.servlet-api</artifactId>
<scope>provided</scope>
</dependency>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,21 +12,21 @@
* information: "Portions copyright [year] [name of copyright owner]".
*
* Copyright 2016 ForgeRock AS.
* Portions Copyrighted 2024 3A Systems LLC.
* Portions Copyrighted 2024-2025 3A Systems LLC.
*/

package org.forgerock.openidm.servlet.internal;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;

import java.io.IOException;
import java.util.Dictionary;
import java.util.Hashtable;

import org.eclipse.jetty.servlet.ErrorPageErrorHandler;
import org.eclipse.jetty.ee10.servlet.ErrorPageErrorHandler;
import org.forgerock.openidm.jetty.JettyErrorHandler;
import org.forgerock.openidm.servletregistration.ServletRegistration;
import org.ops4j.pax.web.service.WebContainer;
Expand All @@ -36,7 +36,7 @@
import org.osgi.service.component.annotations.ConfigurationPolicy;
import org.osgi.service.component.annotations.Deactivate;
import org.osgi.service.component.annotations.Reference;
import org.osgi.service.http.NamespaceException;
import org.ops4j.pax.web.service.http.NamespaceException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

Expand Down Expand Up @@ -81,14 +81,14 @@ protected void doGet(final HttpServletRequest request, final HttpServletResponse
logger.info("Registered servlet at {}", ERROR_SERVLET_ALIAS);

httpService.registerErrorPage(ErrorPageErrorHandler.GLOBAL_ERROR_PAGE, ERROR_SERVLET_ALIAS,
httpService.getDefaultSharedHttpContext());
servletRegistration.getContext());
}

@Deactivate
protected synchronized void deactivate(ComponentContext context) {
servletRegistration.unregisterServlet(errorServlet);
httpService.unregisterErrorPage(ErrorPageErrorHandler.GLOBAL_ERROR_PAGE,
httpService.getDefaultSharedHttpContext());
servletRegistration.getContext());
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
* information: "Portions copyright [year] [name of copyright owner]".
*
* Copyright 2013-2016 ForgeRock AS.
* Portions Copyrighted 2024 3A Systems LLC.
* Portions Copyrighted 2024-2025 3A Systems LLC.
*/
package org.forgerock.openidm.servlet.internal;

Expand All @@ -27,8 +27,8 @@
import java.util.concurrent.CopyOnWriteArrayList;

import javax.script.ScriptException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServlet;

import org.forgerock.http.ApiProducer;
import org.forgerock.http.DescribedHttpApplication;
Expand Down Expand Up @@ -64,7 +64,7 @@
import org.osgi.service.event.Event;
import org.osgi.service.event.EventHandler;
import org.osgi.service.event.propertytypes.EventTopics;
import org.osgi.service.http.NamespaceException;
import org.ops4j.pax.web.service.http.NamespaceException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

Expand Down
2 changes: 1 addition & 1 deletion openidm-audit/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
<parent>
<groupId>org.openidentityplatform.openidm</groupId>
<artifactId>openidm-project</artifactId>
<version>6.3.1-SNAPSHOT</version>
<version>7.0.0-SNAPSHOT</version>
</parent>
<artifactId>openidm-audit</artifactId>
<packaging>bundle</packaging>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
* information: "Portions copyright [year] [name of copyright owner]".
*
* Copyright 2015-2016 ForgeRock AS.
* Portions copyright 2025 3A Systems LLC.
*/

package org.forgerock.openidm.audit.impl;
Expand All @@ -21,7 +22,7 @@
import static org.forgerock.json.resource.Requests.newReadRequest;
import static org.forgerock.util.promise.Promises.newResultPromise;

import javax.inject.Inject;
import jakarta.inject.Inject;

import org.forgerock.audit.Audit;
import org.forgerock.audit.AuditingContext;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
* information: "Portions copyright [year] [name of copyright owner]".
*
* Copyright 2015-2016 ForgeRock AS.
* Portions copyright 2025 3A Systems LLC.
*/
package org.forgerock.openidm.audit.impl;

Expand All @@ -23,7 +24,7 @@
import static org.forgerock.util.promise.Promises.newResultPromise;
import static org.forgerock.util.query.QueryFilter.equalTo;

import javax.inject.Inject;
import jakarta.inject.Inject;
import java.util.ArrayList;
import java.util.List;

Expand Down
4 changes: 2 additions & 2 deletions openidm-authnfilter/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
<parent>
<groupId>org.openidentityplatform.openidm</groupId>
<artifactId>openidm-project</artifactId>
<version>6.3.1-SNAPSHOT</version>
<version>7.0.0-SNAPSHOT</version>
</parent>
<artifactId>openidm-authnfilter</artifactId>
<name>OpenIDM Authentication Filter</name>
Expand Down Expand Up @@ -71,7 +71,7 @@
<!-- Third party dependencies -->
<dependency>
<groupId>org.ops4j.pax.web</groupId>
<artifactId>pax-web-jetty-bundle</artifactId>
<artifactId>pax-web-jetty</artifactId>
</dependency>

<!-- Forgerock commons dependencies -->
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
* information: "Portions copyright [year] [name of copyright owner]".
*
* Copyright 2013-2016 ForgeRock AS
* Portions Copyrighted 2024 3A Systems LLC.
* Portions copyright 2024-2025 3A Systems LLC.
*/

package org.forgerock.openidm.auth;
Expand All @@ -27,7 +27,7 @@
import static org.forgerock.openidm.auth.modules.IDMAuthModuleWrapper.*;
import static org.forgerock.openidm.idp.impl.IdentityProviderService.withoutClientSecret;

import javax.inject.Provider;
import jakarta.inject.Provider;
import java.io.UnsupportedEncodingException;
import java.security.Key;
import java.util.ArrayList;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,12 @@
* information: "Portions copyright [year] [name of copyright owner]".
*
* Copyright 2013-2015 ForgeRock AS.
* Portions copyright 2025 3A Systems LLC.
*/

package org.forgerock.openidm.auth;

import javax.inject.Provider;
import jakarta.inject.Provider;

import com.google.common.base.Function;
import org.forgerock.json.JsonValue;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,14 @@
* information: "Portions copyright [year] [name of copyright owner]".
*
* Copyright 2013-2015 ForgeRock AS.
* Portions copyright 2025 3A Systems LLC.
*/

package org.forgerock.openidm.auth;

import static org.forgerock.util.Reject.checkNotNull;

import javax.inject.Provider;
import jakarta.inject.Provider;

import org.forgerock.json.resource.ActionResponse;
import org.forgerock.json.resource.ConnectionFactory;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,14 @@
* information: "Portions copyright [year] [name of copyright owner]".
*
* Copyright 2011-2015 ForgeRock AS.
* Portions copyright 2024-2025 3A Systems LLC.
*/

package org.forgerock.openidm.auth;

import static org.forgerock.json.resource.ResourceException.newResourceException;

import org.eclipse.jetty.jaas.spi.UserInfo;
import org.eclipse.jetty.security.UserPrincipal;
import org.eclipse.jetty.util.security.Password;
import org.forgerock.json.crypto.JsonCryptoException;
import org.forgerock.json.resource.ConnectionFactory;
Expand All @@ -35,7 +36,7 @@

import java.util.HashSet;
import java.util.Set;
import javax.inject.Provider;
import jakarta.inject.Provider;

/**
* Authenticator class which performs authentication against managed/internal user tables using a queryId to fetch
Expand Down Expand Up @@ -111,11 +112,11 @@ public AuthenticatorResult authenticate(String username, String password, Contex
throw new InternalServerErrorException(jce.getMessage(), jce);
}
} else {
final UserInfo userInfo = getRepoUserInfo(username, resource);
final UserPrincipal userInfo = getRepoUserInfo(username, resource);
if (userInfo == null) {
// getResource already logged why
return AuthenticatorResult.FAILED;
} else if (userInfo.checkCredential(password)) {
} else if (userInfo.authenticate(password)) {
logger.debug("Authentication succeeded for {}", username);
return AuthenticatorResult.authenticationSuccess(resource);
}
Expand Down Expand Up @@ -159,7 +160,7 @@ private ResourceResponse getResource(String username, Context context) throws Re
return result.iterator().next(); // the retrieved resource
}

private UserInfo getRepoUserInfo(String username, ResourceResponse resource) throws ResourceException {
private UserPrincipal getRepoUserInfo(String username, ResourceResponse resource) throws ResourceException {
final CryptoService cryptoService = cryptoServiceProvider.get();
if (cryptoService == null) {
throw new InternalServerErrorException("No CryptoService available");
Expand All @@ -171,6 +172,6 @@ private UserInfo getRepoUserInfo(String username, ResourceResponse resource) thr
final String retrievedCred =
cryptoService.decryptIfNecessary(resource.getContent().get(userCredentialProperty)).asString();

return new UserInfo(username, new Password(retrievedCred), null);
return new UserPrincipal(username, new Password(retrievedCred));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
* information: "Portions copyright [year] [name of copyright owner]".
*
* Copyright 2014-2016 ForgeRock AS.
* Portions copyright 2025 3A Systems LLC.
*/

package org.forgerock.openidm.auth.modules;
Expand Down Expand Up @@ -213,7 +214,7 @@ private boolean usernameMatchesPatterns(String username) {
// This is currently Jetty specific
private X509Certificate[] getClientCerts(Context context) {
Map<String, Object> requestAttributes = context.asContext(AttributesContext.class).getAttributes();
Object checkCerts = requestAttributes.get("javax.servlet.request.X509Certificate");
Object checkCerts = requestAttributes.get("jakarta.servlet.request.X509Certificate");
if (checkCerts instanceof X509Certificate[]) {
return (X509Certificate[]) checkCerts;
} else {
Expand Down
2 changes: 1 addition & 1 deletion openidm-cluster/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
<parent>
<artifactId>openidm-project</artifactId>
<groupId>org.openidentityplatform.openidm</groupId>
<version>6.3.1-SNAPSHOT</version>
<version>7.0.0-SNAPSHOT</version>
</parent>
<artifactId>openidm-cluster</artifactId>
<packaging>bundle</packaging>
Expand Down
2 changes: 1 addition & 1 deletion openidm-config/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
<parent>
<groupId>org.openidentityplatform.openidm</groupId>
<artifactId>openidm-project</artifactId>
<version>6.3.1-SNAPSHOT</version>
<version>7.0.0-SNAPSHOT</version>
</parent>
<artifactId>openidm-config</artifactId>
<packaging>bundle</packaging>
Expand Down
Loading