springsecurity简介

springsecurity简介

一级目录

springsecurity的核心就是认证和授权,其本质就是一组链式的过滤器,用户发送请求进来,判断有没有请求的权限。

简单配置

@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {
            //以下五步是表单登录进行身份认证最简单的登陆环境
            http.formLogin() //表单登陆 1
                .and() //2
                .authorizeRequests() //下面的都是授权的配置 3
                .anyRequest() //任何请求 4
                .authenticated(); //访问任何资源都需要身份认证 5


    }
}

启动项目可以看到下面的登陆页面,用户名默认user,密码在控制台输出
在这里插入图片描述
当然,security还可以自定义登陆页面并从数据库获取用户

@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {
 
      /**
     * 介绍
     *  springboot2.x引入的security版本是5.x的,这个版本需要提供一个PasswordEncoder实例,不然就会报错
     * @return
     */
    @Bean
    public PasswordEncoder passwordEncoder() {
        return new BCryptPasswordEncoder();
    }
 
    @Override
    protected void configure(HttpSecurity http) throws Exception {
            //以下五步是表单登录进行身份认证最简单的登陆环境
            http.formLogin() //表单登陆 1
                    .loginPage("/login.html") //指定登陆页面
                .and() //2
                .authorizeRequests() //下面的都是授权的配置 3
                    .antMatchers("/login.html").permitAll()//访问此地址就不需要进行身份认证了,防止重定向死循环
                .anyRequest() //任何请求 4
                .authenticated(); //访问任何资源都需要身份认证 5
    }
}

如果要实现查询数据库,就要实现UserDetailsService类,添加自己的配置,并且在serviceImpl层通过UsernamePasswordAuthenticationToken,提交用户名和密码到UserDetailsService,在UserDetailsServiceImpl中查询数据库即可。

UsernamePasswordAuthenticationToken authenticationToken = new UsernamePasswordAuthenticationToken(userName, password);
        Authentication authenticate = authenticationManager.authenticate(authenticationToken);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值