SpringBoot整合SpringSecurity超详细入门教程

本文详细介绍了如何使用MybatisPlus创建数据库表,配置SpringSecurity进行用户认证,包括CSRF防护措施。内容涵盖了数据库操作、权限控制和跨站请求伪造的防范策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

创建数据库 security,并创建一个User表:

在这里插入图片描述

对应的数据库 Schema 脚本,数据库 Data 脚本如下:

DROP TABLE IF EXISTS users;

CREATE TABLE users(

id BIGINT(20) PRIMARY KEY AUTO_INCREMENT,

username VARCHAR(20) UNIQUE NOT NULL,

password VARCHAR(100)

);

DELETE FROM users;

INSERT INTO users (id, username, password) VALUES

(1, ‘张三’, ‘123456’),

(2, ‘李四’, ‘123456’),

(3, ‘王五’, ‘123456’);

通过MybatisPlus完成数据库操作: Mybatis-Plus基本使用

添加依赖:

com.baomidou

mybatis-plus-boot-starter

3.3.1.tmp

mysql

mysql-connector-java

runtime

org.projectlombok

lombok

创建实体类Users:

@Data

@AllArgsConstructor

@NoArgsConstructor

public class Users {

private Integer id;

private String username;

private String password;

}

新建mapper包,创建UsersMapper接口:

在这里插入图片描述

想要使用接口,需要在启动器或配置类上添加注解:@MapperScan("com.ly.mapper")

@Repository

public interface UsersMapper extends BaseMapper {

}

配置文件添加数据库配置 :

spring:

#配置数据源

datasource:

driver-class-name: com.mysql.cj.jdbc.Driver

url: jdbc:mysql://localhost:3306/security?useSSL=false&serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf-8

username: root

password: 123456

在实现类中添加数据库相关操作:

@Service(“userDetailsService”)

public class MyUserDetailsService implements UserDetailsService {

@Autowired

private UsersMapper usersMapper;

@Override

public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {

//调用usersMapper方法,根据用户名查询数据库

QueryWrapper wrapper = new QueryWrapper<>();

wrapper.eq(“username”,username);

Users users = usersMapper.selectOne(wrapper);

//判断

if(users==null){//数据库没有数据,认证失败

throw new UsernameNotFoundException(“用户名不存在!”);

}

//手动设置了role,也可以通过数据库查询获取

List auths = AuthorityUtils.commaSeparatedStringToAuthorityList(“role”); //配置角色

return new User(users.getUsername(),

new BCryptPasswordEncoder().encode(users.getPassword()),auths);

}

}

测试访问:

在这里插入图片描述

自定义页面与权限控制


自定义登陆页面:

在这里插入图片描述

Title

用户名:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值