How to configure security with the Spring Boot Starter
When using the Spring Boot Starter, security is configured through properties:Security type options
| Value | Description |
|---|---|
spring | Uses Spring Security context for user authentication. This is the default. |
none | No security checks are performed. All operations are allowed for all users. |
custom | You provide your own IDatabaseSimulationsSecurityManager bean. |
Disabling branch permissions
By default, the security manager delegates branch-level permission checks to the Atoti Server branch permissions manager. To disable this:What are Atoti Server branches?
Atoti Server uses branches to isolate data changes. Each branch can have:- Owners: Users who can modify or delete the branch.
- Readers: Users who can view the branch.
How are simulations secured in Atoti What-If?
Simulations are grouped by branch and secured using anIDatabaseSimulationsSecurityManager. Two built-in managers are available:
NoOpDatabaseSimulationsSecurityManager
- Allows all actions for every user.
- Intended for testing only.
- Enabled by setting
atoti.what-if.security.type: none.
SpringDatabaseSimulationsSecurityManager
- Integrates with Spring Security.
- Checks user roles.
- Delegates branch-level checks to the Atoti Server branch permissions manager.
- Enabled by default, or by setting
atoti.what-if.security.type: spring.
- Any user can create simulations.
- Only the creator or users with
ROLE_ADMINcan update, delete, or execute simulations.
How do I implement custom simulation permissions?
You can customize permissions by extending the Spring-based manager or implementing your own. When using the Spring Boot Starter with a custom security manager, setatoti.what-if.security.type: custom and provide your bean. See How to customize auto-configured beans for details.
Option 1: Extend SpringDatabaseSimulationsSecurityManager
Use the setDatabaseSimulationsRoles method to define role-based access: