You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

44 lines
1.5 KiB

3 years ago
  1. package ru.digitalbanana.demoresourceserver.web.controller;
  2. import java.util.Collections;
  3. import java.util.List;
  4. import java.util.Map;
  5. import org.slf4j.Logger;
  6. import org.springframework.beans.factory.annotation.Autowired;
  7. import org.springframework.security.core.annotation.AuthenticationPrincipal;
  8. import org.springframework.security.oauth2.jwt.Jwt;
  9. import org.springframework.web.bind.annotation.CrossOrigin;
  10. import org.springframework.web.bind.annotation.GetMapping;
  11. import org.springframework.web.bind.annotation.PathVariable;
  12. import org.springframework.web.bind.annotation.RestController;
  13. import ru.digitalbanana.demoresourceserver.persistence.model.UserEntity;
  14. import ru.digitalbanana.demoresourceserver.service.UserService;
  15. @CrossOrigin(origins = "*")
  16. @RestController
  17. public class UserInfoController {
  18. private final UserService userService;
  19. private final Logger logger;
  20. @Autowired
  21. public UserInfoController(final Logger logger, final UserService userService) {
  22. this.logger = logger;
  23. this.userService = userService;
  24. }
  25. @GetMapping(value = "/userinfo")
  26. public Map<String, Object> getUser(@AuthenticationPrincipal Jwt principal) {
  27. return Collections.singletonMap("user_name", principal.getClaimAsString("email"));
  28. }
  29. @GetMapping(value = "/user/{email}")
  30. public List<UserEntity> getMethodName(@PathVariable String email) {
  31. logger.debug("Request user by email {}", email);
  32. return userService.findByEmail(email);
  33. }
  34. }