Я новичок в Java. Я создаю REST API с использованием Spring Boot + OAuth2-аутентификация + Swagger.
Я бы хотел, чтобы на странице swagger был разрешен анонимный доступ, а конечной точке / token / oauth требуется базовая аутентификация.
Для моих контроллеров я настроен на использование @PreAuthorize, обычно с # oauth2.hasScope ('xxx'). Я хотел бы ПОТЕНЦИАЛЬНО иметь методы get, которые разрешают анонимные GET в том же контроллере, что и заблокированные методы.
Итак ... то, что я сделал в ResourceServerConfig, имеет строку:
http.authorizeRequests().antMatchers("/*").permitAll();
В общем, все разрешено, и тогда @PreAuthorize переопределяет все, что я хочу защитить.
Я бы лучше определил, какие методы заблокированы в контроллерах с помощью PreAuthorize, а затем поддерживал бы гигантский сопоставитель муравьев. список анонимных путей. Мне кажется чище.
Это все работает, как и ожидалось. Любой метод, который НЕ имеет @PreAuthorize, открыт, а методы, которые НЕ имеют @PreAuthorize, требуют аутентификации.
Есть ли что-нибудь опасное в ("/ *"). AllowAll ()? Поскольку я новичок в Java, я не уверен, что это открывает какие-то дыры? Похоже, что есть некоторые «скрытые» конечные точки, так как мне пришлось добавить фильтр в конфигурацию swagger: RequestHandlerSelectors.basePackage («org.xxx.yyy»), чтобы показывать только мои действительные API.
Просто пытаюсь понять любойПоследствия.
Спасибо.