Manage OERealm security domains and roles in the database
- Last Updated: February 11, 2026
- 5 minute read
- OpenEdge
- Version 13.0
- Documentation
To validate a user’s identity, specific security components must be in place. You need to:
- Create a suitable domain for the user.
- Define roles that can be granted to control access to specific areas of the application.
This can be accomplished using the DataAdmin API within ABL to interact with the database. The API allows you to check for existing users, domains, roles, and grants, and create them if they do not already exist.
Key terms and values
- Domain Name
A new security domain, for example
"MyAppDomain", will be associated with authenticated clients. If a username provided to the OERealm authentication process does not include an “@” portion, this domain will be automatically appended. -
Domain Access Code
The Domain Access Code in this example is"s3cretp4ssword". When creating a Client-Principal for a user in a specific domain, it must be sealed and validated using that domain’s access code. Verify the same access code is consistently configured wherever required.Note: The OpenEdge database includes a built-in blank domain with a blank access code. It is recommended to disallow this blank access code in production environments. - Granted Roles
Roles allow PAS for OpenEdge to return the appropriate security role for a user. ABL web applications define roles in their security templates, which specify access rights for URIs within the application.
By default, the oeablSecurity.csv template uses roles such as
"ROLE_PSCUser"to grant access to URI patterns. When the OERealm service interface returns a user’s roles, Spring Security prefixes them withROLE_when using default templates.Two tables manage roles and grants:
_sec-roleand_sec-granted-role. Each entry must include a user identifying the creator or grantor.
Sample CreateDomain.p
Copy the following procedural code into a file named CreateDomain.p, then run it using one of these commands:
If the database is being served in a multi-user mode:
|
If the database is at rest in single-user mode:
|
Procedure source code:
|
Restart the PAS for OpenEdge instance
After configuring the OERealm ABL Service Interface, Spring Security settings, and database domains as described, restart the PAS for OpenEdge instance to apply the new OERealm-based security model.
If you are using the “RealmExample” PAS for OpenEdge instance mentioned earlier, run the following command:
|
Service testing and troubleshooting
After configuring the authentication service and restarting the PAS for OpenEdge instance, you can test the setup by visiting:
|
If the login succeeds, the REST service will return an HTTP response containing a JSESSIONID cookie. This cookie identifies the authenticated user and can be used in subsequent requests to the server.
If the service does not respond as expected, check the logs in CATALINA_BASE/logs.
Look for these files in the CATALINA_BASE/logs directory for potential errors or useful information:
- app_name.agent.date.log
- app_name.authn.date.log
- app_name.date.log
To log out and invalidate the JSESSIONID cookie (ending the client session), visit:
|
For more information, see OERealm security considerations.