使用Spring Security和Angular时出现未经授权的错误

时间:2017-05-24 17:52:22

标签: spring-boot spring-security

我的前端基于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一起工作正常。

2 个答案:

答案 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)