Здравствуйте! У меня есть сайт в котором можно авторизироваться локально или через провайдера Google по oAuth 2.0. По функционалу все работает. Встал такой момент, что хочу показывать фото профиля, но потом встал вопрос об авторизированного пользователя. Если пользователь авторизируется через гугл, то открытые данные, то бишь фото, сохранится у меня в базе данных. И как бы я хочу с него показывать без использования доп накладки на метод атрибута user, а как то хочется показывать через непосредственно Thymeleaf.
В пользователе есть enum Provider в котором есть LOCAL, GOOGLE
Отрывки кода
oAuth success
.successHandler((request, response, authentication) -> {
log.info(String.valueOf(authentication.getPrincipal()));
DefaultOidcUser oauthUser = (DefaultOidcUser) authentication.getPrincipal();
oAuthGoogleUserService.processOAuthPostLogin(oauthUser);
response.sendRedirect("/");
})
Контроллер только отправляет страницу
html
Хочется так
<!-- th:if="${#authentication.provider} == 'GOOGLE'"-->
<img
src="../../static/images/blank.png"
th:src="${#authentication.getPrincipal().getAttributes().get('picture')}"
class="rounded-circle"
height="30"
alt="Blank"
loading="lazy"
/>
<!-- th:if="${#authentication.provider} == 'LOCAL'"-->
<img
src="../../static/images/blank.png"
th:src="${#authentication.getPrincipal().getPhotoLink()}"
class="rounded-circle"
height="30"
alt="Blank"
loading="lazy"
/>