Size: a a a

Spring Framework and more

2020 June 09

АО

Александр Остапенко... in Spring Framework and more
Cyclone
Смотри spring dev tools. Вообще спринг сам по себе загружается в районе секунды, так что если твоя программа тормозит, то это не из-за спринга.
Спасибо. Полажу с профайлером по проекту
источник

C

Cyclone in Spring Framework and more
Можно флайтрекордером на старте записать.
источник

Ю

Юрий in Spring Framework and more
Anton Krasnov
создай свои эксепшены
ии че?
источник

RS

Ruslan Stelmachenko in Spring Framework and more
Юрий
Здравствуйте, подскажите, как правильно нужно обработать, чтобы стректрейс не сыпался. RestControllerAdvice не отлавливает ексепшины
из контекста вопроса не понятно, что это метод класса UserDetailsService, но повангую и предположу, что это так. Если я прав, то этот метод вызывается из спринг-секьюрити в фильтр-чейне, поэтому его эксепшен-хандлер и не отлавливает. на фильтры он не распространяется. только на эксепшены, выкидываемые уже из контроллеров.

стектрейс не помню, чтобы сыпался, если юзер не найден. это надо дебагать или хотя бы анализировать трейс и смотреть, откуда он кидается и где логируется.
источник

Ю

Юрий in Spring Framework and more
Ruslan Stelmachenko
из контекста вопроса не понятно, что это метод класса UserDetailsService, но повангую и предположу, что это так. Если я прав, то этот метод вызывается из спринг-секьюрити в фильтр-чейне, поэтому его эксепшен-хандлер и не отлавливает. на фильтры он не распространяется. только на эксепшены, выкидываемые уже из контроллеров.

стектрейс не помню, чтобы сыпался, если юзер не найден. это надо дебагать или хотя бы анализировать трейс и смотреть, откуда он кидается и где логируется.
да, да это все спринг секьюрити
источник

Ю

Юрий in Spring Framework and more
Ruslan Stelmachenko
из контекста вопроса не понятно, что это метод класса UserDetailsService, но повангую и предположу, что это так. Если я прав, то этот метод вызывается из спринг-секьюрити в фильтр-чейне, поэтому его эксепшен-хандлер и не отлавливает. на фильтры он не распространяется. только на эксепшены, выкидываемые уже из контроллеров.

стектрейс не помню, чтобы сыпался, если юзер не найден. это надо дебагать или хотя бы анализировать трейс и смотреть, откуда он кидается и где логируется.
используется DaoUsernameProvider и у него есть булевская переменная hideUserNotFoundExceptions я ее устанавоиваю на фолс, чтобы я мог кастомную надпись отправлять, (если ставлю трю, то стектрейс не вываливается)
источник

Ю

Юрий in Spring Framework and more
но я хочу больше инфы отдавать пользователю
источник

Ю

Юрий in Spring Framework and more
Ruslan Stelmachenko
из контекста вопроса не понятно, что это метод класса UserDetailsService, но повангую и предположу, что это так. Если я прав, то этот метод вызывается из спринг-секьюрити в фильтр-чейне, поэтому его эксепшен-хандлер и не отлавливает. на фильтры он не распространяется. только на эксепшены, выкидываемые уже из контроллеров.

стектрейс не помню, чтобы сыпался, если юзер не найден. это надо дебагать или хотя бы анализировать трейс и смотреть, откуда он кидается и где логируется.
у спринг секьюрити я как понимаю свой ексепшн хендлер и он находится в токен ендпоинте
источник

RS

Ruslan Stelmachenko in Spring Framework and more
Ну это тогда надо делать не на уровне эксепшен-хэндлера, а на уровне кишок спринг-секьюрити. Уж не помню какой класс или метод надо переопределить для этого, но копать нужно именно в этом направлении
источник

Ю

Юрий in Spring Framework and more
Ruslan Stelmachenko
Ну это тогда надо делать не на уровне эксепшен-хэндлера, а на уровне кишок спринг-секьюрити. Уж не помню какой класс или метод надо переопределить для этого, но копать нужно именно в этом направлении
try {
user = retrieveUser(username,
  (UsernamePasswordAuthenticationToken) authentication);
}
catch (UsernameNotFoundException notFound) {
logger.debug("User '" + username + "' not found");

if (hideUserNotFoundExceptions) {
 throw new BadCredentialsException(messages.getMessage(
   "AbstractUserDetailsAuthenticationProvider.badCredentials",
   "Bad credentials"));
}
else {
 throw notFound;
}
}
источник

Ю

Юрий in Spring Framework and more
вот как это работает: я hideUserNotFoundExceptions выставляю как фолс и по идее он должен выводить мое кастомное сообщение
источник

Ю

Юрий in Spring Framework and more
и он клиенту действительно кастомное сообщение и отправляет, но вываливает стектрейс
источник

Ю

Юрий in Spring Framework and more
если hideUserNotFoundExceptions равен true , то стректрейса не будет как и кастомного сообщения
источник

RS

Ruslan Stelmachenko in Spring Framework and more
А где вы отправляете кастомное сообщение?
источник

RS

Ruslan Stelmachenko in Spring Framework and more
Вроде бы AuthenticationFailureHandler надо переопределить
источник

Ю

Юрий in Spring Framework and more
Ruslan Stelmachenko
А где вы отправляете кастомное сообщение?
в userDetails
источник

RS

Ruslan Stelmachenko in Spring Framework and more
В любом случае стектрейс же кто-то кидает. И в самом стектрейсе есть полная инфа о том, откуда он кидается, и полный путь, чтобы проследить всю цепочку.
источник

RS

Ruslan Stelmachenko in Spring Framework and more
Юрий
в userDetails
так тут вы никакое кастомное сообщение не отправляете, а просто кидаете эксепшен
источник

Ю

Юрий in Spring Framework and more
Ruslan Stelmachenko
так тут вы никакое кастомное сообщение не отправляете, а просто кидаете эксепшен
источник

Ю

Юрий in Spring Framework and more
Ruslan Stelmachenko
так тут вы никакое кастомное сообщение не отправляете, а просто кидаете эксепшен
да…. так и есть(
источник