|
13 | 13 | import com.auth0.json.mgmt.users.RecoveryCode; |
14 | 14 | import com.auth0.json.mgmt.users.User; |
15 | 15 | import com.auth0.json.mgmt.users.UsersPage; |
| 16 | +import com.auth0.json.mgmt.refreshtokens.RefreshTokensPage; |
| 17 | +import com.auth0.json.mgmt.sessions.SessionsPage; |
16 | 18 | import com.auth0.net.EmptyBodyRequest; |
17 | 19 | import com.auth0.net.BaseRequest; |
18 | 20 | import com.auth0.net.Request; |
@@ -787,6 +789,103 @@ public Request<AuthenticationMethod> updateAuthenticationMethodById(String userI |
787 | 789 | return request; |
788 | 790 | } |
789 | 791 |
|
| 792 | + /** |
| 793 | + * Get refresh tokens for a user |
| 794 | + * A token with {@code read:refresh_tokens} is needed. |
| 795 | + * See <a href="https://auth0.com/docs/api/management/v2/users/get-refresh-tokens-for-user">https://auth0.com/docs/api/management/v2/users/get-refresh-tokens-for-user</a> |
| 796 | + * |
| 797 | + * @param userId the role id |
| 798 | + * @param filter an optional pagination filter |
| 799 | + * @return a Request to execute |
| 800 | + */ |
| 801 | + public Request<RefreshTokensPage> listRefreshTokens(String userId, PageFilter filter) { |
| 802 | + Asserts.assertNotNull(userId, "user ID"); |
| 803 | + HttpUrl.Builder builder = baseUrl |
| 804 | + .newBuilder() |
| 805 | + .addPathSegments("api/v2/users") |
| 806 | + .addPathSegment(userId) |
| 807 | + .addPathSegment("refresh-tokens"); |
| 808 | + if (filter != null) { |
| 809 | + for (Map.Entry<String, Object> e : filter.getAsMap().entrySet()) { |
| 810 | + builder.addQueryParameter(e.getKey(), String.valueOf(e.getValue())); |
| 811 | + } |
| 812 | + } |
| 813 | + String url = builder.build().toString(); |
| 814 | + return new BaseRequest<>(client, tokenProvider, url, HttpMethod.GET, new TypeReference<RefreshTokensPage>() { |
| 815 | + }); |
| 816 | + } |
| 817 | + |
| 818 | + /** |
| 819 | + * Delete all refresh tokens for a user. |
| 820 | + * A token with scope {@code delete:refresh_tokens} is needed. |
| 821 | + * See <a href="https://auth0.com/docs/api/management/v2/users/delete-refresh-tokens-for-user">https://auth0.com/docs/api/management/v2/users/delete-refresh-tokens-for-user</a> |
| 822 | + * |
| 823 | + * @param userId the user to delete the refresh tokens for |
| 824 | + * @return a Request to execute. |
| 825 | + */ |
| 826 | + public Request<Void> deleteRefreshTokens(String userId) { |
| 827 | + Asserts.assertNotNull(userId, "user ID"); |
| 828 | + |
| 829 | + String url = baseUrl |
| 830 | + .newBuilder() |
| 831 | + .addPathSegments("api/v2/users") |
| 832 | + .addPathSegment(userId) |
| 833 | + .addPathSegment("refresh-tokens") |
| 834 | + .build() |
| 835 | + .toString(); |
| 836 | + |
| 837 | + return new VoidRequest(this.client, tokenProvider, url, HttpMethod.DELETE); |
| 838 | + } |
| 839 | + |
| 840 | + |
| 841 | + /** |
| 842 | + * Get sessions for user |
| 843 | + * A token with {@code read:sessions} is needed. |
| 844 | + * See <a href="https://auth0.com/docs/api/management/v2/users/get-sessions-for-user">https://auth0.com/docs/api/management/v2/users/get-sessions-for-user</a> |
| 845 | + * |
| 846 | + * @param userId the role id |
| 847 | + * @param filter an optional pagination filter |
| 848 | + * @return a Request to execute |
| 849 | + */ |
| 850 | + public Request<SessionsPage> listSessions(String userId, PageFilter filter) { |
| 851 | + Asserts.assertNotNull(userId, "user ID"); |
| 852 | + HttpUrl.Builder builder = baseUrl |
| 853 | + .newBuilder() |
| 854 | + .addPathSegments("api/v2/users") |
| 855 | + .addPathSegment(userId) |
| 856 | + .addPathSegment("sessions"); |
| 857 | + if (filter != null) { |
| 858 | + for (Map.Entry<String, Object> e : filter.getAsMap().entrySet()) { |
| 859 | + builder.addQueryParameter(e.getKey(), String.valueOf(e.getValue())); |
| 860 | + } |
| 861 | + } |
| 862 | + String url = builder.build().toString(); |
| 863 | + return new BaseRequest<>(client, tokenProvider, url, HttpMethod.GET, new TypeReference<SessionsPage>() { |
| 864 | + }); |
| 865 | + } |
| 866 | + |
| 867 | + /** |
| 868 | + * Delete sessions for user |
| 869 | + * A token with scope {@code delete:sessions} is needed. |
| 870 | + * See <a href="https://auth0.com/docs/api/management/v2/users/delete-sessions-for-user">https://auth0.com/docs/api/management/v2/users/delete-sessions-for-user</a> |
| 871 | + * |
| 872 | + * @param userId the user to delete the sessions for |
| 873 | + * @return a Request to execute. |
| 874 | + */ |
| 875 | + public Request<Void> deleteSessions(String userId) { |
| 876 | + Asserts.assertNotNull(userId, "user ID"); |
| 877 | + |
| 878 | + String url = baseUrl |
| 879 | + .newBuilder() |
| 880 | + .addPathSegments("api/v2/users") |
| 881 | + .addPathSegment(userId) |
| 882 | + .addPathSegment("sessions") |
| 883 | + .build() |
| 884 | + .toString(); |
| 885 | + |
| 886 | + return new VoidRequest(this.client, tokenProvider, url, HttpMethod.DELETE); |
| 887 | + } |
| 888 | + |
790 | 889 | private static void encodeAndAddQueryParam(HttpUrl.Builder builder, BaseFilter filter) { |
791 | 890 | if (filter != null) { |
792 | 891 | for (Map.Entry<String, Object> e : filter.getAsMap().entrySet()) { |
|
0 commit comments