SpringSecurity представляет собой еще 1 Сервлет фильтр (т.е. он сам срабатывает на каждый запрос). В свою очередь этот фильтр внутри разбивается еще на что-то там в районе 15+ фильтров, каждый из которых принимает решение о том, аутентицифировать ли пользователя.
Тебе нужно засунуть туда свой фильтр со своей логикой. По-моему для oauth оно делается само, это надо нагуглить.
Тогда после прохода запроса через все фильтры и принятии положительного решения для пользователя, Principal можно вытащить либо из SecurityContextHolder, либо просто указать Principal параметром метода
@RequestMapping. Он сам замапится. Если же пользователь не проходит аутентификацию - ему вернется 401 (Вернее, запрос перекинется на обработку в AuthenticationEntryPoint, который может делать что угодно, так как это точка расширения в конфиге security, но кажется поумолчанию он вовзращает 401)
@GetMapping
public SomeReponse(Principal principal)
Гуглить тебе стоит в сторону "Spring boot oauth example github".