2015-11-16 91 views
0

你好角及春季安全 - 安全文件夹和文件

我成功地建立了与春季安全角度的webapp下面这个教程: https://spring.io/guides/tutorials/spring-security-and-angular-js/

一切工作正常,我还配置春季安全使用MySql数据库。

我使用的春天开机等我angularJS文件位于静态文件夹:

  • “的src /主/资源/静态/ JS”
  • “的src /主/资源/静态/ CSS”
  • ...

我的第一个问题是关于从Web应用的角度我必须确保春季安全配置和文件/文件夹? 我是否必须允许访问Spring安全配置中的所有静态内容?例如:

http.httpBasic().and().authorizeRequests() 
       .antMatchers("/js/**", "/css/**", "/").permitAll() 

或者这不是一个好主意吗?这里最好的做法是什么? 我第一次尝试只访问“/”和“/ login”页面,但这不适合我!从教程

实施例弹簧的安全配置:

@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中为我的角度web应用程序配置单个文件夹,并通过弹簧安全性为应用程序提供访问权限,例如这种结构(不低于/静态):

MyAngularApp 
    -- login 
    -- Controller 
     -- loginController 
    -- Services 
    -- Templates 
     -- login.html 
    -- Feature 2 
    -- Controller 
    -- Services 
    -- Templates 
    -- Feature 3 
    -- Controller 
    -- Services 
    -- Templates 

并执行春季安全配置应该是什么样子的这种结构?

+0

保护控制器等分别只会工作,如果你在不同的网页(不同的HTML页)中使用它们。如果你有一个真正的SPA,那是行不通的。 – dunni

+0

所以没关系,如果我允许访问所有角度文件:/ js/**和/ css/**? – Jensebluemchen

回答

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

+0

好的,所以我必须定义一个像这样的新资源“MyAngularApp”? 注册表 .addResourceHandler( “/ MyAngularApp/**”) .addResourceLocations( “(/ MyAngularApp /”); 是我的应用程序,然后在的src/main/MyAngularApp易触及/? – Jensebluemchen