2015-09-02 33 views
0

我有一个路由,它有一个参数,它的跳闸让我的防火墙认为它需要先登录。我尝试设置模式以使用路由中使用的名称格式,但它仍然表示它需要身份验证。具有匿名请求登录参数的防火墙模式

是否有一种特殊的方式让patter使用参数?我没有看到如何如此。

感谢

$app->register(new Silex\Provider\SecurityServiceProvider(), [ 
'security.firewalls' => [ 
    'login' => [ 
     'pattern' => '^/login$', 
     'anonymous' => true 
    ], 
    'pwdRecovery' => [ 
     'pattern' => '^/recover', 
     'anonymous' => true 
    ], 
    'newPassword' => [ 
     'pattern' => '^/newpassword$', 
     'anonymous' => true 
    ], 
    // Any other URL requires auth. 
    'authenticated' => [ 
     'pattern' => '^.*$', 
     'form' => [ 
      'login_path' => '/login', 
      'check_path' => '/authenticate' 
     ], 
     'anonymous' => false, 
     'logout' => ['logout_path' => '/logout'], 
     'users' => $app->share(function() use ($app) { 
      return new App\Providers\UserServiceProvider(); 
     }), 
    ] 
], 
'security.access_rules' => [ 
    ['^/admin', 'ROLE_ADMIN'] 
], 
'security.encoder.digest' => $app->share(function() { 
    return new BCryptPasswordEncoder(15); 
}) 
]); 
+0

你应该发布你的安全配置,以获得帮助... – mTorres

+0

防火墙已发布。 – Eman

回答

2

这可能是一个正则表达式的问题。我可以将参数传递给^/recover路线。

$app->get('/recover/{id}', function (Request $request, $id) use ($app) { 
    error_log(print_r((int) $id,1).' '.__FILE__.' '.__LINE__,0); 
}); 

但是如果我添加$到路线像^/recover$然后将其重定向到登录,因为美元符号决定字符串的结尾。

+0

解决了这个问题。我现在有另一个问题,但这个问题至少解决了,谢谢。 – Eman

相关问题