Как с помощью Spring Security определить, должен ли текущий запрос API быть аутентифицирован или нет?JAVA

Программисты JAVA общаются здесь
Anonymous
Как с помощью Spring Security определить, должен ли текущий запрос API быть аутентифицирован или нет?

Сообщение Anonymous »

С помощью Spring Security вы можете иметь общедоступные конечные точки API, доступные всем, и конечные точки, которые необходимо пройти аутентификацию перед получением ответа. В моем приложении пользователи проходят аутентификацию с помощью токена jwt. Для вошедших в систему пользователей в данный момент токен всегда проверяется, независимо от того, получит ли конечная точка общедоступного API запрос или нет.

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

Я мог бы добавить все общедоступные конечные точки в хеш-набор и сравнить текущую конечную точку запроса с общедоступными, но это неэффективно, а также некоторые общедоступные конечные точки содержат подстановочные знаки (**) так что сравнение будет немного затруднительным.

Это единственная информация, которую я смог найти:

Spring Security — проверьте, является ли веб-адрес безопасным/защищенным

но речь идет о JSP.

Я также не могу получить информацию о запросе из SecurityContextHolder.getContext(). Я предполагаю, что мне следует получить информацию из org.springframework.security.config.annotation.web.builders.HttpSecurity, потому что это тот же класс, который используется для определения того, какие конечные точки не требуют аутентификации. (с помощью anthMatchers().permitall()). Но я не знаю, какой метод вызывать, и не уверен, что HttpSecurity можно автоматически подключить к другому классу. Может ли кто-нибудь дать мне несколько советов?

Спасибо

Вернуться в «JAVA»