2017-09-05 2 views
0

こんにちは、私はGrailsでSpring Security Coreを試して、現在ログインしているユーザーを取得しようとしています。しかし、次の原因でjava.lang.NullPointerExceptionが発生します。nullオブジェクトでプロパティ 'principal'を取得できません。Grailsを使用したSpringセキュリティサービス - 現在のユーザー 'NULL'エラーを取得

次は私のコードです:springSecurityServiceがnullであるいくつかの理由から

import static org.springframework.http.HttpStatus.* 
import grails.transaction.Transactional 
import grails.plugin.springsecurity.annotation.Secured 

@Secured(['ROLE_ADMIN']) 
@Transactional 
class MyController { 

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

    def test(){ 
     def springSecurityService 
     render "Current User is: [" + springSecurityService.principal 
            + "]" 
     } 
    } 

。私は何を取りこぼしたか?

お知らせください。前もって感謝します!

+0

'def springSecurityService'は、クラスレベルでメソッド' test() 'の外にある必要があります。 –

+0

あまりにもジョシュアありがとう!これは動作します!心から感謝する! –

+0

これをクラスレベルに置くとき、あなたは実際にSpring BeanをあなたのController Beanクラスに注入しています。これはautowiredと同じ/同じです。しかし、内部メソッドは単なる変数です。 –

答えて

0

ジョシュア・ムーアの提案によれば、これはうまくいった!どうもありがとうございます!

import static org.springframework.http.HttpStatus.* 
import grails.transaction.Transactional 
import grails.plugin.springsecurity.annotation.Secured 

@Secured(['ROLE_ADMIN']) 
@Transactional 
class MyController { 

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

    def springSecurityService 

    def test(){ 



     render "Current User is: [" + springSecurityService.principal + "]" 


    } 

} 
関連する問題