【问题标题】:symfony 1.4 security.yml overwrite default credential configurationsymfony 1.4 security.yml 覆盖默认凭证配置
【发布时间】:2011-12-08 23:53:34
【问题描述】:

我有一个只能由管理员访问的模块,除了可以由所有经过身份验证的用户访问的单个操作。

有没有办法重置该单个操作的凭据?我尝试使用 null 但仍然得到 403 错误。在 security.yml 中列出所有操作是唯一的解决方案吗?

default:
  credentials: [ admin ]

public:
  credentials: null

【问题讨论】:

    标签: symfony1 symfony-1.4


    【解决方案1】:

    您是否尝试设置空数组或凭据?

    public:
      credentials: [ ]
    

    【讨论】:

      【解决方案2】:

      是的,如果您想对谁有权访问什么进行细粒度控制,则必须列出所有操作。

      或者,另一种方法(虽然丑陋)是将不需要任何凭据的操作设置为 is_secure : false,然后检查它们是否通过控制器中的操作进行身份验证。

      另外,如果您想使用凭据,那么您应该为每个用户设置一个默认凭据。即使用名为“用户”的凭据

      出于兴趣:您对此模块有多少操作?

      编辑:另外,如果您使用 ~ 而不是 null,会发生什么?

      【讨论】:

      • 到目前为止,我有大约 8 个动作。这不是列出动作的问题,但是如果我害怕如果我不限制默认安全设置,并且下次如果我添加另一个动作并且忘记添加安全设置,那么所有用户都将被允许访问新动作。我也尝试过 ~ (在 yaml 中也意味着 null),但也得到了 403。我想最好的方法是按照您的建议提供默认凭据。
      【解决方案3】:

      如果您想让具有所有凭据的登录用户可以访问它,您必须在公共操作中写入所有允许的凭据 (sf1.4 ad reference)

      .. 或者你可以向全世界开放这个动作:

      default:
        is_secure: true
      
      myPublicAction:
        is_secure: false
      

      【讨论】:

      • 感谢您的反馈,我想我被卡住了,因为我没有所有经过身份验证的用户的默认凭据。将按照 Flukey 的建议添加默认凭据。
      • 很高兴为您提供帮助。如果需要,请遵循该 sf1.4 参考,这是最好的信息来源
      猜你喜欢
      • 1970-01-01
      • 2021-04-11
      • 2020-02-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多