From 48894b2176e7f6a177986b824e3838240da78c1a Mon Sep 17 00:00:00 2001 From: Anton Romanov Date: Tue, 12 Mar 2019 13:40:48 +0400 Subject: [PATCH] display user in filter --- .../configuration/SecurityConfiguration.java | 2 +- .../core/controller/AdviceController.java | 24 ++++++------- .../index/controller/IndexController.java | 21 ++++++++++++ .../ru/ulstu/user/service/UserService.java | 2 +- .../java/ru/ulstu/user/service/UserUtils.java | 34 ------------------- src/main/resources/templates/default.html | 2 +- 6 files changed, 34 insertions(+), 51 deletions(-) create mode 100644 src/main/java/ru/ulstu/index/controller/IndexController.java delete mode 100644 src/main/java/ru/ulstu/user/service/UserUtils.java diff --git a/src/main/java/ru/ulstu/configuration/SecurityConfiguration.java b/src/main/java/ru/ulstu/configuration/SecurityConfiguration.java index da498fa..591fa0c 100644 --- a/src/main/java/ru/ulstu/configuration/SecurityConfiguration.java +++ b/src/main/java/ru/ulstu/configuration/SecurityConfiguration.java @@ -58,7 +58,7 @@ public class SecurityConfiguration extends WebSecurityConfigurerAdapter { .anyRequest() .permitAll(); http.anonymous() - .principal("developer") + .principal("admin") .authorities(UserRoleConstants.ADMIN); } else { log.debug("Security enabled"); diff --git a/src/main/java/ru/ulstu/core/controller/AdviceController.java b/src/main/java/ru/ulstu/core/controller/AdviceController.java index d826aed..8fadd03 100644 --- a/src/main/java/ru/ulstu/core/controller/AdviceController.java +++ b/src/main/java/ru/ulstu/core/controller/AdviceController.java @@ -6,7 +6,7 @@ import org.springframework.validation.FieldError; import org.springframework.web.bind.MethodArgumentNotValidException; import org.springframework.web.bind.annotation.ControllerAdvice; import org.springframework.web.bind.annotation.ExceptionHandler; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.ModelAttribute; import ru.ulstu.core.error.EntityIdIsNullException; import ru.ulstu.core.model.ErrorConstants; import ru.ulstu.core.model.response.Response; @@ -20,33 +20,29 @@ import ru.ulstu.user.error.UserNotActivatedException; import ru.ulstu.user.error.UserNotFoundException; import ru.ulstu.user.error.UserPasswordsNotValidOrNotMatchException; import ru.ulstu.user.error.UserResetKeyError; +import ru.ulstu.user.service.UserService; import java.util.Set; import java.util.stream.Collectors; -import org.springframework.ui.Model; -import org.springframework.web.bind.annotation.ModelAttribute; -import ru.ulstu.user.service.UserService; -@RestController @ControllerAdvice public class AdviceController { private final static String USER_NAME_TEMPLATE = "%s %s %s"; private final Logger log = LoggerFactory.getLogger(AdviceController.class); private final UserService userService; - public AdviceController(UserService userService) { this.userService = userService; } - - @ModelAttribute - public void globalAttributes(Model model) { - model.addAttribute("currentUser", String.format(USER_NAME_TEMPLATE, - userService.getCurrentUser().getLastName(), - userService.getCurrentUser().getFirstName().substring(0, 1), - userService.getCurrentUser().getFirstName().substring(0, 1))); + + @ModelAttribute("currentUser") + public String getCurrentUser() { + return String.format(USER_NAME_TEMPLATE, + userService.getCurrentUser().getLastName(), + userService.getCurrentUser().getFirstName().substring(0, 1), + userService.getCurrentUser().getFirstName().substring(0, 1)); } - + private Response handleException(ErrorConstants error) { log.warn(error.toString()); return new Response<>(error); diff --git a/src/main/java/ru/ulstu/index/controller/IndexController.java b/src/main/java/ru/ulstu/index/controller/IndexController.java new file mode 100644 index 0000000..d964997 --- /dev/null +++ b/src/main/java/ru/ulstu/index/controller/IndexController.java @@ -0,0 +1,21 @@ +package ru.ulstu.index.controller; + +import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import ru.ulstu.core.controller.AdviceController; +import ru.ulstu.user.service.UserService; + +@Controller() +@RequestMapping(value = "/index") +public class IndexController extends AdviceController { + public IndexController(UserService userService) { + super(userService); + } + + @GetMapping + public void currentUser(ModelMap modelMap) { + //нужен здесь для добавления параметров на стартовой странице + } +} diff --git a/src/main/java/ru/ulstu/user/service/UserService.java b/src/main/java/ru/ulstu/user/service/UserService.java index 14d7f3c..25d8e95 100644 --- a/src/main/java/ru/ulstu/user/service/UserService.java +++ b/src/main/java/ru/ulstu/user/service/UserService.java @@ -315,7 +315,7 @@ public class UserService implements UserDetailsService { public User findById(Integer id) { return userRepository.findOne(id); } - + public User getCurrentUser() { String login = UserUtils.getCurrentUserLogin(); User user = userRepository.findOneByLoginIgnoreCase(login); diff --git a/src/main/java/ru/ulstu/user/service/UserUtils.java b/src/main/java/ru/ulstu/user/service/UserUtils.java deleted file mode 100644 index 0314479..0000000 --- a/src/main/java/ru/ulstu/user/service/UserUtils.java +++ /dev/null @@ -1,34 +0,0 @@ -package ru.ulstu.user.service; -import org.apache.commons.lang3.RandomStringUtils; -import org.springframework.security.core.Authentication; -import org.springframework.security.core.context.SecurityContext; -import org.springframework.security.core.context.SecurityContextHolder; -import org.springframework.security.core.userdetails.UserDetails; - -public class UserUtils { - private static final int DEF_COUNT = 20; - - public static String generateActivationKey() { - return RandomStringUtils.randomNumeric(DEF_COUNT); - } - - public static String generateResetKey() { - return RandomStringUtils.randomNumeric(DEF_COUNT); - } - - public static String getCurrentUserLogin() { - final SecurityContext securityContext = SecurityContextHolder.getContext(); - if (securityContext == null) { - return null; - } - final Authentication authentication = securityContext.getAuthentication(); - if (authentication.getPrincipal() instanceof UserDetails) { - final UserDetails springSecurityUser = (UserDetails) authentication.getPrincipal(); - return springSecurityUser.getUsername(); - } - if (authentication.getPrincipal() instanceof String) { - return (String) authentication.getPrincipal(); - } - return null; - } -} diff --git a/src/main/resources/templates/default.html b/src/main/resources/templates/default.html index a63a087..c440bb7 100644 --- a/src/main/resources/templates/default.html +++ b/src/main/resources/templates/default.html @@ -1,6 +1,6 @@ + xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout" xmlns:th="http://www.w3.org/1999/xhtml">