얻기, 나는이 BasicAuth를하려고 할 때 현재 사용자를 얻을 수 없다 : 당신이 아래Symfony2 내가 API를 개발하고 있어요 현재 사용자
FatalErrorException: Error: Call to a member function getUser() on a non-object
이의 원인이 security.yml 부분을 찾을 수 있습니다 오류 (나는 그렇게 생각한다) :
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
main:
pattern: ^/
anonymous: true
stateless: true
http_basic:
realm: "REST Service Realm"
provider: fos_userbundle
access_control:
- { path: ^/users/me, role: IS_AUTHENTICATED_FULLY }
나는 방금 access_control에 경로를 넣는다. 나는 테스트 중이다. 몇 가지 더있어. 이제
// Routing.yml
rest :
type : rest
resource : "routing_rest.yml"
오류가 발생하는 부분 : 나는 (당신이 볼 수있는)가 중복 때문에 나는, 접두어를 넣어 싶지 않았다 FOSRestBundle뿐만 아니라 FOSUserBundle을 사용하고
(FOSUser를 확장 한) UserController에 있습니다 :
private function response($data, $status, $groups = array())
{
$currentUser = $this->container->get('security.context')->getToken()->getUser();
if (!$currentUser)
$groups = array("anon");
else
{
if ($currentUser->hasRole("ROLE_SUPER_ADMIN"))
array_push($groups, "admin");
else if ($currentUser->hasRole("ROLE_ADMIN"))
array_push($groups, "admin");
else if ($currentUser->hasRole("ROLE_USER"))
array_push($groups, "user");
}
return $this->view($data, $status)->setSerializationContext(SerializationContext::create()->setGroups($groups));
}
어떤 생각이 잘못된가요?
euhm, 어디에서 오류가 발생합니까? 실제 원인을 보는 것이 좋을 것입니다 ... – NDM
죄송합니다, 업데이트했습니다. – Romain
이 컨트롤러 내에서 직접'$ this-> getUser();'를 호출하십시오. [doc] (http://symfony.com/doc/current/book/security.html#retrieving-the-user-object) – chrisben