SpringCloud Alibaba Nacos --------自定义登录用户名和密码(三)
转载
1、修改使用mysql数据库存储配置信息。Nacos Server默认使用的是内嵌的cmdb数据库
在配置文件(./conf/application.properties)添加配置
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://IP地址:端口号/数据库名?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=123456
所以最终整个配置文件:
# spring
server.contextPath=/nacos
server.servlet.contextPath=/nacos
server.port=8848
nacos.cmdb.dumpTaskInterval=3600
nacos.cmdb.eventTaskInterval=10
nacos.cmdb.labelTaskInterval=300
nacos.cmdb.loadDataAtStart=false
spring.datasource.platform=mysql
# !!!!此处设置mysql的相关配置url、用户名、密码
db.num=1
db.url.0=jdbc:mysql://IP地址:端口号/数据库名?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=123456
# metrics for prometheus
#management.endpoints.web.exposure.include=*
# metrics for elastic search
management.metrics.export.elastic.enabled=false
#management.metrics.export.elastic.host=http://localhost:9200
# metrics for influx
management.metrics.export.influx.enabled=false
#management.metrics.export.influx.db=springboot
#management.metrics.export.influx.uri=http://localhost:8086
#management.metrics.export.influx.auto-create-db=true
#management.metrics.export.influx.consistency=one
#management.metrics.export.influx.compressed=true
server.tomcat.accesslog.enabled=true
server.tomcat.accesslog.pattern=%h %l %u %t "%r" %s %b %D
# default current work dir
server.tomcat.basedir=
## spring security config
### turn off security
#spring.security.enabled=false
#management.security=false
#security.basic.enabled=false
#nacos.security.ignore.urls=/**
nacos.security.ignore.urls=/,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.ico,/console-fe/public/**,/v1/auth/login,/v1/console/health,/v1/cs/**,/v1/ns/**,/v1/cmdb/**,/actuator/**
2、创建数据库
在Nacos Server conf文件夹下,找到nacos-mysql.sql文件
3、启动server,可以用用户名和密码 nacos nacos登录一下试试,没问题,再继续下一步
4、生成加密密码, 在com.alibaba.nacos.console.utils.PasswordEncoderUtil.main函数中,将nacos改成你要改成的密码,运行即可得到加密有算法。注意盐值是随机的,所以生成密码每次可能不一样,请不要担心。
public class PasswordEncoderUtil {
public static void main(String[] args) {
System.out.println(new BCryptPasswordEncoder().encode("nacos"));
}
}
6、实际的密码生成是用的:org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder.BCryptPasswordEncoder()
可以通过引入依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
7、然后用代码加密:(随便写一个即可)
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"));
}
}
8、 创建用户名或者密码的时候,用指定用户名密码即可
例如上面我设置密码是admin,加密后是:$2a$10$YrC76q2zs2zLLlUljW5MzubUS0L2hKtMYfjDQCmtWkNLFjFTCf9zO
只需将密码在数据库中进行修改即可。
INSERT INTO users (username, password, enabled) VALUES ('nacos', '$2a$10$YrC76q2zs2zLLlUljW5MzubUS0L2hKtMYfjDQCmtWkNLFjFTCf9zO', TRUE);
INSERT INTO roles (username, role) VALUES ('nacos', 'ROLE_ADMIN');
或者直接在数据库中修改:
9、修改完数据库后,用自定义的admin密码登录