mirror of
https://github.com/kevinpapst/kimai2.git
synced 2024-12-22 12:18:29 +00:00
9e3d243b4b
* allow to skip locales (here: catalan) * use enabled_locales and replace app_locales with kimai_locales * added test to call all reports once for super_admin
111 lines
3.5 KiB
YAML
111 lines
3.5 KiB
YAML
security:
|
|
password_hashers:
|
|
App\Entity\User: auto
|
|
|
|
providers:
|
|
chain_provider:
|
|
chain:
|
|
providers: [kimai_internal,kimai_ldap]
|
|
kimai_internal:
|
|
entity:
|
|
class: App\Entity\User
|
|
kimai_ldap:
|
|
id: App\Ldap\LdapUserProvider
|
|
|
|
firewalls:
|
|
dev:
|
|
pattern: ^/(_(profiler|wdt)|css|images|js)/
|
|
security: false
|
|
|
|
api:
|
|
access_token:
|
|
token_handler: App\API\Authentication\AccessTokenHandler
|
|
success_handler: App\API\Authentication\AccessTokenSuccessHandler
|
|
remember_me: false
|
|
request_matcher: App\API\Authentication\ApiRequestMatcher
|
|
user_checker: App\Security\UserChecker
|
|
stateless: true
|
|
remember_me: false
|
|
provider: chain_provider
|
|
custom_authenticators:
|
|
- App\API\Authentication\TokenAuthenticator
|
|
|
|
secured_area:
|
|
kimai_ldap: ~
|
|
pattern: ^/
|
|
user_checker: App\Security\UserChecker
|
|
stateless: false
|
|
|
|
entry_point: form_login
|
|
|
|
custom_authenticators:
|
|
- App\Saml\SamlAuthenticator
|
|
|
|
remember_me:
|
|
secret: '%kernel.secret%'
|
|
lifetime: 604800
|
|
path: /
|
|
always_remember_me: true
|
|
|
|
# activate all configured user provider
|
|
provider: chain_provider
|
|
|
|
form_login:
|
|
check_path: security_check
|
|
login_path: login
|
|
enable_csrf: true
|
|
|
|
two_factor:
|
|
auth_form_path: 2fa_login
|
|
check_path: 2fa_login_check
|
|
remember_me_sets_trusted: true
|
|
|
|
logout:
|
|
path: logout
|
|
target: homepage
|
|
enable_csrf: false
|
|
|
|
login_throttling:
|
|
max_attempts: 5
|
|
interval: '5 minutes'
|
|
|
|
login_link:
|
|
check_route: link_login_check
|
|
signature_properties: ['id']
|
|
lifetime: 900
|
|
max_uses: 3
|
|
|
|
access_decision_manager:
|
|
# only grants access if there is no voter denying access
|
|
strategy: unanimous
|
|
allow_if_all_abstain: false
|
|
|
|
role_hierarchy:
|
|
ROLE_USER: ~
|
|
ROLE_TEAMLEAD: ROLE_USER
|
|
ROLE_ADMIN: ROLE_TEAMLEAD
|
|
ROLE_SUPER_ADMIN: ROLE_ADMIN
|
|
|
|
access_control:
|
|
- { path: '^/auth/2fa', role: IS_AUTHENTICATED_2FA_IN_PROGRESS }
|
|
- { path: '^/auth', roles: PUBLIC_ACCESS }
|
|
- { path: '^/{_locale}$', role: PUBLIC_ACCESS }
|
|
- { path: '^/{_locale}/auth', role: PUBLIC_ACCESS }
|
|
- { path: '^/{_locale}/login', role: PUBLIC_ACCESS }
|
|
- { path: '^/{_locale}/register', role: PUBLIC_ACCESS }
|
|
- { path: '^/{_locale}/resetting', role: PUBLIC_ACCESS }
|
|
- { path: '^/{_locale}/', roles: ROLE_USER }
|
|
- { path: '^/api', roles: IS_AUTHENTICATED }
|
|
|
|
when@test:
|
|
# this configuration simplifies testing URLs protected by the security mechanism
|
|
# See https://symfony.com/doc/current/cookbook/testing/http_authentication.html
|
|
security:
|
|
password_hashers:
|
|
App\Entity\User:
|
|
algorithm: auto
|
|
# see https://github.com/symfony/recipes/pull/1026
|
|
cost: 4 # Lowest possible value for bcrypt
|
|
time_cost: 3 # Lowest possible value for argon
|
|
memory_cost: 10 # Lowest possible value for argon
|