From cac32dc6726c02c5eb6939d27c7b38ed2cc76a70 Mon Sep 17 00:00:00 2001 From: Christoph Date: Fri, 6 Mar 2020 13:32:59 +0100 Subject: [PATCH 1/2] move createAccountFromPrincipal to service --- .../controllers/Gruppen2Controller.java | 28 ++++++------------- .../gruppen2/services/KeyCloakService.java | 27 ++++++++++++++++++ 2 files changed, 36 insertions(+), 19 deletions(-) create mode 100644 src/main/java/mops/gruppen2/services/KeyCloakService.java diff --git a/src/main/java/mops/gruppen2/controllers/Gruppen2Controller.java b/src/main/java/mops/gruppen2/controllers/Gruppen2Controller.java index 2f9fab5..6347a44 100644 --- a/src/main/java/mops/gruppen2/controllers/Gruppen2Controller.java +++ b/src/main/java/mops/gruppen2/controllers/Gruppen2Controller.java @@ -1,32 +1,22 @@ package mops.gruppen2.controllers; -import javax.annotation.security.RolesAllowed; -import mops.gruppen2.security.Account; -import org.keycloak.KeycloakPrincipal; +import mops.gruppen2.services.KeyCloakService; import org.keycloak.adapters.springsecurity.token.KeycloakAuthenticationToken; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.context.annotation.SessionScope; +import javax.annotation.security.RolesAllowed; + @SessionScope @Controller public class Gruppen2Controller { - /** - * Creates an Account. - * - * @param token Ein toller token - * @return Account with current userdata - */ - private Account createAccountFromPrincipal(KeycloakAuthenticationToken token) { - KeycloakPrincipal principal = (KeycloakPrincipal) token.getPrincipal(); - return new Account( - principal.getName(), - principal.getKeycloakSecurityContext().getIdToken().getEmail(), - null, - principal.getKeycloakSecurityContext().getIdToken().getGivenName(), - principal.getKeycloakSecurityContext().getIdToken().getFamilyName(), - token.getAccount().getRoles()); + + private final KeyCloakService keyCloakService; + + public Gruppen2Controller(KeyCloakService keyCloakService) { + this.keyCloakService = keyCloakService; } /**Zeigt die index.html an. @@ -38,7 +28,7 @@ public class Gruppen2Controller { @GetMapping("/") @RolesAllowed({"ROLE_orga", "ROLE_studentin", "ROLE_actuator)"}) public String index(KeycloakAuthenticationToken token, Model model) { - model.addAttribute("account", createAccountFromPrincipal(token)); + model.addAttribute("account", keyCloakService.createAccountFromPrincipal(token)); return "index"; } } diff --git a/src/main/java/mops/gruppen2/services/KeyCloakService.java b/src/main/java/mops/gruppen2/services/KeyCloakService.java new file mode 100644 index 0000000..99d2548 --- /dev/null +++ b/src/main/java/mops/gruppen2/services/KeyCloakService.java @@ -0,0 +1,27 @@ +package mops.gruppen2.services; + +import mops.gruppen2.security.Account; +import org.keycloak.KeycloakPrincipal; +import org.keycloak.adapters.springsecurity.token.KeycloakAuthenticationToken; +import org.springframework.stereotype.Service; + +@Service +public class KeyCloakService { + + /** + * Creates an Account. + * + * @param token Ein toller token + * @return Account with current userdata + */ + public Account createAccountFromPrincipal(KeycloakAuthenticationToken token) { + KeycloakPrincipal principal = (KeycloakPrincipal) token.getPrincipal(); + return new Account( + principal.getName(), + principal.getKeycloakSecurityContext().getIdToken().getEmail(), + null, + principal.getKeycloakSecurityContext().getIdToken().getGivenName(), + principal.getKeycloakSecurityContext().getIdToken().getFamilyName(), + token.getAccount().getRoles()); + } +} From 761727c8f0d09cbb7aeeaefdbf33f66576214983 Mon Sep 17 00:00:00 2001 From: Christoph Date: Fri, 6 Mar 2020 13:35:37 +0100 Subject: [PATCH 2/2] add gruppen2/ prefix to url --- .../java/mops/gruppen2/controllers/Gruppen2Controller.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/java/mops/gruppen2/controllers/Gruppen2Controller.java b/src/main/java/mops/gruppen2/controllers/Gruppen2Controller.java index 6347a44..8af3231 100644 --- a/src/main/java/mops/gruppen2/controllers/Gruppen2Controller.java +++ b/src/main/java/mops/gruppen2/controllers/Gruppen2Controller.java @@ -5,12 +5,14 @@ import org.keycloak.adapters.springsecurity.token.KeycloakAuthenticationToken; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.context.annotation.SessionScope; import javax.annotation.security.RolesAllowed; @SessionScope @Controller +@RequestMapping("/gruppen2") public class Gruppen2Controller { private final KeyCloakService keyCloakService; @@ -25,8 +27,8 @@ public class Gruppen2Controller { * @param model tolles model * @return index.html */ - @GetMapping("/") @RolesAllowed({"ROLE_orga", "ROLE_studentin", "ROLE_actuator)"}) + @GetMapping("") public String index(KeycloakAuthenticationToken token, Model model) { model.addAttribute("account", keyCloakService.createAccountFromPrincipal(token)); return "index";