Merge branch 'Services' of https://github.com/hhu-propra2/abschlussprojekt-it-bois into Services
This commit is contained in:
@ -1,36 +1,24 @@
|
|||||||
package mops.gruppen2.controllers;
|
package mops.gruppen2.controllers;
|
||||||
|
|
||||||
import javax.annotation.security.RolesAllowed;
|
import mops.gruppen2.services.KeyCloakService;
|
||||||
import mops.gruppen2.security.Account;
|
|
||||||
import mops.gruppen2.services.GruppenService;
|
|
||||||
import org.keycloak.KeycloakPrincipal;
|
|
||||||
import org.keycloak.adapters.springsecurity.token.KeycloakAuthenticationToken;
|
import org.keycloak.adapters.springsecurity.token.KeycloakAuthenticationToken;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Controller;
|
import org.springframework.stereotype.Controller;
|
||||||
import org.springframework.ui.Model;
|
import org.springframework.ui.Model;
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
import org.springframework.web.context.annotation.SessionScope;
|
import org.springframework.web.context.annotation.SessionScope;
|
||||||
|
|
||||||
@SessionScope
|
import javax.annotation.security.RolesAllowed;
|
||||||
|
|
||||||
@Controller
|
@Controller
|
||||||
|
@RequestMapping("/gruppen2")
|
||||||
public class Gruppen2Controller {
|
public class Gruppen2Controller {
|
||||||
@Autowired
|
|
||||||
GruppenService gruppenService;
|
private final KeyCloakService keyCloakService;
|
||||||
/**
|
|
||||||
* Creates an Account.
|
public Gruppen2Controller(KeyCloakService keyCloakService) {
|
||||||
*
|
this.keyCloakService = keyCloakService;
|
||||||
* @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());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**Zeigt die index.html an.
|
/**Zeigt die index.html an.
|
||||||
@ -39,10 +27,10 @@ public class Gruppen2Controller {
|
|||||||
* @param model tolles model
|
* @param model tolles model
|
||||||
* @return index.html
|
* @return index.html
|
||||||
*/
|
*/
|
||||||
@GetMapping("/")
|
|
||||||
@RolesAllowed({"ROLE_orga", "ROLE_studentin", "ROLE_actuator)"})
|
@RolesAllowed({"ROLE_orga", "ROLE_studentin", "ROLE_actuator)"})
|
||||||
|
@GetMapping("")
|
||||||
public String index(KeycloakAuthenticationToken token, Model model) {
|
public String index(KeycloakAuthenticationToken token, Model model) {
|
||||||
model.addAttribute("account", createAccountFromPrincipal(token));
|
model.addAttribute("account", keyCloakService.createAccountFromPrincipal(token));
|
||||||
return "index";
|
return "index";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
27
src/main/java/mops/gruppen2/services/KeyCloakService.java
Normal file
27
src/main/java/mops/gruppen2/services/KeyCloakService.java
Normal file
@ -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());
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user