1

Grails で Oauth2 を使用しようとしていますが、機能しません。アクセスポイントを取得しようとすると、NullPointerException が発生します。
詳細: Spring Security Oauth2 プロバイダープラグインの使用。BootStrap.groovy に (BaseClientDetails を使用して) クライアントを登録しました。チュートリアルによると、クライアントは次の URL を使用して tokenEndpointUrl 設定 (デフォルトでは /oauth/token) で指定された URL でログインできます: localhost:8080/app/ oauth/token?grant_type=client_credentials&client_id=clientId&client_secret=clientSecret .

しかし、grails.plugin.cache.web.filter.PageFragmentCachingFilter は例外をスローします。後述のメソッドで、controllerClass が何らかの理由で null になっています。

841  protected Object lookupController(Class<?> controllerClass) { <br>
842  return getBean(controllerClass.getName()); <br>
843  }

grails.plugin.cache.web.filter.PageFragmentCachingFilter.doFilter がコンテキスト ( getContext().getControllerClass() ) からコントローラー クラスを取得しようとしましたが、null が返されたため、コントローラー クラスは null です。
フルスタックはこちらhttp://pastebin.com/euramNaS

通常のログイン フローを渡す場合 (URL を直接使用するのではなく、ログイン フォーム経由)。同じ場所に LoginController をフェッチしました。そして、デバッグモードでブレークポイントを「問題のある」行に設定し、controllerClass を LoginController で手動で変更 (controllerClass = LoginController.class を追加して監視) すると、トリックが行われ、トークンを含む JSON を受け取ります。

問題を明確に再現するために空のアプリケーションを作成しようとしましたが、再現されます。したがって、テスト プロジェクトはhttp://goo.gl/1gmtTで見つかります。
URLに直接アクセスするときにコントローラーを初期化できない理由はありますか?

4

2 に答える 2

2

キャッシュプラグインをアンインストールするとうまくいきます。キャッシュ プラグインを無視するように設定できる場合があります

/oauth 

URL

于 2013-02-05T11:43:01.107 に答える
0

@cubic1271が言ったように、キャッシュプラグインを1.1.1にアップグレードするとうまくいきました。

BuildConfig.groovy でそれを確認してください

compile ':cache:1.1.1'

また、コマンドラインで grails list-plugins を使用して確認することもできます

$ grails list-plugins
Plug-ins you currently have installed are listed below:
-------------------------------------------------------------
cache               1.1.1            --  Cache Plugin
于 2014-01-10T19:16:21.707 に答える