FOSJsRoutingBundle:不要暴露安全和被拒绝的路线

时间:2015-03-19 07:43:18

标签: angularjs symfony fosrestbundle symfony-routing

我正在使用FOSJsRoutingBundleFOSRestBundle,我想要做的是定义整个控制器以暴露这里的路线:

# Bundle's routing.yml imported as resource in app/config/routing.yml
my_api:
    resource:    'MyBundle\Controller\ApiController'
    type:        rest
    prefix:      /api
    name_prefix: my_api_
    options:
        expose: true

我还希望公开使用@Secure注释保护的路由,当前用户无法访问这些路线,而无需明确设置expose = false在那条路线上。我们都知道人类的记忆是错误的,所以我想让它自动化。

这是因为我想确保如果用户无法访问它,任何被拒绝的路由都不会暴露给前端。在前端方面有Angular应用程序,我们最好在请求之前知道路由是否可访问(我们可以使用Routing.getRoute()来检查它是否允许,例如,如果路由被拒绝则不显示菜单项)

或者可能有更好的解决方案吗?

1 个答案:

答案 0 :(得分:0)

基于issue discussion on Github我可以说这对FOSJsRoutingBundle本身是不可能的。我现在还没有其他任何方法可以实现它。