0

Grails 2.0.4 では、ほとんどの部分で Spring Security Plugin が正常に機能しています。「localhost:8080/dashboard」ページに移動すると、ログイン画面にリダイレクトされます。ログインに成功すると、「/dashboard」にリダイレクトされます。

私が抱えている問題は、URL にコントローラーを追加せずに "localhost:8080/" に移動した場合です。これを行うと、ログインに成功したかどうかに関係なく、「/login/denied」にリダイレクトされます。この時点で「/dashboard」に移動しようとすると、正常にログインしたユーザーであるため機能します。

私の質問は、ログイン後にリダイレクトされるデフォルトの画面を変更する方法です。これが私が試したことです。足りないものがあれば教えてください。実際のリダイレクトを除いて、すべてが機能しているようです。

URLMappings.groovy で変更してみました

static mappings = {
    "/"(controller: "dashboard")
}

Config.groovy で変更してみました:

grails.plugins.springsecurity.successHandler.defaultTargetUrl = '/dashboard'
grails.plugins.springsecurity.securityConfigType = SecurityConfigType.InterceptUrlMap
grails.plugins.springsecurity.interceptUrlMap = [
    '/dashboard/**': ["IS_AUTHENTICATED_FULLY"],

    '/js/**': ["IS_AUTHENTICATED_ANONYMOUSLY"],
    '/css/**': ["IS_AUTHENTICATED_ANONYMOUSLY"],
    '/images/**': ["IS_AUTHENTICATED_ANONYMOUSLY"],
    '/login/**': ["IS_AUTHENTICATED_ANONYMOUSLY"],
    '/logout/**': ["IS_AUTHENTICATED_ANONYMOUSLY"]
]

これらのどちらも、上で説明した問題を修正しませんでした。どんな助けでも大歓迎です。

ありがとう、ジャレッド

4

1 に答える 1

2

答えは、interceptUrlMap に別のエントリを追加することでした。

grails.plugins.springsecurity.interceptUrlMap = [
    '/**': ["IS_AUTHENTICATED_FULLY"]
]

これにより、ユーザーは URLMappings の「/」マッピングにアクセスできるため、「/dashboard」に転送されます。このマッピングがないと、「/」のルールはなく、デフォルトでブロックされるため、転送される URLMappings に到達する機会がありません。

于 2012-06-15T03:38:09.363 に答える