Ситуация следующая:
Юзер логинится в личный кабинет, переходя по рестам в логах могу отловить его логин.
В одном из классов, метод SecurityUtils.getCurrentUserLogin()
возвращает
anonymousUser
@RestController
@RequestMapping("/open-api")
public class BillingOpenResource {
@GetMapping(value = "/billing/getEpd/{account}/{date}")
public void getEpd(@PathVariable String account, @PathVariable String date, HttpServletResponse resp) throws IOException, JSONException {
log.debug("getEpd account: {}, date: {}", account, date);
log.debug(SecurityUtils.getCurrentUserLogin()); //anonymousUser
regionService.findRegionCodeByAccount(account);
...
}
@Service
@Transactional
public class RegionService {
...
public String findRegionCodeByAccount(String account){
LOGGER.debug(SecurityUtils.getCurrentUserLogin()); //anonymousUser
.....
}
в процессе выполнения кода происходит ексепшин sun.security.validator.ValidatorException
связанное с отправкой на https, это нормально))
дальше выполняется:
@RestController
@RequestMapping("/api")
public class RegionExtResource {
@GetMapping("/regions-ext/getRegionByAccount/{account}")
public ResponseEntity<Region> getRegionByAccount(@PathVariable String account,@RequestHeader(value = "Authorization") String authorization) throws IOException, JSONException {
log.debug(SecurityUtils.getCurrentUserLogin());// Ivanov
....
}
возвращаясь в класс RegionService
в тот же метод findRegionCodeByAccount
мы уже получаем логин юзера
я подозреваю что вероятно это связанно с реквестмапингом /open-api
и /api
но не могу понять где и что пропущено, куда смотреть?.
public final class SecurityUtils {
private SecurityUtils() {
}
public static String getCurrentUserLogin() {
SecurityContext securityContext = SecurityContextHolder.getContext();
Authentication authentication = securityContext.getAuthentication();
String userName = null;
if (authentication != null) {
if (authentication.getPrincipal() instanceof UserDetails) {
UserDetails springSecurityUser = (UserDetails) authentication.getPrincipal();
userName = springSecurityUser.getUsername();
} else if (authentication.getPrincipal() instanceof String) {
userName = (String) authentication.getPrincipal();
}
}
return userName;
}
}
лог файл https://github.com/maxim-grinchenko/spring-boot-web-jsp/blob/master/logfile
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Дооброго времени суток)У меня есть бд (MySQL) на хостинге