你好,
按照本教程,我成功设置了一个带有spring security的角度webapp: https://spring.io/guides/tutorials/spring-security-and-angular-js/
一切正常,我还配置了Spring安全性以使用MySql数据库。
我正在使用spring boot,因此我的angularJS文件位于静态文件夹中:
我的第一个问题是关于spring安全配置以及我必须保护的角度webapp中的哪些文件/文件夹? 我是否必须允许访问spring安全配置中的所有静态内容? e.g:
http.httpBasic().and().authorizeRequests()
.antMatchers("/js/**", "/css/**", "/").permitAll()
或者这不是个好主意吗?这里的最佳做法是什么? 我首先尝试只访问" /"和" /登录"页面,但这对我不起作用!
教程中的弹簧安全配置示例:
@Configuration
@Order(SecurityProperties.ACCESS_OVERRIDE_ORDER)
protected static class SecurityConfiguration extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.httpBasic()
.and()
.authorizeRequests()
.antMatchers("/index.html", "/home.html", "/login.html", "/").permitAll()
.anyRequest().authenticated();
}
}
我的第二个问题是关于我的spring boot应用程序中/ static下的angular文件和文件夹结构。如何在spring boot中为我的angular webapp配置单个文件夹,并为应用程序提供spring安全性访问权限,例如:使用这种结构(不在/ static下):
MyAngularApp
-- login
-- Controller
-- loginController
-- Services
-- Templates
-- login.html
-- Feature 2
-- Controller
-- Services
-- Templates
-- Feature 3
-- Controller
-- Services
-- Templates
对于这种结构,弹簧安全配置应该是什么样的?
答案 0 :(得分:0)
请指定spring MVC的静态资源,如下所示:
@Configuration
@EnableWebMvc
public class MvcConfig extends WebMvcConfigurerAdapter {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry
.addResourceHandler("/resources/**")
.addResourceLocations("(/resources/");
}
}