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入门学习的主要内容,如果未能解决你的问题,请参考以下文章
spring-security 登录 无法进入UserDetailsService类
Spring-Security权限管理框架——根据角色权限登录