Part-DB.Part-DB-server/config/packages/security.yaml

76 lines
2.9 KiB
YAML
Raw Permalink Normal View History

2019-02-23 16:49:38 +01:00
security:
2023-05-27 21:04:28 +02:00
# https://symfony.com/doc/current/security.html#registering-the-user-hashing-passwords
password_hashers:
Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface: 'auto'
2019-02-23 16:49:38 +01:00
providers:
# used to reload user from session & other features (e.g. switch_user)
app_user_provider:
entity:
class: App\Entity\UserSystem\User
property: name
2019-02-23 16:49:38 +01:00
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
main:
provider: app_user_provider
lazy: true
user_checker: App\Security\UserChecker
entry_point: App\Security\AuthenticationEntryPoint
2019-02-23 16:49:38 +01:00
2023-07-04 00:31:13 +02:00
# Enable user impersonation
switch_user: { role: CAN_SWITCH_USER }
custom_authenticators:
- App\Security\ApiTokenAuthenticator
two_factor:
auth_form_path: 2fa_login
check_path: 2fa_login_check
enable_csrf: true
2023-02-11 21:55:24 +01:00
login_throttling:
max_attempts: 5 # per minute
2019-02-23 16:49:38 +01:00
saml:
use_referer: true
user_factory: saml_user_factory
persist_user: true
check_path: saml_acs
login_path: saml_login
failure_path: login
2019-02-23 16:49:38 +01:00
# https://symfony.com/doc/current/security/form_login_setup.html
form_login:
login_path: login
check_path: login
enable_csrf: true
use_referer: true
default_target_path: '/'
logout:
path: logout
target: homepage
2019-02-23 16:49:38 +01:00
remember_me:
secret: '%kernel.secret%'
lifetime: 2592000 # 30 days in seconds
2019-02-23 16:49:38 +01:00
# Easy way to control access for large sections of your site
# Note: Only the *first* access control that matches will be used
access_control:
# This makes the logout route available during two-factor authentication, allows the user to cancel
- { path: ^/logout, role: PUBLIC_ACCESS }
# This ensures that the form can only be accessed when two-factor authentication is in progress
2019-12-29 13:35:30 +01:00
- { path: "^/\\w{2}/2fa", role: IS_AUTHENTICATED_2FA_IN_PROGRESS }
# We get into trouble with the U2F authentication, if the calls to the trees trigger an 2FA login
# This settings should not do much harm, because a read only access to show available data structures is not really critical
- { path: "^/\\w{2}/tree", role: PUBLIC_ACCESS }
# Restrict access to API to users, which has the API access permission
- { path: "^/api", allow_if: 'is_granted("@api.access_api") and is_authenticated()' }
# Restrict access to KICAD to users, which has API access permission
- { path: "^/kicad-api", allow_if: 'is_granted("@api.access_api") and is_authenticated()' }