区分使用的身份验证机制

时间:2016-03-31 12:53:53

标签: symfony

在我们的symfony2应用程序中,我们提供针对内部(FOS)用户数据库和LDAP的身份验证。如果LDAP已用于身份验证,我们希望有一些特定的行为。如何在控制器中找出用户使用过哪种机制?

相关的安全配置文件如下所示:

    firewalls:
    main:
        pattern: ^/
        form_login:
            provider: fos_userbundle
            csrf_provider: security.csrf.token_manager
            login_path: /login
            check_path: /login_check
            default_target_path: /
            always_use_default_target_path: false
            use_referer: true
        form_login_ldap:
            service: app.ldap
            dn_string: %ldap_dn_string%
            login_path: /login
            check_path: /login_check
            always_use_default_target_path: false
        logout:
            path: fos_user_security_logout
            target: /
            invalidate_session: true
        anonymous:    true

1 个答案:

答案 0 :(得分:0)

如果你这样做

    form_login:
        provider: fos_userbundle
        csrf_provider: security.csrf.token_manager
        login_path: /login
        check_path: /login_check
        default_target_path: // route name of your common controller
        always_use_default_target_path: true
        use_referer: true
    form_login_ldap:
        service: app.ldap
        dn_string: %ldap_dn_string%
        login_path: /login
        check_path: /login_check
        default_target_path: // route name of your ldap controller
        always_use_default_target_path: true

您可以知道用户使用了什么形式,因为您在不同的控制器中执行了所需的操作