私はすべて、
認証後、ユーザーを URL で指定されたアドレスにリダイレクトしたいと考えています。そのために、次のコードを実装します。
loginController で:
def auth = {
def savedRequest = session.getAttribute(WebAttributes.SAVED_REQUEST)
...}
そしてconfig.groovyで:
grails.plugins.springsecurity.useSecurityEventListener = true
grails.plugins.springsecurity.onAuthenticationSuccessEvent = { e, appCtx ->
def savedRequest = session.getAttribute(WebAttributes.SAVED_REQUEST);
String requestUrl = savedRequest.getRedirectUrl()
}
grails.plugins.springsecurity.successHandler.defaultTargetUrl = requestUrl
ログインを送信した後、次のエラーが発生しました。
タイプ例外レポート
メッセージ
サーバーで内部エラー () が発生したため、この要求を実行できませんでした。
例外
org.codehaus.groovy.runtime.InvokerInvocationException: groovy.lang.MissingMethodException: メソッドのシグネチャがありません: groovy.util.ConfigObject.getAttribute() は引数の型に適用されます: (groovy.util.ConfigObject) 値: [[:]] java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) java.lang.Thread.run(Thread.java:619)根本的な原因
groovy.lang.MissingMethodException: メソッドの署名がありません: groovy.util.ConfigObject.getAttribute() は引数の型に適用されます: (groovy.util.ConfigObject) 値: [[:]] script1379418399441191405188$_run_closure3.doCall(script1379418399441191405188.groovy: 154) java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) java.lang.Thread.run(Thread.java: 619) 注 根本原因の完全なスタック トレースは、Apache Tomcat/7.0.25 ログで入手できます。