开发者学堂课程【Spring Cloud Alibaba Nacos 详解(上):配置管理基础应用-登录管理】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/724/detail/12923
配置管理基础应用-登录管理
内容介绍
一、Nacos 登陆管理
一、Nacos 登录管理
Nacos 登录时默认用户名或密码都为 Nacos ,为了安全,需要有修改密码的需求,下面来看如何修改密码。Nacos 是使用 BCrypt 方法来进行加密。
修改默认用户名/密码方法
1. 生成加密密码
在入门程序中加入如下以来:
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-core</artifactId>
<version>5.1.4.RELEASE</version>
</ dependency>
编写 PasswordEncoderUtil 类,生成加密后的密码,采用 BCrypt 加密方法在每次生成密码时会加随机盐,所以生成密码每次可能不一样。
public class PasswordEncoderutil {
public static void main(String[]_args){
System.out.println(new BcryptPasswordEncoder().encode("123"));
}
}
在数据库中我们看到有一张表为 users 表,里面存储的就是加密后的密码
如果需要改密码,就只需要修改 password 里的字段。那么图中的串到底代表什么?
这就是 BCrypt 方法加密后的结果。BCrypt 方法具体如何使用?如果想要将密码修改为123,则需要使用 BCrypt 将密码123加密成这样的串,然后更新数据库字段中的内容,就完成密码修改。
操作演示:
先导入加密包,如图在 pom.xml 中就有工具类,先导入第一段代码
然后再编写工具类,在 Nacos 下创建类 PasswordEncoderUtil
在工具类中完成加密的过程,
在 public class PasswordEncoderUtil 下输入
public static void main(String[] args){
String encode = new BCryptPasswordEncoder().encoder(rawPassword:
”123”);
System.out.println();
}
执行,结果为
图上的串就是123。如果想改成456,将代码中的123改成456再执行程序,就会得到456加密后的密码。
现在有了密码,需要更新数据库:
创建用户名或者密码的时候,用指定用户名密码即可。
将上边程序输出的密码更新到数据库。
INSERT INTO users (username
,password,enabled) VALUES ( 'Nacos 1',"$2a$10$SmtL5C6Gp2sLjBrhrx1vj.dJAbJLa4FiJYzsBb921/wfvKAmxKWlyu ',TRUE);INSERT INTO roles (username,role)VALUES ( 'Nacos 1',"ROLE_ADMIN');
在原来数据库中可以看到有 Nacos 和 Nacos 1,Nacos 1是新添加的用户,如果想新添一个用户,则在 users 表中插一条记录,在 roles 表中插一条记录。
如图,在 roles 表中插入的记录是 ADMIN,相当于管理员角色。
如果现在新添了一个用户 Nacos 2,密码为456,只需要将刚才得到的密码拷到图上串的位置,然后再执行,结果如图
此时再打开网页,选择退出登录,再输入用户名和密码:Nacos 2 456
就会登录。
如果想要将 Nacos 的密码改为456,只需要将数据库中 Nacos 的密码字段换成456的串即可。再退出网页登录,输入用户名 Nacos 密码456也可登录。
如果觉得每次登录很麻烦,可以在 Nacos 配置文件中找到配置项目spring.security.enable=false
spring.security.enable=false 就是表示不使用认证,这时再重启 Nacos,再进入 Nacos 的管理界面,就不需要输入密码,网址直接回车就会进入页面。