2015-09-10 35 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