码迷,mamicode.com
首页 > 编程语言 > 详细

Spring Security 学习总结(2) 持续更新中

时间:2015-06-01 16:59:40      阅读:129      评论:0      收藏:0      [点我收藏+]

标签:

从一个最简单的Spring Security Java Configuration 看起

@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
    @Autowired
    public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
        auth
            .inMemoryAuthentication()
                .withUser("user").password("password").roles("USER");
    }
}

configGlobal 这个名字不重要,重要的是在一个注解了 @EnableWebSecurity 或@EnableWebMvcSecurity或

@EnableGlobalMethodSecurity 或 @EnableGlobalAuthentication 的类中配置AuthenticationManagerBuilder。

看起来这段代码没有做很多配置,实际上做了很多:

  • 要求对每个url的访问都需要认证

  • 产生一个login 表单

  • 允许用户user,密码password 以USER的身份登录

  • 允许用户登出

  • 阻止CSRF 攻击

  • 集成Security Header(HTTP Strict Transport Security、X_Content-Type-Options、Cache-Control、X-XSS-Protection、X-Frame-Options )

  • 与Servlet API 的方法集成(getRemoteUser()、getUserPrincipal()等等)


谈一谈HttpSecurity

SecurityConfig 包含了怎么对user进行认证。但是Spring Security 怎么知道我们需要对所有的用户进行认证呢?Spring Security 怎么知道我们需要支持基于表格的认证呢?

答案在于Spring Security 的WebSecurityConfigurerAdapter 提供了一默认的配置方法:configure(HttpSecurity http)

protected void configure(HttpSecurity http) throws Exception {
    http
        .authorizeRequests()
            .anyRequest().authenticated()
            .and()
        .formLogin()
            .and()
        .httpBasic();
}




Spring Security 学习总结(2) 持续更新中

标签:

原文地址:http://my.oschina.net/pingjiangyetan/blog/423474

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!