- Spring Cloud Alibaba之服务发现组件 - Na
- Spring Cloud Alibaba之服务发现组件 - Na
- Spring Cloud Alibaba之服务发现组件 - Na
- Spring Cloud Alibaba之服务发现组件 - Na
- spring cloud alibaba系列(一)Nacos 服
- Spring Cloud 系列之 Alibaba Nacos 注
- Spring Cloud Alibaba 微服务原理与实战
- 5、Spring Cloud Alibaba微服务系列-分布式锁
- SpringCloud常用分布式服务组件
- Spring Cloud Alibaba(二):版本对应关系
上一章已经介绍了如何使用MySQL完成Nacos的数据存储替换,既然我们有了自己的数据库表,那么我们就可以通过修改用户表(users)来完成自定义登录用户名和密码的功能。
自定义登录用户名和密码
前提:我们已经设置了Nacos的数据存储为MySQL,且创建了Nacos数据库。详细配置参考Nacos的数据持久化(七)。
第一步:确保之前初始化的数据库中有下面用户表users、角色表roles:
其中:
- users表存储的是用户名、密码、启用标记
- roles表存储的是用户角色
默认情况下系统会自带一条用户数据,用户名和密码都是:nacos,密码使用org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder.BCryptPasswordEncoder()
加密生成。
依赖包:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
第二步:下载nacos源码,找到console子模块:
第三步: 使用nacos提供的加密工具类可以实现密码的加密操作
package com.alibaba.nacos.console.utils;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
/**
* Password encoder tool
*
* @author nacos
*/
public class PasswordEncoderUtil {
public static void main(String[] args) {
System.out.println(new BCryptPasswordEncoder().encode("admin"));
}
}
例如上面我设置密码是admin,加密后是:
$2a$10$dqlzFzaTFo4PhgJAfk/IfuU6LMZeMbkTCn1SGnZ018KVeYD7xF0sm
只需将密码在数据库中进行修改即可。
INSERT INTO users (username, password, enabled) VALUES ('admin', '$2a$10$dqlzFzaTFo4PhgJAfk/IfuU6LMZeMbkTCn1SGnZ018KVeYD7xF0sm', TRUE);
INSERT INTO roles (username, role) VALUES ('admin', 'ROLE_ADMIN');
或者直接在数据库中分别修改users表和roles表:
第四步:修改完数据库后,用自定义 admin 用户名和密码直接登录:
思考
我们通过查看源码发现,Nacos通过Spring Security完成密码认证操作,这里只是简单的处理。后面我们也可以基于用户表和角色表完成更加复杂的操作。有兴趣的同学可以研究Nacos的源码。
接下来章节,我们将讲解如何使用Nacos搭建集群环境部署。
网友评论