#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干货盘点#

#yyds干货盘点# Spring Boot的前世今生以及它和Spring Cloud的关系详解。

#yyds干货盘点#spring-cloud-kubernetes背后的三个关键知识点