2

我能够登录(/api/login)并且能够成功发出 GET 请求。但是,我似乎无法弄清楚如何发出 POST 请求,同样我也无法注销 (/api/logout)。

控制器:(com.example.test)

static allowedMethods = [secret:['POST', 'GET']]
@Secured(['ROLE_ADMIN'])
def secret() {
  render "You have ACCESS!!!"
}

卷曲登录(和 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 或类似休息客户端(邮递员)的方式进行发布请求的示例。如果可能,请显示如何注销 (/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='username'grails.plugin.springsecurity.rest.login.usernamePropertyName='用户名' grails.plugin.springsecurity.rest.login.passwordPropertyName='密码' grails.plugin.springsecurity.rest.token.generation.useSecureRandom = true

尝试使用 POST 失败

以下是我尝试使用 Curl 和邮递员的一些方法:

 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