Настройка Spring Security для MVC и API
Всем привет, постигаю Spring Boot :)
Я сделал MVC сайт "/app/" и Rest Api "/api/" в одном проекте. И App и Api используют один и тот же слой Service.
Я настроил Spring Security для App с регистрацией и т.п. Вопрос как мне настроить безопасность для доступа к Api. Я так понимаю мне надо настроить для начала oauth2 Resource Server (.oauth2ResourceServer) на мои RestControllers. Но как мне разделить в одном проекте эти настройки?
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.csrf().disable()
.authorizeRequests()
.antMatchers("/app/registration").not().fullyAuthenticated()
.antMatchers("/app/about").permitAll()
.antMatchers("/swagger-ui/**").permitAll()
.antMatchers("/v2/api-docs").permitAll()
.antMatchers("/v2/**").permitAll()
.antMatchers("/api/**").permitAll()
.anyRequest().authenticated()
.and()
.formLogin()
.loginPage("/app/login")
.defaultSuccessUrl("/app/")
.permitAll()
.and()
.logout()
.permitAll()
.logoutSuccessUrl("/app/");
}
@Autowired
protected void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth.userDetailsService(personService).passwordEncoder(bCryptPasswordEncoder());
}
Конечно, стоит оставить просто api и написать фронт внешне, например на jQuery c AJAX. Но как быть тут?