2016-11-08 11 views
0

springSecurityService.currentUserにアクセスしようとすると、コントロールの次のコードスニペットでnullポインタ例外が発生します。私はdef springSecurityServiceが自動的にサービスを挿入することを期待しています。何が欠けていますか?springSecurityServiceの注入が機能しません

@Transactional(readOnly = true) 
@Secured('ROLE_USER') 
class TaskController { 

    static allowedMethods = [save: "POST", update: "PUT", delete: "DELETE"] 

    def index(Integer max) { 
     params.max = Math.min(max ?: 10, 100) 
def springSecurityService 
def user = springSecurityService.currentUser 

答えて

5

他のSpring Beanをコントローラまたはサービスに注入することは、メソッド内ではなくクラスレベルで行われます。

例えば、あなたのコードは次のようになります。

@Transactional(readOnly = true) 
@Secured('ROLE_USER') 
class TaskController { 

    static allowedMethods = [save: "POST", update: "PUT", delete: "DELETE"] 
    def springSecurityService // inject the bean here, at the class level 

    def index(Integer max) { 
     params.max = Math.min(max ?: 10, 100) 
     def user = springSecurityService.currentUser 
関連する問題