【问题标题】:SF4: multi authenticators with default authenticatorSF4:具有默认身份验证器的多身份验证器
【发布时间】:2023-01-11 18:10:28
【问题描述】:

我希望它会很清楚。我有一个非常旧的应用程序,前段时间升级到 SF4.4,并且一直在维护和开发。不幸的是有很多旧代码。我必须创建一个防火墙,该防火墙将同时支持旧的身份验证器解决方案 (form_login) 和新的身份验证器解决方案 - LexikJWTAuthenticationBundle。这意味着当用户在标头中具有会话或 JWT 令牌时,他们可以获得访问页面。

我有这个配置并且工作正常:

 main:
        pattern: '^/'
        anonymous: ~
        logout_on_user_change: true
        form_login:
            provider: main
            ##
        remember_me:
            ##
        logout:
           ##
        guard:
            provider: main
            authenticators:
                - lexik_jwt_authentication.jwt_token_authenticator

该解决方案支持所有端点/页面的会话和 JWT 令牌。但不幸的是,我发现在 /^ 的地方使用了 Authorization: Bearer <token> 和 JWTTokenAuthenticator 会产生一些问题并使一切复杂化。接下来的事情 - 这可能是危险的。

所以我不得不创建这个解决方案:

    react-api:
        pattern: '^/react-api'
        anonymous: ~
        guard:
            provider: main
            authenticators:
                - lexik_jwt_authentication.jwt_token_authenticator

    main:
        pattern: '^/'
        anonymous: ~
        logout_on_user_change: true
        form_login:
            provider: main
            #
        remember_me:
            #
        logout:
            ##

/react-api 的当前解决方案中 - 我无法通过会话授权。当然,模式阻止了它。当我在 lexik_jwt_authentication.jwt_token_authenticator 之前/之后添加支持会话的默认身份验证器时,我认为它可以解决问题。 Symfony 有什么东西吗?或者是另一种解决方案?

【问题讨论】:

    标签: php symfony symfony4 symfony-security lexikjwtauthbundle


    【解决方案1】:

    我找到了解决方案。 Symfony 文档:https://symfony.com/doc/current/reference/configuration/security.html#firewall-context

    我必须更改第一个防火墙的上下文:

    react-api:
        pattern: '^/react-api'
        anonymous: ~
        context: main
        guard:
            provider: main
            authenticators:
                - lexik_jwt_authentication.jwt_token_authenticator
    main:
        pattern: '^/'
        anonymous: ~
    

    【讨论】:

      猜你喜欢
      • 2019-03-23
      • 1970-01-01
      • 2017-09-11
      • 2019-03-02
      • 2020-01-15
      • 2020-09-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多