Я создаю приложение, использующее угловой для фронтэнда и весеннюю загрузку для бэкэнда.Я использую spring-boot-security в целях безопасности.
Spring boot предоставляет статический контент из папки src/main/resources/static
.Я помещаю сюда все содержимое угловой папки dist, то есть все файлы js, css, html, созданные ng build
.
Но после запуска приложения я продолжаю получать ошибку 401, неавторизованную.Вот мой configure()
метод:
@Override
protected void configure(HttpSecurity http) throws Exception {
http.csrf().disable()
.cors()
.and()
.exceptionHandling().authenticationEntryPoint(new HttpStatusEntryPoint(HttpStatus.UNAUTHORIZED))
.and()
.authorizeRequests()
.requestMatchers(PathRequest.toStaticResources().atCommonLocations()).permitAll()
.antMatchers("/api/v1/login/").permitAll()
.anyRequest().authenticated()
.and()
.addFilter(getJWTAuthenticationFilter(authenticationManager()))
.addFilter(new JWTAuthorizationFilter(authenticationManager()));
}
Если я добавлю .antMatchers("/**").permitAll()
, тогда приложение будет корректно загружать все угловые ресурсы, но сделает защиту бесполезной, так как тогда будут открыты все конечные точки API.
Также я прочитал, что \css,\images,\js
и т. Д. Разрешены по умолчанию, но здесь я просто ссылаюсь на статическую папку. Я также пытался переместить весь контент в новую конечную точку, скажем /app
, реализовав метод addResourceHandlers()
, нозатем мой угловой код ломается, так как он ссылается на все css, jss непосредственно в своем href, а не за каким-либо именем папки.
Я использую релиз весенней загрузки 2.1.1, и большинство ответов относятся к весенней загрузке v1,и я не могу найти Soln.
Я хочу настроить Spring Security, чтобы разрешить доступ только ко всем ресурсам в папке static
.Это позволит мне использовать мой угловой код без изменения всех ссылок.Как мне этого добиться?