package ru.digitalbanana.demoresourceserver.web.controller; import java.util.Collections; import java.util.List; import java.util.Map; import org.slf4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.core.annotation.AuthenticationPrincipal; import org.springframework.security.oauth2.jwt.Jwt; import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RestController; import ru.digitalbanana.demoresourceserver.persistence.model.UserEntity; import ru.digitalbanana.demoresourceserver.service.UserService; @CrossOrigin(origins = "*") @RestController public class UserInfoController { private final UserService userService; private final Logger logger; @Autowired public UserInfoController(final Logger logger, final UserService userService) { this.logger = logger; this.userService = userService; } @GetMapping(value = "/userinfo") public Map getUser(@AuthenticationPrincipal Jwt principal) { return Collections.singletonMap("user_name", principal.getClaimAsString("email")); } @GetMapping(value = "/user/{email}") public List getMethodName(@PathVariable String email) { logger.debug("Request user by email {}", email); return userService.findByEmail(email); } }