Size: a a a

Spring Framework and more

2020 February 01

⠀­­ in Spring Framework and more
Роман Нагаев
это можно настраивать, но получается сложно
Есть материалы какие-то почитать?
источник

LM

Lucas Mabrey in Spring Framework and more
Обрати внимание на hibernate search. Мне кажется ты решаешь задачу в лоб
источник

РН

Роман Нагаев in Spring Framework and more
⠀­­
Есть материалы какие-то почитать?
источник

V@

Vyacheslav @bvn13 in Spring Framework and more
⠀­­
Есть материалы какие-то почитать?
Вот этот чувак майнтейнит гибернейт и активно пишет блог. https://vladmihalcea.com/
источник

V@

Vyacheslav @bvn13 in Spring Framework and more
Vitaly Sirotkin
Значит надо их добавить
почитал я про энтрипоинты эти https://www.baeldung.com/spring-security-multiple-entry-points - не про мой кейс они. мне для АПИ нужно отдавать 403, если не авторизован.
источник

V

Vadim in Spring Framework and more
Vyacheslav @bvn13
почитал я про энтрипоинты эти https://www.baeldung.com/spring-security-multiple-entry-points - не про мой кейс они. мне для АПИ нужно отдавать 403, если не авторизован.
Both of the above configurations will redirect to a /403 URL if a user without the appropriate role attempts to access a protected URL.
источник

V@

Vyacheslav @bvn13 in Spring Framework and more
Vadim
Both of the above configurations will redirect to a /403 URL if a user without the appropriate role attempts to access a protected URL.
это не то, что мне нужно. у меня спринг-фильтр для авторизации по JWT. который (в случаях проблемы авторизации) сбрасывает контекст спринг-секурити (clearContext). И далее с помощью .formLogin().loginPage("/auth/signin") идет редирект на страницу авторизации. И это нормальное поведение. Если пользователь открывает хомяк админки незалогиненным, то его редиректит на авторизацию. Но если он сидит в админке (ReactJS) и JWT истекает, то его разлогинивает, а на ajax запрос возвращается тот же самый редирект на /auth/sighin тем же самым механизмом. Но мне не надо редиректа на ajax. Мне бы 403 ошибочку.
источник

V

Vadim in Spring Framework and more
Странная ситуация. Должны быть рефреш токены, которые обновляют аксесс токены. Может тут проблема в том, как организована jwt аутентификация?
источник

V

Vadim in Spring Framework and more
Ну и в любом случае, можно попробовать в секюрите конфиги кастомно настроить поведение для урлов, которые начинаются с "/api/**", если только фильтр раньше запрос не перехватит. Надо пробовать.
источник

V@

Vyacheslav @bvn13 in Spring Framework and more
Vadim
Странная ситуация. Должны быть рефреш токены, которые обновляют аксесс токены. Может тут проблема в том, как организована jwt аутентификация?
рефреш-токен это уже в следующей поставке надо-ть :)
источник

V@

Vyacheslav @bvn13 in Spring Framework and more
Vadim
Ну и в любом случае, можно попробовать в секюрите конфиги кастомно настроить поведение для урлов, которые начинаются с "/api/**", если только фильтр раньше запрос не перехватит. Надо пробовать.
я попробовал интерсептор подцепить. только вот он в postHandle не доходит, когда jwt-фильтр очистил контекст секурити
источник

V@

Vyacheslav @bvn13 in Spring Framework and more
о, есть какой-то CustomAuthenticationFailureHandler https://www.baeldung.com/spring-security-custom-authentication-failure-handler - буду пробовать
источник

V@

Vyacheslav @bvn13 in Spring Framework and more
не... это не то.
источник

V@

Vyacheslav @bvn13 in Spring Framework and more
Vadim в общем, прочитав https://www.codesandnotes.be/2014/10/31/restful-authentication-using-spring-security-on-spring-boot-and-jquery-as-a-web-client/ , я понял, что эти энтрипоинты вроде бы мне подохят. Даже запилил вот пробу. Но оно все равно мне редирект делает на ajax.
источник

V@

Vyacheslav @bvn13 in Spring Framework and more
отладчиком туда даже не заходит.
источник

V

Vadim in Spring Framework and more
Фильтр может раньше отрабатывает
источник

RS

Ruslan Stelmachenko in Spring Framework and more
Vyacheslav @bvn13
Vadim в общем, прочитав https://www.codesandnotes.be/2014/10/31/restful-authentication-using-spring-security-on-spring-boot-and-jquery-as-a-web-client/ , я понял, что эти энтрипоинты вроде бы мне подохят. Даже запилил вот пробу. Но оно все равно мне редирект делает на ajax.
попробуйте вместо /** во втором матчере передать
new NegatedRequestMatcher(первый матчер) - чтобы точно исключить /api из матчера. хотя это конечно пальцем в небо.

лучше всего включить уровень ДЕБАГ для логгера org.springframework.security (а можно и для org.springframework - не помешает). Например, DelegatingAuthenticationEntryPoint пишет в лог

logger.debug("Trying to match using " + requestMatcher);
...
logger.debug("Match found! Executing " + entryPoint);


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

V@

Vyacheslav @bvn13 in Spring Framework and more
Vadim
Фильтр может раньше отрабатывает
да филтр никуда не редиректит
источник

RS

Ruslan Stelmachenko in Spring Framework and more
а вообще-то погодите-ка. вы же говорите. что хотите обрабатывать не ситуацию, когда access denied, а ситуацию, когда токен протух, т.е. пользователь не известен. Тогда это defaultAuthenticationEntryPointFor, а не defaultAccessDeniedHandlerFor.
источник

V

Vadim in Spring Framework and more
Ну и паттерн у тебя "/api**", а не “/api/**“
источник