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に直接アクセスするときにコントローラーを初期化できない理由はありますか?