3

UrlMappings.groovy にレイアウトされた REST API とコントローラーのグループを備えた STS 3.1 の Grails アプリがあります。SpringSecurity のものをインストールしたので、Login/Logout コントローラーと RegistrationCodeController などがあります。ブラウザー インターフェイスを使用してログインしていましたが、REST クライアントからログインを開始する必要があります。

登録/ログイン/ログイン/ログアウトの確認に使用する必要がある特定の URL とリクエストは何ですか?

j_username と j_password を /j_spring_security_check に POST することでログインできました。ただし、最初に認証に失敗したリクエストを行うと、/j_spring_security_check への POST によって、失敗した最初のリクエストの結果が自動的に返されます。常に成功/エラー ステータスと User.id を返すログイン方法が必要です。

4

1 に答える 1

2

Config.groovy に、いくつかの構成項目を挿入します。

grails.plugins.springsecurity.successHandler.alwaysUseDefault = true
grails.plugins.springsecurity.successHandler.defaultTargetUrl = "/rest/success"
grails.plugins.springsecurity.failureHandler.defaultFailureUrl = "/rest/failed"

これにより、成功したログインが強制的に /rest/success にリダイレクトされます。次に、このメソッドで user.id を返します。

import grails.converters.JSON
class RestController {

    def springSecurityService

    def success() {
        def response = ['status':'success', 'id':springSecurityService.currentUser.id]
        render response as JSON
    }

    def failed() {
        def response = ['status': 'failed']
        render response as JSON
    }
}
于 2012-12-29T02:50:33.107 に答える