Skip to content

Commit 6cb1247

Browse files
authored
Merge pull request #56 from lanechase34/JWT-Handler-Format-Fix
JWT Handler Response Format Fix
2 parents 159e7a2 + 630e8eb commit 6cb1247

File tree

2 files changed

+27
-13
lines changed

2 files changed

+27
-13
lines changed

handlers/Jwt.cfc

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,14 @@ component extends="coldbox.system.RestHandler" {
1414
function refreshToken( event, rc, prc ){
1515
// If endpoint not enabled, just 404 it
1616
if ( !variables.jwtService.getSettings().jwt.enableRefreshEndpoint ) {
17-
return event
17+
event
1818
.getResponse()
1919
.setErrorMessage(
2020
"Refresh Token Endpoint Disabled",
2121
404,
2222
"Disabled"
2323
);
24+
return;
2425
}
2526

2627
try {
@@ -32,27 +33,31 @@ component extends="coldbox.system.RestHandler" {
3233
.setData( prc.newTokens )
3334
.addMessage( "Tokens refreshed! The passed in refresh token has been invalidated" );
3435
} catch ( RefreshTokensNotActive e ) {
35-
return event.getResponse().setErrorMessage( "Refresh Tokens Not Active", 404, "Disabled" );
36+
event.getResponse().setErrorMessage( "Refresh Tokens Not Active", 404, "Disabled" );
3637
} catch ( TokenNotFoundException e ) {
37-
return event
38+
event
3839
.getResponse()
3940
.setErrorMessage(
4041
"The refresh token was not passed via the header or the rc. Cannot refresh the unrefreshable!",
4142
400,
4243
"Missing refresh token"
4344
);
4445
} catch ( TokenInvalidException e ) {
45-
prc.response.setErrorMessage(
46-
"Invalid Token - #e.message#",
47-
401,
48-
"Invalid Token"
49-
);
46+
event
47+
.getResponse()
48+
.setErrorMessage(
49+
"Invalid Token - #e.message#",
50+
401,
51+
"Invalid Token"
52+
);
5053
} catch ( TokenExpiredException e ) {
51-
prc.response.setErrorMessage(
52-
"Token Expired - #e.message#",
53-
400,
54-
"Token Expired"
55-
);
54+
event
55+
.getResponse()
56+
.setErrorMessage(
57+
"Token Expired - #e.message#",
58+
400,
59+
"Token Expired"
60+
);
5661
}
5762
}
5863

test-harness/tests/specs/integration/JWTSpec.cfc

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,15 @@ component extends="coldbox.system.testing.BaseTestCase" appMapping="/root" {
145145
404,
146146
event.getResponse().getMessagesString()
147147
);
148+
149+
// Matches the ColdBox RestHandler default response format spec
150+
var jsonResponse = deserializeJSON( event.getRenderedContent() );
151+
expect( jsonResponse ).toHaveLength( 4 );
152+
expect( jsonResponse ).toHaveKey( "data" );
153+
expect( jsonResponse ).toHaveKey( "error" );
154+
expect( jsonResponse ).toHaveKey( "pagination" );
155+
expect( jsonResponse ).toHaveKey( "messages" );
156+
expect( jsonResponse.messages[ 1 ] ).toBe( event.getResponse().getMessagesString() );
148157
} );
149158
} );
150159
given( "An activated endpoint but no refresh tokens passed", function(){

0 commit comments

Comments
 (0)