SpringBoot 学习笔记(十)Spring Security 安全框架_springboot之security学习

            .authorizeRequests()
            /\*普通用户访问的url\*/
            .antMatchers("/user/\*\*").hasRole("USER")
            /\*管理员用户访问的url\*/
            .antMatchers("/admin/\*\*").hasRole("ADMIN")
            .anyRequest().authenticated() //其他多有路径都必须认证
            .and()
            .formLogin()
            .loginProcessingUrl("/login")
            .permitAll()  //访问“/login”接口不需要进行身份认证了,防止重定向死循环
            .and()
            .csrf().disable(); //关闭csrf
}

}


然后就可以发现,若要访问admin/hello,用户名和密码必须是admin才可以  
 若使用aoxiu这种用户的身份就会报错


### 三、基于数据库的认证


#### 1、SpringSecurity基于数据库认证


1. 创建项目,添加如下依赖  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/7ec50386b596485b949e2fe9de929df0.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5aWl5aaZ5peg56m5,size_12,color_FFFFFF,t_70,g_se,x_16)  
 lombok用于使用注解替代getter、setter等方法  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/547e093d08cf4cb7a92173434b6cbafd.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5aWl5aaZ5peg56m5,size_14,color_FFFFFF,t_70,g_se,x_16)
2. 在application.yml文件中配置



spring:
datasource:
url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
username: root
password: root
driver-class-name: com.mysql.jdbc.Driver
logging:
level:
com.example.bdatabaserole.mapper: debug #打印SQL语句
mybatis:
mapper-locations: classpath:mappers/*.xml
type-aliases-package: com.example.securitydatebase.mapper
server:
port: 8082


3. 创建实体类  
 UserInfo



package com.beixi.entity;

import lombok.Data;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.authority.SimpleGrantedAuthority;
import org.springframework.security.core.userdetails.UserDetails;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;

@Data //lombok注解省略get/set等方法
public class UserInfo implements Serializable,UserDetails {
private int id;

private String username;
private String password;
private List<Role> roleList;

@Override
public Collection<? extends GrantedAuthority> getAuthorities() {
    Collection<GrantedAuthority> authorities = new ArrayList<>();
    for (Role r
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值