美文网首页
Spring Boot+Spring Security进行权限控

Spring Boot+Spring Security进行权限控

作者: 高效码农 | 来源:发表于2016-12-27 18:26 被阅读780次
    2a11ebcd6469855609c925bef1a6a054.png

    Spring Security简介:
    Spring Security是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架。它提供了一组可以在Spring应用上下文中配置的Bean,充分利用了Spring IoC,DI和AOP(面向切面编程)功能,为应用系统提供声明式的安全访问控制功能,减少了为企业系统安全控制编写大量重复代码的工作。
    说人话:Spring Security为项目提供安全控制、权限控制、访问权限控制等。其他类似框架有Apache Shiro等

    本文代码基于《Spring Inuti搭建Spring Boot项目
    一、添加依赖

    <!--Spring Security -->
    <dependency>   
      <groupId>org.springframework.boot</groupId>   
      <artifactId>spring-boot-starter-security</artifactId>
    </dependency>
    <dependency>   
      <groupId>org.springframework.security</groupId>   
      <artifactId>spring-security-web</artifactId>   
      <version>4.2.1.RELEASE</version>
    </dependency>
    

    二、创建Spring Security的配置类SpringSecurityConfig

    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
    import org.springframework.security.config.annotation.web.builders.HttpSecurity;
    import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
    import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
    /** 
    * Created by 从小就坏 on 2016/12/27. 
    */
    @Configuration
    @EnableWebSecurity
    public class SpringSecurityConfig extends WebSecurityConfigurerAdapter {    @Override    
    protected void configure(HttpSecurity http) throws Exception {       
     http      
      //禁用CSRF保护
      .csrf().disable()          
      .authorizeRequests()  
       //任何访问都必须授权
      .anyRequest().fullyAuthenticated()
      //配置那些路径可以不用权限访问              
      .antMatchers("/", "/home")
      .permitAll()                
      .anyRequest()
      .authenticated()                
      .and()                
      .formLogin()                
      .loginPage("/login")                
      .permitAll()                
      .and()                
      .logout()                
      .permitAll();    
    }    
    @Autowired    
    public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {        
      auth                
      .inMemoryAuthentication()   
      .withUser("user").password("password").roles("USER");   
     }
    }
    

    添加注解:@EnableWebSecurity开启Spring Security的功能
    @EnableWebSecurity的作用实际上是,创建一个Spring Bean,Bean的类型是Filter,名字为springSecurityFilterChain。只要我们保证自定义的SecuirtyConfig类,可以被Spring扫描到,就可以帮助我们创建这个Filter了。

    相关文章

      网友评论

          本文标题:Spring Boot+Spring Security进行权限控

          本文链接:https://www.haomeiwen.com/subject/vvjevttx.html