我的前端基于Angular 4,我的后端基于Spring Boot和Spring Security。 我正在一个WAR文件中部署所有内容。
我在 / src / main / resources 中创建了静态/登陆文件夹,然后将Webpack构建的Angular文件放在该文件夹中。
Angular正在处理登录过程,因此我在Spring Security中创建了以下规则:
@Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Bean
public WebMvcConfigurerAdapter mappingIndex() {
return new WebMvcConfigurerAdapter() {
@Override
public void addViewControllers(ViewControllerRegistry registry) {
registry.addViewController("/login").setViewName("forward:/landing/index.html");
}
};
}
@Override
protected void configure(HttpSecurity httpSecurity) throws Exception {
.addFilterBefore(new CORSFilter(),ChannelProcessingFilter.class)
.antMatchers(/"login/**").permitAll()
.anyRequest().authenticated();
不幸的是,在尝试使用webbrowser访问/ login页面进行登录时,我总是收到HTTP状态代码401(未授权)。
如何以这种方式集成Angular App?因为我的安全规则与REST Apis一起工作正常。
答案 0 :(得分:0)
.antMatchers(/"login/**").permitAll()
看起来不对,
试试这个:
@Override
protected void configure(HttpSecurity httpSecurity) throws Exception {
httpSecurity
.authorizeRequests()
.antMatchers("/login/**").permitAll()
.anyRequest().authenticated();
}
如果仍然无效,请添加到您的application.properties
logging.level.org.springframework.security=trace
logging.level.org.springframework.web=trace
并发布输出
答案 1 :(得分:0)