Я создал службу авторизации следующим образом
@SpringBootApplication
@EnableAuthorizationServer
public class AuthorizationApplication {
...
}
С этим application.properties
.
server.port=9000
security.oauth2.client.client-id=monederobingo
security.oauth2.client.client-secret=monederobingosecret
security.oauth2.client.authorized-grant-types=authorization_code,refresh_token,password,client_credentials
security.oauth2.client.scope=company,client
Затем в отдельном проекте весенней загрузки я создал сервер ресурсов.
@SpringBootApplication
@EnableResourceServer
public class App {
...
}
С этим application.properties
.
server.port=9090
spring.application.name=app
security.oauth2.resource.user-info-uri=http://localhost:9000/user
Теперь все работает нормально, если я отправлю такой запрос localhost:9090/api
с соответствующим токеном, который был получен службой авторизации.
Однако я не хочу отправлять этот токен при отправке запросов на localhost:9090/login
.
Для этого я создал этот класс в своем весеннем загрузочном приложении сервера ресурсов.
@Configuration
public class SpringConfig extends WebSecurityConfigurerAdapter {
@Override protected void configure(HttpSecurity http) throws Exception {
http.csrf().disable()
.authorizeRequests()
.antMatchers("/login")
.permitAll()
.antMatchers("/api/**")
.authenticated();
}
}
И теперь мне не нужно отправлять какой-либо токен, чтобы отправить запрос на /login
.
Однако теперь я получаю следующее сообщение при отправке запроса на /api
с действительным токеном.
{
"timestamp": 1496027102659,
"status": 403,
"error": "Forbidden",
"message": "Access Denied",
"path": "/api/v1/points_configuration/314"
}
Как настроить безопасность только для нескольких шаблонов URL-адресов в Spring Security OAuth2?
SpringConfig
классе. - person alayor   schedule 29.05.2017ResourceServerConfigurerAdapter
вместоWebSecurityConfigurerAdapter
? - person alayor   schedule 29.05.2017