2

ログイン (/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


また、郵便配達員を使用しています(ログアウトの POST添付画像):

4

0 に答える 0