MidPoint overlays allow to heavily customize midPoint without the need to modify midPoint source code. This example serves two purposes:
-
to showcase simple GUI customization with a couple of new forms;
-
to be the canonical example for overlays, documenting the changes between versions, etc.
This example is described in this README below.
Following generic overlay points are documented in separate documents in this project:
Other overlay examples managed by Evolveum:
-
Custom SOAP service with contract-first (WSDL) approach and WS-Security authentication (based on CXF).
-
Custom SOAP service with code-first approach only using midPoint built-in basic authentication (based on CXF).
-
Custom REST service with CXF-based REST and (since 4.2) experimentally also simplified Spring MVC based REST endpoint.
Additional information about midPoint customizations with overlays are also available at this documentation page.
Changes for midPoint 4.8:
-
Adding
selfProfilePage
to admin gui configuration of900-role-superoperator.xml
.
Changes for midPoint 4.7:
-
None.
Changes for midPoint 4.6:
-
Spring Boot version 2.7.3 is used.
-
Overlay was overhauled to support JAR packaging instead of WAR packaging, that is not available anymore.
-
See also Release notes for midPoint 4.6.
Changes for midPoint 4.5:
-
Scanning for GUI components is now more focused and overlays using custom GUI components (like those annotated
@PanelType
in this project) need to tell midPoint what other packages to scan. See Customizing classpath scanning in Admin GUI Configuration guide for more information. -
For other changes see Release notes for midPoint 4.5.
Changes for midPoint 4.4.2:
-
More focused GUI component scanning was introduced in 4.4.2 as well, see the note in 4.5. This change was incorporated into support-4.4 branch of this overlay example.
Changes for midPoint 4.4:
-
Spring Boot version 2.5.2 is used.
-
Both Java 11 and 17 can be used for building and running midPoint and midPoint overlays.
-
Admin GUI configuration was changed significantly.
-
Spring Boot repackage now again uses custom
layoutFactory
based onmidpoint-boot-layout
(see the POM file). This encapsulates implementation details around setting themidpoint.home
and loading custom libraries from${midpoint.home}/lib
. -
See also Release notes for midPoint 4.4.
Since 4.6, JDK 17 is now used for overlays just as recommended for midPoint.
To build this example use JDK 11 and run (in the root of the repository):
mvn clean package java -jar target/midpoint.jar
Wait until the midPoint starts - you can check the progress in another terminal with:
tail -f ~/midpoint/log/midpoint.log
To run in an IDE choose com.evolveum.midpoint.web.boot.MidPointSpringApplication
as the main class.
Be sure to add "provided" scope to the classpath in the run configuration.
To see the customized forms:
-
In your browser open: http://localhost:8080
-
Log in as user
operator
with the password5ecr3t
. -
Try to edit any user or just click Profile.
You will see the completely customized form (implemented in ExtendedFormFocusTabPanel
):
There is also the custom form for editing an organization (class ConfigurationTableTabPanel
):
Read Admin GUI Configuration
guide for more information about GUI customization.
Notice also src/main/resources/application-default.yml
file that configures additional packages
for GUI component scanning which is necessary since versions 4.5 (and 4.4.2 for LTS version).
See Customizing classpath scanning
in Admin GUI Configuration guide for more information.
This overlay demonstrates usage of both custom schema extension and custom initial objects.
For details see the respective sections in Overlay development.