五.SpringCloudAlibaba极简入门-修改Nacos控制台密码

老鸟飞过 , 只做学习使用,欢迎交流

1.概述

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

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字段

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

4.登录Nacos控制台

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

  • 8
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

墨家巨子@俏如来

你的鼓励是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值