Retrieve Keycloak user data using received access token
Requires 
import org.keycloak.KeycloakPrincipal;
import org.keycloak.KeycloakSecurityContext;
import org.keycloak.representations.AccessToken;
private Set<String> selectResourceRoles(String keycloakResource,HttpServletRequest request ) {
    	  Set<String> roles = new HashSet<>();
    	  AccessToken.Access resourceAccess =
    	      getKeycloakSecurityContext(request).getToken().getResourceAccess(keycloakResource);
    	  if (resourceAccess != null && resourceAccess.getRoles() != null) {
    	    roles.addAll(resourceAccess.getRoles());
    	  }
    	  return Collections.unmodifiableSet(roles);
    }
    
    private KeycloakSecurityContext getKeycloakSecurityContext(HttpServletRequest request){
    	KeycloakPrincipal principal = (KeycloakPrincipal) request.getUserPrincipal();
		 
    	return  principal.getKeycloakSecurityContext();
    }
    
    private AccessToken getAccessToken(HttpServletRequest request){
    	KeycloakPrincipal principal = (KeycloakPrincipal) request.getUserPrincipal();
		 
    	return  principal.getKeycloakSecurityContext().getToken();
    }
    
    private String getLoggedinUser(HttpServletRequest request){
    	KeycloakPrincipal principal = (KeycloakPrincipal) request.getUserPrincipal();
	    System.out.println(String.format("User '%s' with email '%s' made request to CustomerService REST endpoint", getAccessToken(request).getPreferredUsername(), getAccessToken(request).getEmail()));
    	return  principal.getKeycloakSecurityContext().getIdToken().getSubject();
    }
