应用安全属于安全防护体系中的重要一环,但也是最薄弱的一环,究其原因,或许是应用的核心职责是完成业务和产品的功能需求。
Spring 生态圈现成的解决方案,是从 Acegi 发展起来的 SpringSecurity。
Spring Security是一个灵活和强大的身份验证和访问控制框架,以确保基于Spring的Java Web应用程序的安全。
Spring Security是一个轻量级的安全框架,它确保基于Spring的应用程序提供身份验证和授权支持。它与Spring MVC有很好地集成,并配备了流行的安全算法实现捆绑在一起。
SpringSecurity 可以任意裁剪,而且还提供了丰富的开箱即用的安全特性支持。但用户体验不是很好,“复杂(Too Complicated),太重(Too Heavyweight)”。
spring-boot-starter-security是为了改善SpringSecurity这种状态而出现的, 主要面向 Web 应用安全,配合 spring-boot-starter-web,要使用 SpringBoot 构建一个安全的对外提供服务的 Web 应用。
spring-boot-starter-security 默认会提供一个基于 HTTP Basic 认证的安全防护策略,默认用户名为 user,访问密码则在当前 Web 应用启动的时候,打印到控制台。用户可以自行设置。
security.user.name={用户名}
security.user.password={访问密码}
spring-boot-starter-security 还会默认启用一些必要的 Web 安全防护,比如针对 XSS、CSRF 等常见针对 Web 应用的攻击,同时,也会将一些常见的静态资源路径排除在安全防护之外。
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency> <!--其他依赖 -->
</dependencies>
参考:http://c.biancheng.net/view/4665.html