私は Symfony2 を初めて使用し、上記のバンドルを使用して LDAP に接続しようとしています。ただし、不正な資格情報エラーが発生し続けます。理由がわかりません..
私の Security.yml ファイルは次のようになります。
security:
firewalls:
restricted_area:
pattern: ^/login
anonymous: ~
imag_ldap:
check_path: login_check
login_path: login
csrf_provider: form.csrf_provider
intention: authenticate
provider: ldap
logout:
path: /logout
target: /
providers:
ldap:
id: imag_ldap.security.user.provider
encoders:
IMAG\LdapBundle\User\LdapUser: plaintext
access_control:
- { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/, roles: IS_AUTHENTICATED_FULLY }
imag_ldap:
client:
host: someip
port: 389
# version: 3 # Optional
# username:
# password:
# network_timeout:
# referrals_enabled:
# bind_username_before:
# skip_roles:
user:
base_dn: dc=some, dc=dom, dc=ain
# filter: null
name_attribute: uid
# attributes:
role:
base_dn: dc=some, dc=dom, dc=ain
# filter: null #Optional
name_attribute: cn
user_attribute: member
# user_id: [ dn or username ] #Default dn
私のルートは次のとおりです。
login:
pattern: /login
defaults: { _controller: IMAGLdapBundle:Default:login }
requirements:
_method: GET
login_check:
pattern: /login_check
logout:
pattern: /logout
実際に接続しているかどうかをテストできないようですが、接続しようとするとhttp://domain/app_dev.php/check_login
次のエラーが表示されます。
Unable to find the controller for path "/login_check". Maybe you forgot to add the matching route in your routing configuration?
ルートを追加する必要があると思いますが、わかり/login_check
ません。もしそうなら、どのように私はldap接続を呼び出すのですか?
編集
OK 私は手を握る必要があると思います.. security.yml を次のように変更しました:
security:
firewalls:
login_firewall:
pattern: ^/login$
anonymous: ~
imag_ldap:
check_path: login_check
login_path: login
csrf_provider: form.csrf_provider
intention: authenticate
provider: ldap
logout:
path: /logout
target: /
restricted_area:
pattern: ^/
#anonymous: ~
providers:
ldap:
id: imag_ldap.security.user.provider
encoders:
IMAG\LdapBundle\User\LdapUser: plaintext
access_control:
- { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/, roles: IS_AUTHENTICATED_FULLY }
しかし、今は次のエラーが発生しています:
LogicException: No authentication listener registered for firewall "restricted_area".
SO私は次のことを試しました:
security:
firewalls:
login_firewall:
pattern: ^/login$
anonymous: ~
imag_ldap:
check_path: login_check
login_path: login
csrf_provider: form.csrf_provider
intention: authenticate
provider: ldap
logout:
path: /logout
target: /
restricted_area:
pattern: ^/
#anonymous: ~
imag_ldap:
check_path: login_check
login_path: login
csrf_provider: form.csrf_provider
intention: authenticate
provider: ldap
logout:
path: /logout
target: /
しかし、これはリダイレクト ループを引き起こします。
編集 2 コメントで述べたように、これの 2 番目の部分は別の問題であり、ここで見つけることができます: Symfony 2 Security.yml リダイレクト ループと LogicException の問題