authenticateToken()应返回或抛出什么? Symfony 2.4

时间:2013-12-17 17:09:24

标签: php symfony authentication

我只是根据2.4版创建一个新的Symfony2项目。

使用http://symfony.com/blog/new-in-symfony-2-4-customize-the-security-features-with-ease我创建了一个UserProvider和Authenticator。

根据提供的示例authenticateToken()应返回正确的令牌或throw new AuthenticationException('message')。在第一种情况下,当用户可以进行身份​​验证时 - 一切正常但是当抛出异常时 - 服务器没有给401或403只有常规的auth错误但是给了500 A Token was not found in the SecurityContext!我认为这是一个新的实现错误,我是对的吗?

1 个答案:

答案 0 :(得分:0)

好的,文档在某些情况下非常盲目。这完全是关于entry_point或设置FailureListener。

你需要记住的事情:

  1. 必须在access_control
  2. 中定义security.yml
  3. 必须提供AuthenticationEntryPointInterface作为entry_point的服务 /或/
  4. 必须在AuthenticationFailureHandlerInterface中实施Authenticator才能回复您自己的例外情况。
  5. 就我而言 - 解决方案#3是合适的。