spring-security入门学习

Posted newbest

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring-security入门学习相关的知识,希望对你有一定的参考价值。

记录是为了更好的成长!

 学习了spring-security在项目中的用法,简单记录一下过程。项目中使用springboot和thymeleaf。

1、引入pom文件(这里引入的是springSecurity5的版本)

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-security</artifactId>
</dependency>

ssm项目中要另外引入spring-security的依赖,需注意。

 2、spring-security的默认用户名是user,密码在启动springBoot项目时出现了,如下:

技术图片

 

 登录:

技术图片

 

 3、禁用默认登录验证

在springBoot启动类中加入 

@EnableAutoConfiguration(exclude = org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration.class)

即可禁用默认的登录验证

@SpringBootApplication
@EnableAutoConfiguration(exclude = org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration.class)
@MapperScan("com.demo.mapper")
public class SpringbootSecurityApplication 

    public static void main(String[] args) 
        SpringApplication.run(SpringbootSecurityApplication.class, args);
    

 

 4、配置默认的用户名密码登录

增加如下配置类:

@Configuration
@EnableWebSecurity    //注解开启Spring Security的功能
public class WebSecurityConfig extends WebSecurityConfigurerAdapter
    
    @Override
    protected void configure(HttpSecurity http) throws Exception 
        http
            .authorizeRequests()                            //这是认证的请求
                .antMatchers("/","/home").permitAll()        //这是不需要认证的请求
                .anyRequest().authenticated()                //任何一个认证都需要认证
                .and()
            .formLogin()
                .loginPage("/login")
                .permitAll()
                .and()
            .logout()
                .permitAll();
    
    
    @Bean
    public  BCryptPasswordEncoder passwordEncoder() 
        return new BCryptPasswordEncoder();
    
    
    @Override
    protected void configure(AuthenticationManagerBuilder auth) throws Exception
        //基于内存来存储用户信息
        auth.inMemoryAuthentication().passwordEncoder(new BCryptPasswordEncoder())
                .withUser("user").password(new BCryptPasswordEncoder().encode("123")).roles("USER").and()
                .withUser("admin").password(new BCryptPasswordEncoder().encode("456")).roles("USER","ADMIN");
    

 从spring-security5开始,需要配置默认的密码加密策略,否则会抛出异常

 

 5、完整的demo访问github下载

spring-security+mysql的注册登录登出

 

 

以上内容代表个人观点,仅供参考,不喜勿喷。。。

以上是关于spring-security入门学习的主要内容,如果未能解决你的问题,请参考以下文章

spring-security 登录 无法进入UserDetailsService类

spring-security权限管理学习目标

Spring-Security权限管理框架——根据角色权限登录

Spring-security-3 浏览器后退按钮问题

Tomcat8+Spring-Security 启用安全通道(https)的一步步实现

Spring-Security