Solr生成授权认证的solr密码“sha256(password+salt) hash”加密

1 篇文章 0 订阅
1 篇文章 0 订阅

 生成访问Solr后台时用于授权登录的证书密码,官方给的信息是可以通过“sha256(password+salt) hash”加密,以下是个人结合官方资料编写的帮助类:

创建security.json的详细步骤我就不贴了,有需要可以参考以下官方资源

官方地址:Basic Authentication Plugin | Apache Solr Reference Guide 6.6
 

附上security.json的文件内容,默认密码是SolrRocks

{
    "authentication": {
        "blockUnknown": true,
        "class": "solr.BasicAuthPlugin",
        "credentials": {
            "solr": "IV0EHq1OnNrj6gvRCwvFwTrZ1+z1oBbnQdiVC3otuq0= Ndd7LKvVBAaZIF0QAVi1ekCfAJXr1GGfLtRUXhgrF8c="
        }
    },
    "authorization": {
        "class": "solr.RuleBasedAuthorizationPlugin",
        "permissions": [
            {
                "name": "security-edit",
                "role": "admin"
            }
        ],
        "user-role": {
            "solr": "admin"
        }
    }
}

下面是生成solr密码的代码段:

package com.solr;

import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.security.SecureRandom;
import java.util.Random;
import org.apache.commons.codec.binary.Base64;

public class SolrSecurity {

	public static void main(String[] args) {
		// 密码
		String password = "SolrRocks";
		
		MessageDigest digest;
		try {
			digest = MessageDigest.getInstance("SHA-256");

			final Random random = new SecureRandom();
			byte[] salt = new byte[32];
			random.nextBytes(salt);

			digest.reset();
			digest.update(salt);
			byte[] btPass = digest.digest(password.getBytes(StandardCharsets.UTF_8));
			digest.reset();
			btPass = digest.digest(btPass);

			System.out.println(Base64.encodeBase64String(btPass) + " " + Base64.encodeBase64String(salt));
		} catch (NoSuchAlgorithmException e) {
			System.err.println("Unknown algorithm: " + e.getMessage());
		}
	}
}

覆盖原密码后重新启动Solr服务,希望可以帮到各位。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
对于 Solr 的身份认证配置,您可以按照以下步骤进行设置: 1. 启用 Solr 的身份认证:在 Solr 的安装目录中,打开 `solr.in.sh`(Linux/MacOS)或 `solr.in.cmd`(Windows)文件,并找到以下行: ``` # SOLR_AUTHENTICATION_OPTS= ``` 取消注释并设置该行为: ``` SOLR_AUTHENTICATION_OPTS="-Dbasicauth=solr:password123" ``` 其中 "solr" 是用户名,"password123" 是密码。 2. 创建授权用户:在 Solr 的安装目录中执行以下命令以创建授权用户: ``` bin/solr create_user -c <core_name> -p <password> ``` `<core_name>` 是您的 Solr 核心名称,`<password>` 是用户的密码。 3. 配置授权规则:打开 Solr 的 `solr.xml` 配置文件,并在 `<security>` 标签内添加以下内容: ```xml <authentication class="solr.BasicAuthPlugin"> <str name="credentials">solr:password123</str> <str name="realm">Solr Basic Authentication</str> </authentication> <authorization class="solr.RuleBasedAuthorizationPlugin"> <params> <!-- 添加授权规则 --> </params> </authorization> ``` 4. 配置访问控制规则:在 `<authorization>` 标签下添加适当的规则以控制用户的访问权限。例如,可以使用如下规则允许用户具有完全访问权限: ```xml <rule name="allow_all" role="solr-admin"> <user username="solr"/> </rule> ``` 您可以根据需要添加其他规则。 5. 重启 Solr:完成上述配置后,重新启动 Solr 服务以使身份认证生效。 请注意,在配置身份认证之前,建议先进行备份并确保对 Solr 实例有适当的访问权限。此外,也可以使用其他可用的身份认证插件,如 LDAP 或 Kerberos。详细信息可以参考 Solr 的官方文档。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值