我正在尝试使FOSUserBundle与FOSOAuthServerBundle一起使用
,我正在努力与oauth_authorize
,获得302重定向循环。
以下是我在security.yml
(简化)中的内容:
firewalls:
oauth_authorize:
pattern: ^/oauth/v2/auth
form_login:
provider: fos_userbundle
check_path: /oauth/v2/auth/login_check
login_path: /oauth/v2/auth/login
access_control:
- { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/oauth/v2/auth/login, role: IS_AUTHENTICATED_ANONYMOUSLY }
我必须指定login_path
,因为默认/login
与oauth_authorize
模式不匹配。
我在我的捆绑包中添加了/oauth/v2/auth/login
路由,但即使使用虚拟控制器,它也从未被调用过。我只是获得了302次重定向,直到Firefox说它已经足够了。
comments here中有人建议在模式正则表达式的末尾添加$
,但路由不匹配。
日志给了我:
security.INFO:抛出了AuthenticationException;重定向到身份验证入口点。 {“exception”:“[object](Symfony \ Component \ Security \ Core \ Exception \ AuthenticationCredentialsNotFoundException(code:0):在TokenStorage中找不到令牌。在/ home / arthur / PhpstormProjects / rss-api / vendor / symfony / symfony / src / Symfony / Component / Security / Http / Firewall / AccessListener.php:53)“} []
我错过了什么吗?
编辑:symfony 3.0和oauth-server-bundle 1.5
答案 0 :(得分:0)
我确实遗漏了一些东西,这个匿名指令阻止防火墙阻止访问。
firewalls:
oauth_authorize:
pattern: ^/oauth/v2/auth
form_login:
provider: fos_userbundle
check_path: /oauth/v2/auth/login_check
login_path: /oauth/v2/auth/login
anonymous: true