gpt4 book ai didi

security - 如何在 jackrabbit 中更改管理员密码

转载 作者:行者123 更新时间:2023-12-04 02:28:35 29 4
gpt4 key购买 nike

嗨,我正在使用带有 tomcat 的嵌入式长耳兔。我想将管理员用户的默认密码更改为其他密码,以确保安全。

我在 repository.xml 中看到将 adminId 更新为不同的 ID,但默认情况下它使用与用户 ID 相同的密码。所以任何人都可以帮助为不同的用户标识设置密码。

谢谢
玛尼莎

最佳答案

据我所知,在 Jackarbbit 中没有简单的方法可以更改管理员密码。使用 DefaultLoginModule 时,密码存储在 protected 属性的“安全”工作区中,因此您无法更改它们。但是你可以使用 Jackrabbit ACL API methods来自 java 。
我能够使用一个简单的 java 类更改密码,如下所示:

import org.apache.jackrabbit.api.JackrabbitSession;
import org.apache.jackrabbit.api.security.user.Authorizable;
import org.apache.jackrabbit.api.security.user.User;
import org.apache.jackrabbit.api.security.user.UserManager;
import org.apache.jackrabbit.core.TransientRepository;

import javax.jcr.Repository;
import javax.jcr.RepositoryException;
import javax.jcr.Session;
import javax.jcr.SimpleCredentials;
import java.io.File;

public class Main {

public static void main(String[] args) {
Repository repository = new TransientRepository(new File("path_to_jackrabbit_home_dir"));
try {
Session session = repository.login(new SimpleCredentials("admin", "admin".toCharArray()));

UserManager userManager = ((JackrabbitSession) session).getUserManager();
Authorizable authorizable = userManager.getAuthorizable("admin");

((User) authorizable).changePassword("newpassword");

session.save();
session.logout();
} catch (RepositoryException e) {
System.out.println("Auth error.");
e.printStackTrace();
}
}
}

另见: http://jackrabbit.510166.n4.nabble.com/Doubt-with-username-and-password-td3173401.html

关于security - 如何在 jackrabbit 中更改管理员密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5969500/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com