1

Я пытаюсь настроить веб-службу RESTFul с помощью Spring, и я уже настроил OAuth. Поэтому я получил пару страниц, для которых нужен токен пользователя OAuth. Тем не менее, у меня есть несколько страниц, которые предназначены для анонимного доступа, например, для регистрации или забыли пароль.Как защитить URL-адреса только с идентификатором и секретом клиента?

Страницы, такие как www.mywebsite.com/api/doStuff [GET/POST] защищены, требуя действительного токена OAuth, но как я могу защитить такие страницы, как www.mywebsite.com/api/signup [POST], только с ?ID клиента и секрет с заголовком Авторизация: Basic [Base64EncodedString]?

Я не хочу, чтобы эти «незащищенные страницы» были доступны любому, кроме клиента, например, мобильному приложению (iOS/Android).

Вот мой Configure (HttpSecurity) метод в моем классе ResourceServerConfigurerAdapter

public void configure(HttpSecurity http) throws Exception { 
http 
    .requestMatchers().antMatchers("/api/**") 
.and() 
    .authorizeRequests() 
    .antMatchers("/api/doStuff", "/api/getOtherStuff").access("#oauth2.hasScope('read') and hasRole('ROLE_USER')") 
    .antMatchers("/api/signup").access("#oauth2.isClient()") // Not working like I thought... 
.and().sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS); 
} 

Спасибо за помощь!

ответ

0

Если вы хотите использовать базовый auth для некоторых ресурсов, вам, вероятно, лучше создать отдельную цепочку фильтров (т. Е. Новый WebSecurityConfigurerAdapter) и настроить там там правила, чтобы соответствовать только путям, которые вы хотите защитить таким образом.

 Смежные вопросы

  • Нет связанных вопросов^_^