Я разработал одно демонстрационное приложение с весенней загрузкой и oauth2. У меня есть три приложения, как показано ниже.
- Resource api: у него будут все методы, которые нам нужны для защиты.
- Сервер аутентификации: это сервер oauth2, который предоставляет токены
- Пользовательский интерфейс: который сможет получить доступ к ресурсам после успешного входа в систему через сервер аутентификации.
У меня есть несколько ресурсов (контроллеров), к которым можно получить публичный доступ. Но когда я пытаюсь получить доступ к пользовательскому интерфейсу swagger, он запрашивает полную аутентификацию. Когда я добавил приведенный ниже код, появляется страница swagger, но не только одно раскрывающееся меню на всей странице, и оно также не работает.
http
.anonymous() //allow anonymous access
.and()
.authorizeRequests()
.antMatchers("/shouldbepublic/**", "/swagger-ui**/**").permitAll().and() //this should be public resources
.formLogin().loginPage("/login").permitAll()
.and()
.requestMatchers().antMatchers("/login", "/oauth/authorize", "/oauth/confirm_access")
.and()
.authorizeRequests().anyRequest().authenticated();