Разработал API. Запросы к конкретным ресурсам:
/api/auth/register
/api/auth/verify
/api/auth/login
/api/users
/api/users/{id}/shelves
/api/shelves/{id}/books
/api/books/{id}/wish
и т.д.
обрабатывают rest-контроллеры.
Запросы идут на localhost:8080/api (данные принимаются и отдаются в JSON). После успешного входа выдаётся JWT, который должен использоваться в запросах к другим rest-контроллерам ("/api/users", "/api/shelves" и пр.).
На всех контроллерах, кроме Auth, требуется JWT.
Сейчас я решил добавить фронт. Думаю реализовать это в виде SPA на Vue.js
Что сделал: в папку /resources/templates положил index.html, в /resources/static положил /css/main.css и /js/main.js.
Добавил обычный контроллер:
@Controller
public class IndexController {
@GetMapping("/")
public String index() {
return "index";
}
}
Главная страница (localhost:8080) загрузилась, но JS и стили — нет (401 ошибка). Как я понял, это связано с настройками WebSecurityConfig.
@Override
protected void configure(HttpSecurity http) throws Exception {
http.httpBasic().and().cors().and().csrf().disable()
.exceptionHandling().authenticationEntryPoint(unauthorizedHandler).and()
.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS).and()
.authorizeRequests().antMatchers("/api/auth/*").permitAll()
.antMatchers("/", "/resources/**").permitAll()
.anyRequest().authenticated();
http.addFilterBefore(authenticationJwtTokenFilter(), UsernamePasswordAuthenticationFilter.class);
}
Пожалуйста, помогите разобраться, что нужно поменять, чтобы ресурсы начали грузиться?
Как вообще работает настройка доступа? Важен ли порядок? Где об этом написано доступным языком?