Angular& Spring安全 - 安全文件夹和文件

时间:2015-11-16 12:20:59

标签: angularjs spring-security spring-boot

你好

按照本教程,我成功设置了一个带有spring security的角度webapp: https://spring.io/guides/tutorials/spring-security-and-angular-js/

一切正常,我还配置了Spring安全性以使用MySql数据库。

我正在使用spring boot,因此我的angularJS文件位于静态文件夹中:

  • " SRC /主/资源/静态/ JS"
  • " SRC /主/资源/静态/ CSS"
  • ...

我的第一个问题是关于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

对于这种结构,弹簧安全配置应该是什么样的?

1 个答案:

答案 0 :(得分:0)

请指定spring MVC的静态资源,如下所示:

@Configuration
@EnableWebMvc
public class MvcConfig extends WebMvcConfigurerAdapter {
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry
          .addResourceHandler("/resources/**")
          .addResourceLocations("(/resources/");    
    }
}

Please refer this for more details.this