2015-09-10 36 views
0

我正在使用Symfony2为我自己的项目开发一个后端服务。我想要做的是简单的用户注册。每当需要创建用户时,将会有一个POST调用Symfony2允许使用某些方法匿名处理某些路由

/v1.0/users (with POST method) 

我想创建一个新用户。除此之外,所有其他网址都应进行身份验证。所以我创建了UserProvider和UserAuthenticator,如下所示:http://symfony.com/doc/current/cookbook/security/api_key_authentication.html

我创建了一个安全区域,它工作正常,但是我想要使用post方法禁用上述url的firewal。我无法弄清楚如何。这是我的security.yml文件

firewalls: 
    dev: 
     pattern: ^/(_(profiler|wdt)|css|images|js)/ 
     security: false 
    api_user_secured_area: 
     pattern: ^/v1.0/users 
     stateless: true 
     simple_preauth: 
      authenticator: user_token_authenticator 
     provider: user_token_provider 

    access_control: 
    ... 
     user_register: 
      path: /v1.0/users 
      roles: IS_AUTHENTICATED_ANONYMOUSLY ?? FOR POST ONLY ?? 

PS:我不想(在控制器类似@security)用于安全注解

回答

0

访问控制可以过滤使用方法属性给定的方法,请在这里看到关于访问控制多个过滤器/选项:

http://symfony.com/doc/current/cookbook/security/access_control.html

这里是集成到你的代码的选项:

access_control: 
    user_register: 
     path: /v1.0/users 
     methods: [ POST ] 
     roles: IS_AUTHENTICATED_ANONYMOUSLY 
+0

我现在有另一个问题。我做了这个改变,但它仍然不让我这样做。 – orhankutlu