ログイン (/api/login) でき、GET 要求を正常に行うことができました。ただし、POST リクエストの作成方法がわかりません。同様に、ログアウト (/api/logout) もできません。
コントローラー: (com.example.test)
static allowedMethods = [secret:['POST', 'GET']]
@Secured(['ROLE_ADMIN'])
def secret() {
render "You have ACCESS!!!"
}
Curl でログイン (および HTTP 応答):
curl -v -H "Content-Type: application/json" -X POST -d
'{"username":"user", "password":"pass"}'
http://localhost:8080/restplug/api/login
< HTTP/1.1 200 OK
{"username":"user","roles":"ROLE_ADMIN"],
"access_token":"a2d4biqg7oqu0ig4m22pj20qsesva81d",
"token_type":"Bearer"}
GET リクエストのカール (メソッド シークレットの例):
curl -v -i -H "Authorization: Bearer a2d4biqg7oqu0ig4m22pj20qsesva81d"
-X GET http://localhost:8080/restplug/TestData/secret
POST リクエストは常にログイン ページにリダイレクトされます (トークンを渡した場合でも)。curl やレスト クライアント (Postman) などを使用してポスト リクエストを実行する方法の例を示してください。また、可能であれば、ログアウトする方法を示します (/api/logout)
構成
grails.plugin.springsecurity.rest.login.active=true grails.plugin.springsecurity.rest.login.endpointUrl='/api/login' grails.plugin.springsecurity.rest.login.failureStatusCode=401 grails.plugin.springsecurity. rest.login.useJsonCredentials=true grails.plugin.springsecurity.rest.login.usernamePropertyName='ユーザー名' grails.plugin.springsecurity.rest.login.passwordPropertyName='パスワード' grails.plugin.springsecurity.rest.logout.endpointUrl=' /api/logout' grails.plugin.springsecurity.rest.token.storage.useGorm = true grails.plugin.springsecurity.rest.token.storage.gorm.tokenDomainClassName="com.example.AuthenticationToken" grails.plugin.springsecurity.rest .token.storage.gorm.tokenValuePropertyName="tokenValue" grails.plugin.springsecurity.rest.token.storage.gorm.usernamePropertyName='ユーザー名'grails.plugin.springsecurity.rest.login.usernamePropertyName='ユーザー名' grails.plugin.springsecurity.rest.login.passwordPropertyName='パスワード' grails.plugin.springsecurity.rest.token.generation.useSecureRandom = true
失敗した POST の使用の試み
以下は、Curl と postman を使用して試したことの一部です。
curl -v -X POST --form "access_token=bdv3de54oglo2i997k1tomvdgptm2ojq"
http://localhost:8080/restplug/TestData/secret
curl -v -X POST -H "Content-Type: application/x-www-form-urlencode"
--form "access_token=bdv3de54oglo2i997k1tomvdgptm2ojq"
http://localhost:8080/restplug/TestData/secret
また、郵便配達員を使用しています(添付画像):