2012-12-03 4 views
5

現在、ログインしているユーザーを取得するために、SpringSecurityServiceをフィルタに使用しようとしています。問題は、私がnullを取得して現在のユーザーを取得できないことです。SpringSecurityServiceをGrailsのFilterにインジェクトするときにヌル

class ApplicationFilters { 

    def springSecurityService 

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

     after = { Map model -> 

      def userName=springSecurityService.currentUser 
     } 
     } 
    } 
} 

また、フィルタからparamsマップを取得しようとしましたが、nullもあります。これを解決するにはどうすればよいですか?

おかげで、あなたはまだこの問題を解決してきた場合

+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 -> 

     } 
    } 
    } 
} 
関連する問題