Spring Boot总结(8)---Spring Security

JAVA 225 2017-11-07 09:53

Spring Security简介

Spring Security是Spring提供的对于项目的安全框架。以前使用大量的xml配置来实现,而Spring Boot中基于java配置实现Spring Security功能。
安全框架有两个重要概念:认证授权认证即确认用户可以访问当前系统,授权即确定用户在当前系统下所拥有的功能权限。 通俗点讲,比如你去豪华酒店吃饭,认证就是你有门票,能进入饭店,授权就是规定了你进了酒店能在哪些区域溜达,不能在哪些区域溜达。

传统Spring Security配置

(1)DelegatingFilterProxy

Spring Security提供过滤器Filter来实现安全功能,我们可以注册一个特殊的DelegatingFilterProxy即可。代码实现AbstractSecurityWebApplicationInitializer可以开启支持:

public class AppInitializer extends AbstractSecurityWebApplicationInitializer{
}
(2)配置

Spring Security通过继承WebSecurityConfigurerAdapter,重写其configure方法来配置相关的安全配置:

@Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter{

   //通过重写此方法来实现请求授权
    @Override
    protected void configure(HttpSecurity http)throws Exception{
        super.configure(http);
    }

   //通过重写此方法来定制用户权限
    @Override
    protected void configure(AuthenticationManagerBuilder auth)throws Exception{
        super.configure(auth);
    }

    @Override
    public void configure(WebSecurity web)throws Exception{
        super.configure(web);
    }
}

具体的重写方式这里略过不再演示,网上有很多现成的例子。

Spring Boot对于Spring Security的支持

Spring Boot通过 SecurityAutoConfigurationSecurityProperties 完成了配置。
我们可以获得的自动配置如下:
(1) 自动配置一个内存用户,账号为user,密码在启动时控制台出现
(2) 忽略/css/**,/images/,等静态文件的拦截
(3) 自动配置的securityFilterChainRegistration的Bean

我们需要自己拓展配置时,只需要配置类即冲WebSecurityConfiguererAdapter即可,无需使用@EnableWebSecurity注解

文主经过尝试,发现Spring Security并没有那么好用,条条框框很多,很多实现需要按照它的定义好的方式来做,不如自己写Filter更加的直接好用。
贴一篇 非常非常详细易懂 的Spring Boot 结合Spring Security 实战的博文 :http://blog.csdn.net/u012702547/article/details/54319508

上文写的非常好,有兴趣的可以跟步阅读编码尝试,博主也附了源码。

小tips:Spring Security的使用,有点仁者见仁智者见智,建议根据个人情况以及项目情况来选择使用。

文章评论

2 关注 / 24 粉丝

我无话可说