Как отключить / игнорировать @PreAuthorize в приложении Spring Boot - PullRequest
0 голосов
/ 27 сентября 2019

У меня есть приложение Spring Boot, которое предоставляет REST API.Все API защищены Spring Security.Я также добавил авторизацию метода, используя аннотацию @ PreAuthorize .

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

Отключить аутентификацию легко, я просто добавил это в метод конфигурации и все хорошо.

@Override
public void configure(WebSecurity web) throws Exception {
    web.ignoring().antMatchers("/api/**");
}

Но это вызывает AuthenticationCredentialsNotFoundException при попадании на конечные точки, которые я исключил из аутентификации, что имеет смысл.Это исключение исчезает только тогда, когда я удаляю аннотацию @ PreAuthorize , которую, очевидно, я не хочу делать всякий раз, когда собираюсь заняться какой-нибудь локальной разработкой.Кажется, просто имея аннотацию для методов, Spring AOP запускает и проверяет объект аутентификации в Spring Security Context, и нет способа отключить его, вместо удаления аннотаций.

Как заставить Spring полностью игнорировать @ PreAuthorize аннотаций?Я попытался удалить @ EnableGlobalMethodSecurity , но это не помогло с исключением.

...