summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGeorg Pfuetzenreuter2022-05-08 15:07:14 +0200
committerGeorg Pfuetzenreuter2022-05-08 15:07:14 +0200
commitb48fe2fd1086892b439454ad3843705baf34b58b (patch)
tree5cb18f652c7ad89c282b0299234873321702ad2b
parenta014a0126fa72c9b1630c718d05f1652dfc13fb8 (diff)
downloadpubsh-web-b48fe2fd1086892b439454ad3843705baf34b58b.tar.gz
pubsh-web-b48fe2fd1086892b439454ad3843705baf34b58b.tar.bz2
pubsh-web-b48fe2fd1086892b439454ad3843705baf34b58b.zip
Move shell deletion to separate mapping
Signed-off-by: Georg Pfuetzenreuter <mail@georg-pfuetzenreuter.net>
-rw-r--r--src/main/java/net/libertacasa/pubsh/web/Docker.java1
-rw-r--r--src/main/java/net/libertacasa/pubsh/web/WebApplication.java21
-rw-r--r--src/main/resources/templates/portal.html2
3 files changed, 20 insertions, 4 deletions
diff --git a/src/main/java/net/libertacasa/pubsh/web/Docker.java b/src/main/java/net/libertacasa/pubsh/web/Docker.java
index a889703..ff81be3 100644
--- a/src/main/java/net/libertacasa/pubsh/web/Docker.java
+++ b/src/main/java/net/libertacasa/pubsh/web/Docker.java
@@ -15,7 +15,6 @@ import com.github.dockerjava.api.command.ListContainersCmd;
import com.github.dockerjava.api.command.ListImagesCmd;
import com.github.dockerjava.api.command.WaitContainerResultCallback;
import com.github.dockerjava.api.model.Image;
-import com.github.dockerjava.api.model.SearchItem;
import com.github.dockerjava.core.DefaultDockerClientConfig;
import com.github.dockerjava.core.DockerClientConfig;
import com.github.dockerjava.core.DockerClientImpl;
diff --git a/src/main/java/net/libertacasa/pubsh/web/WebApplication.java b/src/main/java/net/libertacasa/pubsh/web/WebApplication.java
index 4c06c29..c9cbe07 100644
--- a/src/main/java/net/libertacasa/pubsh/web/WebApplication.java
+++ b/src/main/java/net/libertacasa/pubsh/web/WebApplication.java
@@ -157,8 +157,7 @@ public class WebApplication {
System.out.printf("Deletion triggered for ID %s by %s (%s)\n", id, userid, username);
- //Docker.deleteContainer(id);
- Docker.deleteShell(username, id); //to-do: move to separate mapping
+ Docker.deleteContainer(id);
return("redirect:/portal");
}
@@ -248,6 +247,24 @@ public class WebApplication {
}
return("redirect:/portal");
+ }
+
+ @DeleteMapping("/frontend/shell/delete/{id}")
+ public static String deleteShell(@PathVariable String id, HttpServletRequest request, RedirectAttributes redirectAttributes) {
+ // [Start] This block should move to a logging method. It's only job is to print user details to the console.
+ KeycloakAuthenticationToken principal = (KeycloakAuthenticationToken) request.getUserPrincipal();
+ String username= null;
+ String userid = principal.getName();
+ IDToken token = principal.getAccount().getKeycloakSecurityContext().getIdToken();
+ Map<String, Object> customClaims = token.getOtherClaims();
+ username = String.valueOf(customClaims.get("username"));
+ // [End]
+
+ System.out.printf("Deletion triggered for ID %s by %s (%s)\n", id, userid, username);
+
+ Docker.deleteShell(username, id);
+
+ return("redirect:/portal");
}
@GetMapping(path = "/logout")
diff --git a/src/main/resources/templates/portal.html b/src/main/resources/templates/portal.html
index 568e4da..33934c3 100644
--- a/src/main/resources/templates/portal.html
+++ b/src/main/resources/templates/portal.html
@@ -50,7 +50,7 @@
<td th:text="${container.id}" />
<td th:text="${container.status}" />
<td>
-<form id="deletion_pseudoform" action="#" th:action="@{'/frontend/container/delete/{id}'(id=${container.id})}" th:method="delete" th:containerid="${container.id}" th:containerShaSum="${container.imageId}" th:onsubmit="return confirm('Do you really want to delete the container with ID ' + this.getAttribute('containerid') + ' which is attached to the image with checksum ' + this.getAttribute('containerShaSum') + ' ?');">
+<form id="deletion_pseudoform" action="#" th:action="@{'/frontend/shell/delete/{id}'(id=${container.id})}" th:method="delete" th:containerid="${container.id}" th:containerShaSum="${container.imageId}" th:onsubmit="return confirm('Do you really want to delete the container with ID ' + this.getAttribute('containerid') + ' which is attached to the image with checksum ' + this.getAttribute('containerShaSum') + ' ?');">
<button class="btn btn-danger" id="deletion_submission" type="submit">Delete</button>
</form>
</td>