Spring Security简介

SpringSecurity 是针对Spring项目的安全框架,也是SpringBoot底层模块默认的技术选型,他可以实现强大的Web安全控制,对于安全控制,我们仅需要引入Spring-boot-strater-security模块,进行少量的配置,即可实现强大的安全管理!
记住:

  • WebSecurityConfigurerAdapter:自定义security策略
  • AuthenticationManagerBuilder:自定义认证策略
  • @EnableWebSecurity:开启WebSecurity模式

@ Enablexxx开启某个功能
SpringSecurity的两个目标是“认证”和“授权”(访问控制)。

aop 横切,不用改变代码,就能改变功能

@EnableWebSecurity
public class Config extends WebSecurityConfigurerAdapter {
//链式编程 授权
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
            .authorizeRequests()
            .antMatchers("/").permitAll()
            .antMatchers("/level1/**").hasRole("");
//没有权限会默认到登录界面
   http.formLogin();
   //防止网站工具:get,post
   http.csrf().disable() //关闭csrf功能
   //注销
   http.logout().logouturl("/");
   //记住我功能
   http.rememeberMe()
   
    }
    // 认证
    @override
    protected void configure(AuthenticationManagerBuilder auth)throw Exception{
    // 数据应该从数据库中选择 spring2.1.x可以使用
    // 密码编码:PasswordEncoder
    //在spring security5.0中 新增了很多加密方法
	 auth.inMemoryAuthtication().passwordEncoder(new BCryPasswordEncoder())
	.withUser("wanaei").password(new BCryptPasswordEncoder().encoder("123456").roles("vip1","vip2")
	 	.and()
	.withUser("wanaei").password("123456").roles("vip1","vip2");
/*
 auth.inMemoryAuthtication()
	.withUser("wanaei").password("123456").roles("vip1","vip2")
	 	.and()
	.withUser("wanaei").password("123456").roles("vip1","vip2");
*/
	}
}

你可能感兴趣的:(spring,java,后端)