Защита Symfony с помощью базовой аутентификации HTTP - PullRequest
0 голосов
/ 26 сентября 2018

У меня есть существующий сайт, созданный с помощью Symfony 2.8, и я хотел бы добавить дополнительный уровень безопасности, включив HTTP Basic Auth , только если для параметра установлено значение true в parameters.yml.Возможно ли это?

На сайте уже включена форма входа в систему, но я бы хотел полностью скрыть сайт с базовой аутентификацией, если параметр true.

Это мой security.yml:

main:
    pattern:             .*
    context:             user
    form_login:
        provider:       fos_userbundle
        login_path:     /user/login
        use_forward:    false
        check_path:     /user/login_check
        failure_path:   null
        default_target_path: /
    logout:
        path:           /user/logout
        target:         /user/login
    anonymous:          true

1 Ответ

0 голосов
/ 26 сентября 2018

Поскольку я не хотел вмешиваться в существующую аутентификацию, я использовал Apache:

<VirtualHost *:80>
    ServerName mysite.com
    ServerAlias www.mysite.com

    DocumentRoot /var/www/html/mysite/current/web
    <Directory /var/www/html/mysite/current/web>
        AllowOverride None
        Order Allow,Deny
        Allow from All

        FallbackResource /app.php

        # THIS IS THE INTERESTING PART
        # --->
        AuthType Basic
        AuthName "Restricted Content"
        AuthUserFile /etc/apache2/.htpasswd
        Require valid-user
        # <---
    </Directory>

    # uncomment the following lines if you install assets as symlinks
    # or run into problems when compiling LESS/Sass/CoffeeScript assets
    # <Directory /var/www/project>
    #     Options FollowSymlinks
    # </Directory>

    # optionally disable the fallback resource for the asset directories
    # which will allow Apache to return a 404 error when files are
    # not found instead of passing the request to Symfony
    <Directory /var/www/html/mysite/current/web/bundles>
        FallbackResource disabled
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/mysite_error.log
    CustomLog ${APACHE_LOG_DIR}/mysite_access.log combined
</VirtualHost>

Я создал HTTP-пользователей и пароль с помощью этой команды:

sudo htpasswd -c /etc/apache2/.htpasswd stage

The -c аргументы должны быть указаны только при первом создании файла.

Для получения дополнительной информации: https://www.digitalocean.com/community/tutorials/how-to-set-up-password-authentication-with-apache-on-ubuntu-14-04

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...