Implemented confidential client deregistration task and added tests.
Change-Id: I78118166d0660b0816f6da496cead7d46b60b756
diff --git a/full/src/main/java/de/ids_mannheim/korap/web/controller/OAuthClientController.java b/full/src/main/java/de/ids_mannheim/korap/web/controller/OAuthClientController.java
index a770e0f..eba6325 100644
--- a/full/src/main/java/de/ids_mannheim/korap/web/controller/OAuthClientController.java
+++ b/full/src/main/java/de/ids_mannheim/korap/web/controller/OAuthClientController.java
@@ -3,6 +3,7 @@
import javax.ws.rs.Consumes;
import javax.ws.rs.DELETE;
import javax.ws.rs.FormParam;
+import javax.ws.rs.HeaderParam;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
@@ -78,13 +79,13 @@
@Path("deregister")
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
@ResourceFilters({ AuthenticationFilter.class, BlockingFilter.class })
- public Response deregisterClient (
+ public Response deregisterPublicClient (
@Context SecurityContext securityContext,
@FormParam("client_id") String clientId) {
TokenContext context =
(TokenContext) securityContext.getUserPrincipal();
try {
- clientService.deregisterClient(clientId,
+ clientService.deregisterPublicClient(clientId,
context.getUsername());
return Response.ok().build();
}
@@ -92,19 +93,21 @@
throw responseHandler.throwit(e);
}
}
-
-// @POST
-// @Path("deregister")
-// public OAuth2ClientDto deregisterClient (
-// @Context SecurityContext securityContext) {
-// TokenContext context =
-// (TokenContext) securityContext.getUserPrincipal();
-// try {
-// return clientService.deregisterClient();
-// }
-// catch (KustvaktException e) {
-// throw responseHandler.throwit(e);
-// }
-// }
+
+ @DELETE
+ @Path("deregister/confidential")
+ @Consumes(MediaType.APPLICATION_FORM_URLENCODED)
+ public Response deregisterConfidentialClient (
+ @Context SecurityContext securityContext,
+ @HeaderParam("Authorization") String authorization,
+ @FormParam("client_id") String clientId) {
+ try {
+ clientService.deregisterConfidentialClient(authorization, clientId);
+ return Response.ok().build();
+ }
+ catch (KustvaktException e) {
+ throw responseHandler.throwit(e);
+ }
+ }
}
diff --git a/full/src/main/java/de/ids_mannheim/korap/web/controller/OAuthController.java b/full/src/main/java/de/ids_mannheim/korap/web/controller/OAuthController.java
index 47e5968..3a91014 100644
--- a/full/src/main/java/de/ids_mannheim/korap/web/controller/OAuthController.java
+++ b/full/src/main/java/de/ids_mannheim/korap/web/controller/OAuthController.java
@@ -43,17 +43,14 @@
import de.ids_mannheim.korap.config.Attributes;
import de.ids_mannheim.korap.config.AuthCodeInfo;
-import de.ids_mannheim.korap.config.BeansFactory;
import de.ids_mannheim.korap.config.ClientInfo;
import de.ids_mannheim.korap.config.KustvaktConfiguration;
import de.ids_mannheim.korap.config.Scopes;
import de.ids_mannheim.korap.constant.AuthenticationMethod;
import de.ids_mannheim.korap.constant.TokenType;
import de.ids_mannheim.korap.exceptions.KustvaktException;
-import de.ids_mannheim.korap.exceptions.StatusCodes;
import de.ids_mannheim.korap.handlers.OAuth2Handler;
import de.ids_mannheim.korap.interfaces.AuthenticationManagerIface;
-import de.ids_mannheim.korap.interfaces.EncryptionIface;
import de.ids_mannheim.korap.security.context.TokenContext;
import de.ids_mannheim.korap.user.User;
import de.ids_mannheim.korap.user.UserDetails;
@@ -97,25 +94,25 @@
}
- @POST
- @Path("unregister")
- @ResourceFilters({ AuthenticationFilter.class, BlockingFilter.class })
- public Response unregisterClient (@Context SecurityContext context,
- @HeaderParam("Host") String host,
- @QueryParam("client_secret") String secret,
- @QueryParam("client_id") String client_id) {
- ClientInfo info = new ClientInfo(client_id, secret);
- info.setUrl(host);
- TokenContext ctx = (TokenContext) context.getUserPrincipal();
- try {
- this.handler.getPersistenceHandler().removeClient(info,
- this.controller.getUser(ctx.getUsername()));
- }
- catch (KustvaktException e) {
- throw kustvaktResponseHandler.throwit(e);
- }
- return Response.ok().build();
- }
+// @POST
+// @Path("unregister")
+// @ResourceFilters({ AuthenticationFilter.class, BlockingFilter.class })
+// public Response unregisterClient (@Context SecurityContext context,
+// @HeaderParam("Host") String host,
+// @QueryParam("client_secret") String secret,
+// @QueryParam("client_id") String client_id) {
+// ClientInfo info = new ClientInfo(client_id, secret);
+// info.setUrl(host);
+// TokenContext ctx = (TokenContext) context.getUserPrincipal();
+// try {
+// this.handler.getPersistenceHandler().removeClient(info,
+// this.controller.getUser(ctx.getUsername()));
+// }
+// catch (KustvaktException e) {
+// throw kustvaktResponseHandler.throwit(e);
+// }
+// return Response.ok().build();
+// }
// @POST