Security
KraftAdmin supports two ways to secure the administration panel:
- Spring Security — used when your application already uses Spring Security.
- Built-in Basic Authentication — available when Spring Security is not being used.
KraftAdmin does not require a separate user database when your application already has an authentication system.
Spring Security
If your application uses Spring Security, KraftAdmin uses the authenticated user provided by Spring Security.
Your existing:
- Login flow
- Users
- Sessions
- Password policies
- JWT authentication
- OAuth2 configuration
continue to work as they already do.
KraftAdmin uses the authenticated user to determine whether they can access the administration panel.
Basic Authentication
If Spring Security is not available, KraftAdmin can use its built-in Basic Authentication.
Configure it in application.yml:
kraftadmin:
security:
basic-auth:
username: admin
password: change-this-password For example:
kraftadmin:
security:
basic-auth:
username: admin@example.com
password: your-secure-password Do not commit production passwords directly to your configuration files. Use environment variables or your application’s secret management system.
Session Expiry
KraftAdmin can control how long an authenticated administration session remains valid.
kraftadmin:
security:
session-expiry-minutes: 120 The default session expiry is configured in minutes.
Required Roles
You can restrict access to the administration panel based on user roles.
kraftadmin:
security:
required-roles:
- ROLE_ADMIN
- ROLE_SUPERUSER Only authenticated users with one of the configured roles can access KraftAdmin.
For example:
kraftadmin:
security:
required-roles:
- ROLE_ADMIN Users without the required role will be denied access.
Protected Routes
KraftAdmin can also protect application routes based on roles.
kraftadmin:
security:
protected-routes:
"/api/users/**":
- ROLE_SUPERUSER
"/api/settings/**":
- ROLE_ADMIN This allows different parts of an application to require different roles.
Session Cookie
The name of the authentication cookie can be customized.
kraftadmin:
security:
cookie-name: MY_ADMIN_SESSION For example:
kraftadmin:
security:
cookie-name: EVRY_ADMIN_SESSION This can be useful when running multiple applications or administration panels on the same domain.
Complete Security Configuration
kraftadmin:
security:
session-expiry-minutes: 120
required-roles:
- ROLE_ADMIN
- ROLE_SUPERUSER
protected-routes:
"/api/users/**":
- ROLE_SUPERUSER
"/api/settings/**":
- ROLE_ADMIN
cookie-name: KRAFTADMIN_SESSION
basic-auth:
username: admin@example.com
password: change-this-password Security Model
KraftAdmin follows a simple approach:
- If your application uses Spring Security, KraftAdmin uses the existing authentication system.
- If Spring Security is not available, Basic Authentication can be used.
- Access can be restricted using required roles.
- Specific application routes can be protected using route-specific roles.
- Session duration and the authentication cookie name can be configured.
KraftAdmin secures the administration experience without requiring a separate user system when your application already has one.