/api/login POST
Method | URL |
---|---|
POST |
/api/login |
Headers
Header Name | HeaderValue |
---|---|
Accept |
application/json |
Content-Type |
application/json |
Params
Type | Name | Required | Schema | Description |
---|---|---|---|---|
JSON |
username |
YES |
String |
|
JSON |
password |
YES |
String |
Plain text password |
Samples
login with wrong password, server returns unauthorized
Request
curl -X "POST" "http://localhost:8080/api/login" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d $'{
"username": "sherlock",
"password": "wrongpassword"
}'
Response
401
Successful login
Request
curl -X "POST" "http://localhost:8080/api/login" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d $'{
"username": "sherlock",
"password": "elementary"
}'
Response
200
{
"access_token": "eyJhbGciOiJIUzI1NiJ9.eyJwcmluY2lwYWwiOiJINHNJQUFBQUFBQUFBSlZTUFVcL2NRQlI4dmh5Q0NJbVBTSW1VQXBwQUZcL21rcEx3cWgwZ2taSEVJY3cxSW9EMzdZUmJXdTJaM0RYY051aW9wS0loSWtKQm9LZmtuU1pNZkVJV0NscG8yYncySER4ckVWdmJiOGN5OEdWOWN3NURSOERIUmpBdmpaeUpQdVBSTnBybE1ERWE1NXJicjV3WjFqTFpBZkNtQUxackE3ZkVxNEFWUTRiR0ZWOEUyMjJNMXdXUlNhN2EzTWJMMWpvWVBTaWQzakp1YXBiaXY5STVcL3p4MHBqUThFU21ydnZBTERxekRKb2tqbDBpNHFPZFwvSnVNWjRGU2JLV2FDaUhUZDZIZEVOU3N1Wk1JUFFZWlNzTFRBT1lKVGxka3VSS2tkallmeldiRzY1cUlWbzZ3R01aTXdZY3Zkb2s5QTY2KzdlMlpTMHdTNGNRTFdUZVhRb3Uxa0g5UjJQUDZlRW9LMjVrbWFtSlZNVjgwM3V4SW1cL04zWDg1K2lzMTZvQVVDYnZuXC82bW5MOXRRT1wvWCtzMTBFYlFYV1hnellMMkUxVHNadVprc21WYzBPdVdcL3Awc1wvVHE2XC9yYjBnWllmNFwvUHcrWmo3ZEpkZWRVMm5HTkxOcW9DT2kzYSs2WnlKdlBFM2ViNkhyaHp6TkJOSWZKUzNHOXhJbE1hMWIxVXIwODdid2Nya1p6RzgwbW1IbzNrYk1GbXBCOVpQdVdMRzI2OHNQRkxWMWVQWDk5OUc3ZjhTeEFFTjdUT1JJcVUrVW9NVThiYVArZW5FeU5mcno4ckRZb2Y4XC9cL3dmNlQ5M3RFd01BQUE9PSIsInN1YiI6InNoZXJsb2NrIiwicm9sZXMiOlsiUk9MRV9CT1NTIl0sImV4cCI6MTUwMjYyMDczOSwiaWF0IjoxNTAyNjE3MTM5fQ.UcD-tg5cbiIbJ8S5OmIo-XzYNSQy6sXp099UHyLYQ6k",
"refresh_token": "eyJhbGciOiJIUzI1NiJ9.eyJwcmluY2lwYWwiOiJINHNJQUFBQUFBQUFBSlZTUFVcL2NRQlI4dmh5Q0NJbVBTSW1VQXBwQUZcL21rcEx3cWgwZ2taSEVJY3cxSW9EMzdZUmJXdTJaM0RYY051aW9wS0loSWtKQm9LZmtuU1pNZkVJV0NscG8yYncySER4ckVWdmJiOGN5OEdWOWN3NURSOERIUmpBdmpaeUpQdVBSTnBybE1ERWE1NXJicjV3WjFqTFpBZkNtQUxackE3ZkVxNEFWUTRiR0ZWOEUyMjJNMXdXUlNhN2EzTWJMMWpvWVBTaWQzakp1YXBiaXY5STVcL3p4MHBqUThFU21ydnZBTERxekRKb2tqbDBpNHFPZFwvSnVNWjRGU2JLV2FDaUhUZDZIZEVOU3N1Wk1JUFFZWlNzTFRBT1lKVGxka3VSS2tkallmeldiRzY1cUlWbzZ3R01aTXdZY3Zkb2s5QTY2KzdlMlpTMHdTNGNRTFdUZVhRb3Uxa0g5UjJQUDZlRW9LMjVrbWFtSlZNVjgwM3V4SW1cL04zWDg1K2lzMTZvQVVDYnZuXC82bW5MOXRRT1wvWCtzMTBFYlFYV1hnellMMkUxVHNadVprc21WYzBPdVdcL3Awc1wvVHE2XC9yYjBnWllmNFwvUHcrWmo3ZEpkZWRVMm5HTkxOcW9DT2kzYSs2WnlKdlBFM2ViNkhyaHp6TkJOSWZKUzNHOXhJbE1hMWIxVXIwODdid2Nya1p6RzgwbW1IbzNrYk1GbXBCOVpQdVdMRzI2OHNQRkxWMWVQWDk5OUc3ZjhTeEFFTjdUT1JJcVUrVW9NVThiYVArZW5FeU5mcno4ckRZb2Y4XC9cL3dmNlQ5M3RFd01BQUE9PSIsInN1YiI6InNoZXJsb2NrIiwicm9sZXMiOlsiUk9MRV9CT1NTIl0sImlhdCI6MTUwMjYxNzEzOX0.MjJem5CjRwbUe1QxBafqUMzYPQ0xjcgVpHOHJ4KghFI",
"roles": [
"ROLE_BOSS"
],
"token_type": "Bearer",
"expires_in": 3600,
"username": "sherlock"
}
/api/validate POST
Method | URL |
---|---|
POST |
/api/validate |
Headers
Header Name | HeaderValue |
---|---|
Accept |
application/json |
Authorization |
Bearer XXXXXXX |
Samples
Return 401 if the user supplies a wrong accessToken
Request
curl -X "POST" "http://localhost:8080/api/validate" \
-H "Accept: application/json" \
-H "Authorization: Bearer XXXXXXX" \
-d $'{
"username": "sherlock",
"password": "elementary"
}'
Response
401
null
Endpoint returns 200 if the access token is valid
Request
curl -X "POST" "http://localhost:8080/api/validate" \
-H "Accept: application/json" \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJwcmluY2lwYWwiOiJINHNJQUFBQUFBQUFBSlZTUFVcL2NRQlI4dmh5Q0NJbVBTSW1VQXBwQUZcL21rcEx3cWgwZ2taSEVJY3cxSW9EMzdZUmJXdTJaM0RYY051aW9wS0loSWtKQm9LZmtuU1pNZkVJV0NscG8yYncySER4ckVWdmJiOGN5OEdWOWN3NURSOERIUmpBdmpaeUpQdVBSTnBybE1ERWE1NXJicjV3WjFqTFpBZkNtQUxackE3ZkVxNEFWUTRiR0ZWOEUyMjJNMXdXUlNhN2EzTWJMMWpvWVBTaWQzakp1YXBiaXY5STVcL3p4MHBqUThFU21ydnZBTERxekRKb2tqbDBpNHFPZFwvSnVNWjRGU2JLV2FDaUhUZDZIZEVOU3N1Wk1JUFFZWlNzTFRBT1lKVGxka3VSS2tkallmeldiRzY1cUlWbzZ3R01aTXdZY3Zkb2s5QTY2KzdlMlpTMHdTNGNRTFdUZVhRb3Uxa0g5UjJQUDZlRW9LMjVrbWFtSlZNVjgwM3V4SW1cL04zWDg1K2lzMTZvQVVDYnZuXC82bW5MOXRRT1wvWCtzMTBFYlFYV1hnellMMkUxVHNadVprc21WYzBPdVdcL3Awc1wvVHE2XC9yYjBnWllmNFwvUHcrWmo3ZEpkZWRVMm5HTkxOcW9DT2kzYSs2WnlKdlBFM2ViNkhyaHp6TkJOSWZKUzNHOXhJbE1hMWIxVXIwODdid2Nya1p6RzgwbW1IbzNrYk1GbXBCOVpQdVdMRzI2OHNQRkxWMWVQWDk5OUc3ZjhTeEFFTjdUT1JJcVUrVW9NVThiYVArZW5FeU5mcno4ckRZb2Y4XC9cL3dmNlQ5M3RFd01BQUE9PSIsInN1YiI6InNoZXJsb2NrIiwicm9sZXMiOlsiUk9MRV9CT1NTIl0sImV4cCI6MTUwMjYyMDc0MCwiaWF0IjoxNTAyNjE3MTQwfQ.5R5gCIL3y1Ke97NwkQtcrA-35vE3Cii58qH6XCjILfA" \
-d $'{
"username": "sherlock",
"password": "elementary"
}'
Response
200
{
"access_token": "eyJhbGciOiJIUzI1NiJ9.eyJwcmluY2lwYWwiOiJINHNJQUFBQUFBQUFBSlZTUFVcL2NRQlI4dmh5Q0NJbVBTSW1VQXBwQUZcL21rcEx3cWgwZ2taSEVJY3cxSW9EMzdZUmJXdTJaM0RYY051aW9wS0loSWtKQm9LZmtuU1pNZkVJV0NscG8yYncySER4ckVWdmJiOGN5OEdWOWN3NURSOERIUmpBdmpaeUpQdVBSTnBybE1ERWE1NXJicjV3WjFqTFpBZkNtQUxackE3ZkVxNEFWUTRiR0ZWOEUyMjJNMXdXUlNhN2EzTWJMMWpvWVBTaWQzakp1YXBiaXY5STVcL3p4MHBqUThFU21ydnZBTERxekRKb2tqbDBpNHFPZFwvSnVNWjRGU2JLV2FDaUhUZDZIZEVOU3N1Wk1JUFFZWlNzTFRBT1lKVGxka3VSS2tkallmeldiRzY1cUlWbzZ3R01aTXdZY3Zkb2s5QTY2KzdlMlpTMHdTNGNRTFdUZVhRb3Uxa0g5UjJQUDZlRW9LMjVrbWFtSlZNVjgwM3V4SW1cL04zWDg1K2lzMTZvQVVDYnZuXC82bW5MOXRRT1wvWCtzMTBFYlFYV1hnellMMkUxVHNadVprc21WYzBPdVdcL3Awc1wvVHE2XC9yYjBnWllmNFwvUHcrWmo3ZEpkZWRVMm5HTkxOcW9DT2kzYSs2WnlKdlBFM2ViNkhyaHp6TkJOSWZKUzNHOXhJbE1hMWIxVXIwODdid2Nya1p6RzgwbW1IbzNrYk1GbXBCOVpQdVdMRzI2OHNQRkxWMWVQWDk5OUc3ZjhTeEFFTjdUT1JJcVUrVW9NVThiYVArZW5FeU5mcno4ckRZb2Y4XC9cL3dmNlQ5M3RFd01BQUE9PSIsInN1YiI6InNoZXJsb2NrIiwicm9sZXMiOlsiUk9MRV9CT1NTIl0sImV4cCI6MTUwMjYyMDc0MCwiaWF0IjoxNTAyNjE3MTQwfQ.5R5gCIL3y1Ke97NwkQtcrA-35vE3Cii58qH6XCjILfA",
"roles": [
"ROLE_BOSS"
],
"token_type": "Bearer",
"expires_in": 3600,
"username": "sherlock"
}
/ GET
Method | URL |
---|---|
GET |
/ |
Headers
Header Name | HeaderValue |
---|---|
Accept |
application/json |
Authorization |
Bearer XXXXXXX |
Samples
/ is secured
Request
curl "http://localhost:8080/" \
-H "Accept: application/json" \
-H "Authorization: Bearer XXXXXXX"
Response
401
{
"path": "/",
"error": "Unauthorized",
"message": "No message available",
"timestamp": 1502617140481,
"status": 401
}
Request
curl "http://localhost:8080/" \
-H "Accept: application/json" \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJwcmluY2lwYWwiOiJINHNJQUFBQUFBQUFBSlZTUFVcL2NRQlI4dmh5Q0NJbVBTSW1VQXBwQUZcL21rcEx3cWgwZ2taSEVJY3cxSW9EMzdZUmJXdTJaM0RYY051aW9wS0loSWtKQm9LZmtuU1pNZkVJV0NscG8yYncySER4ckVWdmJiOGN5OEdWOWN3NURSOERIUmpBdmpaeUpQdVBSTnBybE1ERWE1NXJicjV3WjFqTFpBZkNtQUxackE3ZkVxNEFWUTRiR0ZWOEUyMjJNMXdXUlNhN2EzTWJMMWpvWVBTaWQzakp1YXBiaXY5STVcL3p4MHBqUThFU21ydnZBTERxekRKb2tqbDBpNHFPZFwvSnVNWjRGU2JLV2FDaUhUZDZIZEVOU3N1Wk1JUFFZWlNzTFRBT1lKVGxka3VSS2tkallmeldiRzY1cUlWbzZ3R01aTXdZY3Zkb2s5QTY2KzdlMlpTMHdTNGNRTFdUZVhRb3Uxa0g5UjJQUDZlRW9LMjVrbWFtSlZNVjgwM3V4SW1cL04zWDg1K2lzMTZvQVVDYnZuXC82bW5MOXRRT1wvWCtzMTBFYlFYV1hnellMMkUxVHNadVprc21WYzBPdVdcL3Awc1wvVHE2XC9yYjBnWllmNFwvUHcrWmo3ZEpkZWRVMm5HTkxOcW9DT2kzYSs2WnlKdlBFM2ViNkhyaHp6TkJOSWZKUzNHOXhJbE1hMWIxVXIwODdid2Nya1p6RzgwbW1IbzNrYk1GbXBCOVpQdVdMRzI2OHNQRkxWMWVQWDk5OUc3ZjhTeEFFTjdUT1JJcVUrVW9NVThiYVArZW5FeU5mcno4ckRZb2Y4XC9cL3dmNlQ5M3RFd01BQUE9PSIsInN1YiI6InNoZXJsb2NrIiwicm9sZXMiOlsiUk9MRV9CT1NTIl0sImV4cCI6MTUwMjYyMDc0MCwiaWF0IjoxNTAyNjE3MTQwfQ.5R5gCIL3y1Ke97NwkQtcrA-35vE3Cii58qH6XCjILfA"
Response
200
{
"environment": "test",
"reloadingagentenabled": false,
"plugins": [
{
"name": "restResponder",
"version": "3.3.0"
},
{
"name": "dataBinding",
"version": "3.3.0"
},
{
"name": "jsonView",
"version": "1.2.3"
},
{
"name": "eventBus",
"version": "3.3.0"
},
{
"name": "i18n",
"version": "3.3.0"
},
{
"name": "geb",
"version": "1.1.1"
},
{
"name": "core",
"version": "3.3.0"
},
{
"name": "dataSource",
"version": "3.3.0"
},
{
"name": "groovyPages",
"version": "3.3.0"
},
{
"name": "codecs",
"version": "3.3.0"
},
{
"name": "controllers",
"version": "3.3.0"
},
{
"name": "urlMappings",
"version": "3.3.0"
},
{
"name": "domainClass",
"version": "3.3.0"
},
{
"name": "hibernate",
"version": "6.1.6"
},
{
"name": "controllersAsync",
"version": "3.3.0"
},
{
"name": "interceptors",
"version": "3.3.0"
},
{
"name": "mimeTypes",
"version": "3.3.0"
},
{
"name": "converters",
"version": "3.3.0"
},
{
"name": "services",
"version": "3.3.0"
},
{
"name": "cache",
"version": "4.0.0"
},
{
"name": "springSecurityCore",
"version": "3.2.0.M1"
},
{
"name": "springSecurityRest",
"version": "2.0.0.M2"
}
],
"groovyversion": "2.4.11",
"controllers": [
{
"logicalPropertyName": "logout",
"name": "grails.plugin.springsecurity.LogoutController"
},
{
"logicalPropertyName": "login",
"name": "grails.plugin.springsecurity.LoginController"
},
{
"logicalPropertyName": "restOauth",
"name": "grails.plugin.springsecurity.rest.RestOauthController"
},
{
"logicalPropertyName": "application",
"name": "demo.ApplicationController"
}
],
"appversion": "0.1",
"grailsversion": "3.3.0",
"message": "Welcome to Grails!",
"appprofile": "rest-api",
"jvmversion": "1.8.0_121",
"artefacts": {
"controllers": 4,
"domains": 3,
"services": 3
}
}
/oauth/access_token POST
Method | URL |
---|---|
POST |
/oauth/access_token |
Headers
Header Name | HeaderValue |
---|---|
Accept |
application/json |
Content-Type |
application/x-www-form-urlencoded |
Params
Type | Name | Required | Schema | Description |
---|---|---|---|---|
FORM_URL_ENCODED |
grant_type |
YES |
String |
|
FORM_URL_ENCODED |
refresh_token |
YES |
String |
Samples
Successful access token refresh
Request
curl -X "POST" "http://localhost:8080/oauth/access_token" \
-H "Accept: application/json" \
-H "Content-Type: application/x-www-form-urlencoded" \
--data-urlencode "grant_type=refresh_token" \
--data-urlencode "refresh_token=eyJhbGciOiJIUzI1NiJ9.eyJwcmluY2lwYWwiOiJINHNJQUFBQUFBQUFBSlZTUFVcL2NRQlI4dmh5Q0NJbVBTSW1VQXBwQUZcL21rcEx3cWgwZ2taSEVJY3cxSW9EMzdZUmJXdTJaM0RYY051aW9wS0loSWtKQm9LZmtuU1pNZkVJV0NscG8yYncySER4ckVWdmJiOGN5OEdWOWN3NURSOERIUmpBdmpaeUpQdVBSTnBybE1ERWE1NXJicjV3WjFqTFpBZkNtQUxackE3ZkVxNEFWUTRiR0ZWOEUyMjJNMXdXUlNhN2EzTWJMMWpvWVBTaWQzakp1YXBiaXY5STVcL3p4MHBqUThFU21ydnZBTERxekRKb2tqbDBpNHFPZFwvSnVNWjRGU2JLV2FDaUhUZDZIZEVOU3N1Wk1JUFFZWlNzTFRBT1lKVGxka3VSS2tkallmeldiRzY1cUlWbzZ3R01aTXdZY3Zkb2s5QTY2KzdlMlpTMHdTNGNRTFdUZVhRb3Uxa0g5UjJQUDZlRW9LMjVrbWFtSlZNVjgwM3V4SW1cL04zWDg1K2lzMTZvQVVDYnZuXC82bW5MOXRRT1wvWCtzMTBFYlFYV1hnellMMkUxVHNadVprc21WYzBPdVdcL3Awc1wvVHE2XC9yYjBnWllmNFwvUHcrWmo3ZEpkZWRVMm5HTkxOcW9DT2kzYSs2WnlKdlBFM2ViNkhyaHp6TkJOSWZKUzNHOXhJbE1hMWIxVXIwODdid2Nya1p6RzgwbW1IbzNrYk1GbXBCOVpQdVdMRzI2OHNQRkxWMWVQWDk5OUc3ZjhTeEFFTjdUT1JJcVUrVW9NVThiYVArZW5FeU5mcno4ckRZb2Y4XC9cL3dmNlQ5M3RFd01BQUE9PSIsInN1YiI6InNoZXJsb2NrIiwicm9sZXMiOlsiUk9MRV9CT1NTIl0sImlhdCI6MTUwMjYxNzE0MX0.mBvosLDdyKfX3DnnevW8UQbyHNVnbvfcIucmuCwnkK4"
Response
200
[access_token:eyJhbGciOiJIUzI1NiJ9.eyJwcmluY2lwYWwiOiJINHNJQUFBQUFBQUFBSlZTUFVcL2NRQlI4dmh5Q0NJbVBTSW1VQXBwQUZcL21rcEx3cWgwZ2taSEVJY3cxSW9EMzdZUmJXdTJaM0RYY051aW9wS0loSWtKQm9LZmtuU1pNZkVJV0NscG8yYncySER4ckVWdmJiOGN5OEdWOWN3NURSOERIUmpBdmpaeUpQdVBSTnBybE1ERWE1NXJicjV3WjFqTFpBZkNtQUxackE3ZkVxNEFWUTRiR0ZWOEUyMjJNMXdXUlNhN2EzTWJMMWpvWVBTaWQzakp1YXBiaXY5STVcL3p4MHBqUThFU21ydnZBTERxekRKb2tqbDBpNHFPZFwvSnVNWjRGU2JLV2FDaUhUZDZIZEVOU3N1Wk1JUFFZWlNzTFRBT1lKVGxka3VSS2tkallmeldiRzY1cUlWbzZ3R01aTXdZY3Zkb2s5QTY2KzdlMlpTMHdTNGNRTFdUZVhRb3Uxa0g5UjJQUDZlRW9LMjVrbWFtSlZNVjgwM3V4SW1cL04zWDg1K2lzMTZvQVVDYnZuXC82bW5MOXRRT1wvWCtzMTBFYlFYV1hnellMMkUxVHNadVprc21WYzBPdVdcL3Awc1wvVHE2XC9yYjBnWllmNFwvUHcrWmo3ZEpkZWRVMm5HTkxOcW9DT2kzYSs2WnlKdlBFM2ViNkhyaHp6TkJOSWZKUzNHOXhJbE1hMWIxVXIwODdid2Nya1p6RzgwbW1IbzNrYk1GbXBCOVpQdVdMRzI2OHNQRkxWMWVQWDk5OUc3ZjhTeEFFTjdUT1JJcVUrVW9NVThiYVArZW5FeU5mcno4ckRZb2Y4XC9cL3dmNlQ5M3RFd01BQUE9PSIsInN1YiI6InNoZXJsb2NrIiwicm9sZXMiOlsiUk9MRV9CT1NTIl0sImV4cCI6MTUwMjYyMDc0MSwiaWF0IjoxNTAyNjE3MTQxfQ.kIiXpd90e2jdLTbQX7GakBdEiz59xL9LYEVILcCErLQ, refresh_token:eyJhbGciOiJIUzI1NiJ9.eyJwcmluY2lwYWwiOiJINHNJQUFBQUFBQUFBSlZTUFVcL2NRQlI4dmh5Q0NJbVBTSW1VQXBwQUZcL21rcEx3cWgwZ2taSEVJY3cxSW9EMzdZUmJXdTJaM0RYY051aW9wS0loSWtKQm9LZmtuU1pNZkVJV0NscG8yYncySER4ckVWdmJiOGN5OEdWOWN3NURSOERIUmpBdmpaeUpQdVBSTnBybE1ERWE1NXJicjV3WjFqTFpBZkNtQUxackE3ZkVxNEFWUTRiR0ZWOEUyMjJNMXdXUlNhN2EzTWJMMWpvWVBTaWQzakp1YXBiaXY5STVcL3p4MHBqUThFU21ydnZBTERxekRKb2tqbDBpNHFPZFwvSnVNWjRGU2JLV2FDaUhUZDZIZEVOU3N1Wk1JUFFZWlNzTFRBT1lKVGxka3VSS2tkallmeldiRzY1cUlWbzZ3R01aTXdZY3Zkb2s5QTY2KzdlMlpTMHdTNGNRTFdUZVhRb3Uxa0g5UjJQUDZlRW9LMjVrbWFtSlZNVjgwM3V4SW1cL04zWDg1K2lzMTZvQVVDYnZuXC82bW5MOXRRT1wvWCtzMTBFYlFYV1hnellMMkUxVHNadVprc21WYzBPdVdcL3Awc1wvVHE2XC9yYjBnWllmNFwvUHcrWmo3ZEpkZWRVMm5HTkxOcW9DT2kzYSs2WnlKdlBFM2ViNkhyaHp6TkJOSWZKUzNHOXhJbE1hMWIxVXIwODdid2Nya1p6RzgwbW1IbzNrYk1GbXBCOVpQdVdMRzI2OHNQRkxWMWVQWDk5OUc3ZjhTeEFFTjdUT1JJcVUrVW9NVThiYVArZW5FeU5mcno4ckRZb2Y4XC9cL3dmNlQ5M3RFd01BQUE9PSIsInN1YiI6InNoZXJsb2NrIiwicm9sZXMiOlsiUk9MRV9CT1NTIl0sImlhdCI6MTUwMjYxNzE0MX0.mBvosLDdyKfX3DnnevW8UQbyHNVnbvfcIucmuCwnkK4, roles:[ROLE_BOSS], token_type:Bearer, expires_in:3600, username:sherlock]
Return 401 if the supplied accessToken is not valid
Request
curl -X "POST" "http://localhost:8080/oauth/access_token" \
-H "Accept: application/json" \
-H "Content-Type: application/x-www-form-urlencoded" \
--data-urlencode "grant_type=refresh_token" \
--data-urlencode "refresh_token=wrong refresh token"
Response
403
{
"path": "/oauth/access_token",
"error": "Forbidden",
"message": "No message available",
"timestamp": 1502617141630,
"status": 403
}