Skip to content

Commit 90e4800

Browse files
authored
Added support for revoke session endpoint (#699)
1 parent 80fd4a6 commit 90e4800

File tree

2 files changed

+42
-0
lines changed

2 files changed

+42
-0
lines changed

src/main/java/com/auth0/client/mgmt/SessionsEntity.java

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import com.auth0.json.mgmt.sessions.Session;
44
import com.auth0.net.BaseRequest;
5+
import com.auth0.net.EmptyBodyVoidRequest;
56
import com.auth0.net.Request;
67
import com.auth0.net.VoidRequest;
78
import com.auth0.net.client.Auth0HttpClient;
@@ -64,4 +65,25 @@ public Request<Void> delete(String sessionId){
6465

6566
return new VoidRequest(client, tokenProvider, url, HttpMethod.DELETE);
6667
}
68+
69+
/**
70+
* Revoke the session for a given session ID.
71+
* A token with scope {@code delete:sessions}, {@code delete:refresh_tokens} is needed.
72+
* See <a href="https://auth0.com/docs/api/management/v2/sessions/revoke-session">https://auth0.com/docs/api/management/v2/sessions/revoke-session</a>
73+
* @param sessionId the session ID.
74+
* @return a Request to execute.
75+
*/
76+
public Request<Void> revoke(String sessionId){
77+
Asserts.assertNotNull(sessionId, "session ID");
78+
79+
String url = baseUrl
80+
.newBuilder()
81+
.addPathSegments("api/v2/sessions")
82+
.addPathSegment(sessionId)
83+
.addPathSegment("revoke")
84+
.build()
85+
.toString();
86+
87+
return new EmptyBodyVoidRequest<>(client, tokenProvider, url, HttpMethod.POST, new TypeReference<Void>() {});
88+
}
6789
}

src/test/java/com/auth0/client/mgmt/SessionsEntityTest.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,4 +58,24 @@ public void shouldDeleteSession() throws Exception {
5858
assertThat(recordedRequest, hasHeader("Authorization", "Bearer apiToken"));
5959
}
6060

61+
@Test
62+
public void revokeShouldThrowOnNullSessionId() {
63+
verifyThrows(IllegalArgumentException.class,
64+
() -> api.sessions().revoke(null),
65+
"'session ID' cannot be null!");
66+
}
67+
68+
@Test
69+
public void shouldRevoke() throws Exception {
70+
Request<Void> request = api.sessions().revoke("session_ID");
71+
assertThat(request, is(notNullValue()));
72+
73+
server.noContentResponse();
74+
request.execute().getBody();
75+
RecordedRequest recordedRequest = server.takeRequest();
76+
77+
assertThat(recordedRequest, hasMethodAndPath(HttpMethod.POST, "/api/v2/sessions/session_ID/revoke"));
78+
assertThat(recordedRequest, hasHeader("Authorization", "Bearer apiToken"));
79+
}
80+
6181
}

0 commit comments

Comments
 (0)