2012-12-03 4 views
5

현재 SpringSecurityService를 필터에 사용하여 현재 로그인 한 사용자를 얻으려고합니다. 문제는 내가 null이있어 현재 사용자를 확보 할 수 없다는 것입니다.Grails의 필터에 SpringSecurityService를 삽입 할 때 Null

class ApplicationFilters { 

    def springSecurityService 

    def filters = { 
     all(controller:'*', action:'*') { 

     after = { Map model -> 

      def userName=springSecurityService.currentUser 
     } 
     } 
    } 
} 

나는 필터에서 PARAMS지도를 얻을 수도 시도하고 나 또한 널 얻었다. 이 문제를 해결하려면 어떻게해야합니까?

감사합니다,

아직이 문제를 해결 한 경우
+1

I 내 서비스에서 코드의 동적 재로드에 의존성 삽입이 작동하지 않는다는 것을 알았습니다. Grails 프로세스를 중지하고 다시 시작해야합니다. 내가 알지 못하는 유사한 NPE를 얻고 있었다. 아마도 그것은 당신과 똑같습니까? –

+0

코드에서'Map model ->'을 제거해보십시오. 그 외에는 내 코드가 완전히 동일합니다. –

+0

@JasonNichols 이걸 확인할 수 있습니다. 그것은 의존성 주입 코드의 동적 리로드에 작동하지 않는 것 같습니다. –

답변

0

는 모르겠지만, 당신은 확실히 이런 식으로 주입 applicationContext를 참조하여 *Filters 클래스 내에서 Service를 호출 할 수

class TestFilters { 
    def filters = { 
    all(controller:'*', action:'*') { 
     before = { 
      applicationContext.testService.serviceMethod() 
     } 
     after = { Map model -> 

     } 
     afterView = { Exception e -> 

     } 
    } 
    } 
}