#yyds干货盘点#从零学习spring security基本原理了解
Posted Java旅途
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了#yyds干货盘点#从零学习spring security基本原理了解相关的知识,希望对你有一定的参考价值。
最近打算学一套安全框架,目前由于springboot、springcloud的火热,因此springsecurity是第一选择。
一、先看看基本原理
spring security 实际上就是通过一系列的过滤器对请求进行过滤,最终对不合法的请求抛出相应的异常。
二、接下来看看具体实现
1)引入security的依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
2)编写个测试用的接口
@GetMapping("/user")
public String getUser()
return "this is security";
3)访问看看效果
访问这个user接口的时候发现请求被拦截了,需要输入用户名和密码,spring security默认用户名是user,每次启动项目的时候会再控制台打印,输入用户名和密码后重新跳转到user接口
4)自定义用户名和密码
在实际应用中,以上肯定是不能满足需求的,我们需要从数据库进行验证用户名和密码。
@Component
@Slf4j
public class MyUserDetailService implements UserDetailsService
// 加密处理
@Autowired
private PasswordEncoder passwordEncoder;
@Override
public UserDetails loadUserByUsername(String userName) throws UsernameNotFoundException
// 这一块用来处理用户合法性,如从数据库里验证用户
log.info("登录的用户名=",userName);
return new User(userName,passwordEncoder.encode("123456"),true,true,true,true, AuthorityUtils.commaSeparatedStringToAuthorityList("admin"));
@Configuration
public class BrowserConfig extends WebSecurityConfigurerAdapter
@Bean
public PasswordEncoder passwordEncoder()
return new BCryptPasswordEncoder();
@Override
protected void configure(HttpSecurity http) throws Exception
http.formLogin() //表单提交的所有请求都进行身份认证
.and()
.authorizeRequests()
.anyRequest()
.authenticated();
UserDetailsService 是security封装好的处理用户认证逻辑的接口。
WebSecurityConfigurerAdapter 是拦截器,我们重写了configure方法,用来对http请求进行认证和授权。
测试一下,随便输入一个用户名,密码输入123456,然后会跳转到user接口。
以上是关于#yyds干货盘点#从零学习spring security基本原理了解的主要内容,如果未能解决你的问题,请参考以下文章
#yyds干货盘点#数据分析从零开始实战,PythonPandas与各类数据库
#yyds干货盘点#数据分析从零开始实战,Pandas读写Excel/XML数据
#yyds干货盘点#数据分析从零开始实战,Pandas读取HTML页面+数据处理解析
Spring | Spring5学习笔记 #yyds干货盘点#