私はSymfony 4アプリケーション用のメインファイアウォールを持っています。これは、DBからユーザーをロードし、すべての標準的なものであるログインフォームなどを使用するように構成されています。それはうまく動作します。Symfony:サブウェイ上の基本認証を許可する - 複数のファイアウォール
security:
encoders:
App\Entity\User:
algorithm: bcrypt
providers:
user_provider:
entity:
class: App\Entity\User
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
main:
pattern: ^/
provider: user_provider
anonymous: ~
form_login:
login_path: /login
check_path: /login
logout:
path: /logout
target: /login
access_control:
- { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/, roles: ROLE_ADMIN }
は、今私はイム苦労ところで、その中に動的な情報を持っている特定のルートに基本認証で追加する必要があります。
は、ここに私の現在のsecurity.yamlファイルです。例のURLは次のようになります。
http://myapp.com/repositories/%%username%%/directory/file.json
のでhttp://myapp.com/までの標準のログインフォームで固定し、認証されます。
リクエストが^/repositories/%% username %%の場合は、基本認証を使用する必要があります。
%% username %%は動的で、JSONでの応答となるファイルへのルートがわかります。基本認証は、実際にsymfonyのために認証を受ける必要はありません、それだけで利用できるようにする必要があり、それが正しい例外/レスポンスを返すことに失敗した場合:
array('fatal: Authentication failed', 'remote error: Invalid username or password.')
任意の助けもいただければ幸いです。
おかげ
** EDIT **
[OK]をみんなので、私は副経路のための私のフォームベース認証と一緒に基本認証を追加する方法を見つけ出すために管理しています。
ここでは、動的ルートの基本認証を有効にする方法を理解するだけです。
現在、次のsecurity.yamlにはhttp://myapp.com/repositoriesが含まれています。正常にログインすると、その下のすべてのルートにアクセスできます。
security:
encoders:
App\Entity\User:
algorithm: bcrypt
providers:
user_provider:
entity:
class: App\Entity\User
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
repos:
pattern: ^/repositories/
anonymous: ~
stateless: true
http_basic:
realm: "Toran Proxy Access"
main:
pattern: ^/
provider: user_provider
anonymous: ~
form_login:
login_path: /login
check_path: /login
logout:
path: /logout
target: /login
access_control:
- { path: ^/repositories/, roles: ROLE_ADMIN}
- { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/, roles: ROLE_ADMIN }
しかし、私が今する必要があることは制限/リポジトリ/ %%名%%基本認証を使用してのみ、特定の資格情報をこのディレクトリへのアクセス権を与えることです。
おかげ