Spring Cloud Alibaba 实操 (五) 修改Nacos控制台密码

简介: 修改Nacos控制台密码

1.概述

Nacos的控制台登录账号是nacos/nacos , 在生产环境中一定需要修改密码,不然一旦服务器地址泄露Nacos就会变得不安全,后果不堪设想。在上一章节我们做Nacos集群时我们基于MySql做了Nacos的数据持久化。在Nacos的数据库中有一个user表 , 这个表就是用来记录Nacos的控制台登录账号的,我们只需要修改表中的password 字段的 值即可。如下
image.png

2.BCryptPasswordEncoder加密

Nacos的密码到底是使用什么样的加密方式来加密的呢?我这里截了一下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("nacos"));
    }

    public static Boolean matches(String raw, String encoded) {
   
   
        return new BCryptPasswordEncoder().matches(raw, encoded);
    }

    public static String encode(String raw) {
   
   
        return new BCryptPasswordEncoder().encode(raw);
    }
}

Nacos用到了security的BCryptPasswordEncoder加密器进行加密,这种加密算法使用哈希算法+随机盐来对字符串加密,对相同的内容多次加密出来的结果不一样却又能校验成功,这样更能保证密码不被破解。BCryptPasswordEncoder提供了encode方法用来对明文进行加密,matches方法用来校验明文密码和密文是否匹配,下面是一段加密,验证的测试代码

public class PasswordEncoderUtil {
   
   

    public static void main(String[] args) {
   
   
        //创建加密器
        BCryptPasswordEncoder bCryptPasswordEncoder = new BCryptPasswordEncoder();

        //对字符串进行加密得到密文
        String enPass = bCryptPasswordEncoder.encode("admin");

        //验证明文的密码是否正确
        boolean isMathch = bCryptPasswordEncoder.matches("admin", enPass);

        System.out.println("密码比对成功");    //打印true
    }
}

3.修改Nacos密码

如果要使用 BCryptPasswordEncoder 你需要导入Security的依赖,我这里在springcloudalibaba-user-server-1010工程中加入了如下依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-security</artifactId>
</dependency>

然后写了一段代码得到密文

public class PasswordEncoderUtil {
   
   

    public static void main(String[] args) {
   
   
        System.out.println(new BCryptPasswordEncoder().encode("admin"));        
        //密文:$2a$10$YrC76q2zs2zLLlUljW5MzubUS0L2hKtMYfjDQCmtWkNLFjFTCf9zO
    }
}

这里把密码“admin”,加密成了密码,我们需要把密文修改到Nacosuser表中的 password字段

image.png

注意:得到密文之后,请把 spring-boot-starter-security 包注释,因为不需要了,不然security会自动做权限检查会报错。

4.登录Nacos控制台

启动Nacos服务端,访问控制台 http://centos的ip:8848/nacos/ 然后使用 nacos/admin登录

目录
相关文章
|
3月前
|
JavaScript 前端开发 Java
垃圾分类管理系统基于 Spring Boot Vue 3 微服务架构实操指南
本文介绍了基于Java技术的垃圾分类管理系统开发方案与实施案例。系统采用前后端分离架构,后端使用Spring Boot框架搭配MySQL数据库,前端可选择Vue.js或Java Swing实现。核心功能模块包括垃圾分类查询、科普教育、回收预约等。文中提供了两个典型应用案例:彭湖花园小区使用的Swing桌面系统和基于Spring Boot+Vue的城市管理系统,分别满足不同场景需求。最新技术方案升级为微服务架构,整合Spring Cloud、Redis、Elasticsearch等技术,并采用Docker容器
214 0
|
2月前
|
Java 数据库连接 API
Java 8 + 特性及 Spring Boot 与 Hibernate 等最新技术的实操内容详解
本内容涵盖Java 8+核心语法、Spring Boot与Hibernate实操,按考试考点分类整理,含技术详解与代码示例,助力掌握最新Java技术与应用。
107 2
|
2月前
|
前端开发 Java API
酒店管理系统基于 JavaFX Spring Boot 和 React 经典项目重构实操
本文介绍了基于现代技术栈的酒店管理系统开发方案,整合了JavaFX、Spring Boot和React三大技术框架。系统采用前后端分离架构,JavaFX构建桌面客户端,React开发Web管理界面,Spring Boot提供RESTful API后端服务。核心功能模块包括客房管理和客户预订流程,文中提供了JavaFX实现的客房管理界面代码示例和React开发的预订组件代码,展示了如何实现客房信息展示、添加修改操作以及在线预订功能。
183 1
|
3月前
|
Java API 微服务
Java 21 与 Spring Boot 3.2 微服务开发从入门到精通实操指南
《Java 21与Spring Boot 3.2微服务开发实践》摘要: 本文基于Java 21和Spring Boot 3.2最新特性,通过完整代码示例展示了微服务开发全流程。主要内容包括:1) 使用Spring Initializr初始化项目,集成Web、JPA、H2等组件;2) 配置虚拟线程支持高并发;3) 采用记录类优化DTO设计;4) 实现JPA Repository与Stream API数据访问;5) 服务层整合虚拟线程异步处理和结构化并发;6) 构建RESTful API并使用Springdoc生成文档。文中特别演示了虚拟线程配置(@Async)和StructuredTaskSco
398 0
|
9月前
|
消息中间件 监控 Java
如何将Spring Boot + RabbitMQ应用程序部署到Pivotal Cloud Foundry (PCF)
如何将Spring Boot + RabbitMQ应用程序部署到Pivotal Cloud Foundry (PCF)
146 6
|
9月前
|
Java 关系型数据库 MySQL
如何将Spring Boot + MySQL应用程序部署到Pivotal Cloud Foundry (PCF)
如何将Spring Boot + MySQL应用程序部署到Pivotal Cloud Foundry (PCF)
164 5
|
9月前
|
缓存 监控 Java
如何将Spring Boot应用程序部署到Pivotal Cloud Foundry (PCF)
如何将Spring Boot应用程序部署到Pivotal Cloud Foundry (PCF)
176 5
|
11月前
|
JSON SpringCloudAlibaba Java
Springcloud Alibaba + jdk17+nacos 项目实践
本文基于 `Springcloud Alibaba + JDK17 + Nacos2.x` 介绍了一个微服务项目的搭建过程,包括项目依赖、配置文件、开发实践中的新特性(如文本块、NPE增强、模式匹配)以及常见的问题和解决方案。通过本文,读者可以了解如何高效地搭建和开发微服务项目,并解决一些常见的开发难题。项目代码已上传至 Gitee,欢迎交流学习。
852 1
Springcloud Alibaba + jdk17+nacos 项目实践