2016-06-14 2 views
1

Grailsの新機能ですので、何か間違っているかもしれませんが、おそらくあなたがそれを理解する手助けをすることができます。だから、Spring Security Pluginを使ったこの単純なGrailsアプリケーションはうまく動作していると思います。問題は、GSPページ春のセキュリティタグのことは、シナリオ例を私は期待していた情報が表示されないされている。Grails Spring SecurityプラグインとGSPタグが機能しない

  1. 私はそれは私がページにログイン示しブラウザからそれを打ったとき/basket/placeOrderエンドポイントはそう、確保しています。

  2. 私が使用して私のコントローラ println springSecurityService.currentUser.emailの一つには、コンソール上の正しいデータを印刷するとき

  3. (認証が成功したようなので、見えます)、私は正しい資格情報を使用してログインし、それが予想されるページに私を転送します。
  4. しかし、その後、私は例えばGSPに使用しよう:

    < sec:ifNotLoggedIn> NOT LOGGED < /sec:ifNotLoggedIn>

    それはNOT LOGGEDを示しています。 <sec:loggedInUserInfo field="email" />などのユーザー情報を取得しようとすると同じですが、文字列が表示されません。 Spring Securityと同じように、GSPとバインドされていません。

私は何か間違っていますか?いくつかの設定がありませんか?おかげさまで

私はそれがspringSecurityService.isLoggedIn()使用SecurityTagLibifNotLoggedIn関数に見えたEDIT

。私はコントローラから同じものを呼び出すと、期待される結果を返します。私は、コントローラとGSPの両方でsessionを印刷するとき、それはすべて同じです:

SPRING_SECURITY_CONTEXT = [email protected]b66c80: Authentication: org.springframew[email protected]46b66c80: Principal: [email protected]: Username: kamil; Password: [PROTECTED]; Enabled: true; AccountNonExpired: true; credentialsNonExpired: true; AccountNonLocked: true; Granted Authorities: ROLE_ADMIN; Credentials: [PROTECTED]; Authenticated: true; Details: org.sprin[email protected]43458: RemoteIpAddress: 0:0:0:0:0:0:0:1; SessionId: AAB2217ABEE7EAF752573D44914B0005; Granted Authorities: ROLE_ADMIN 

私はデバッグに私のアプリを実行するために管理され、それがさらに奇妙な取得します。コントローラの最初のブレークポイントにはSpringSecurityServiceオブジェクトが表示され、値currentUserが正しく設定されています。同じ処理が同じSpringSecurityServiceオブジェクト(つまり同じBean、重複していないことを意味します)を持っていますが、それはちょうどすべてが欠落しています()ユーザーデータ。奇妙な!

何かが間違っていることが、

答えて

1

が、私は問題が何であったか見つけたので、私は、自分の質問に答えてみましょうどのような...見当がつかないなければなりません。 コード(目とデバッガ)のすべてがうまくいけば、このような予期しない問題が発生する可能性のある唯一の場所であったため、設定を確認し始めました。 application.groovyで定義されている春のセキュリティフィルタがこれらの問題を引き起こしていないかどうか疑問に思っていました。

呼び出されたときに、他のアクション(フィルタ設定では「なし」)にリダイレクトされていたコントローラのアクション(保護されたROLE_ADMIN)の1つに、@Securedアノテーションを使用していました。私が設定からフィルタを削除し、( 'なし'フィルタを使用してアプリの設定で以前に設定されたパスのために@Secured(['permitAll']を使用した)それは魔法のように働き始めました。私はGrailsとSpring Securityのプラグインで十分な経験がないので、なぜそれが問題を引き起こしているのか正確にはわかりません。誰かが正確な問題が何か手がかりを持っている場合 -を共有してください。私はその場合、appの設定フィルタと注釈のミキシングがうまく行かなかったと仮定しています。

関連する問題