您好我正在使用嵌入式jackrabbit與tomcat。我想將admin用戶的默認密碼更改爲其他內容,因此安全可靠。如何更改jackrabbit中的管理員密碼
我在repository.xml中看到了將adminId更新爲不同的id,但默認情況下它使用與用戶id相同的密碼。所以任何人都可以幫助設置不同用戶名的密碼。
感謝 MANISHA
您好我正在使用嵌入式jackrabbit與tomcat。我想將admin用戶的默認密碼更改爲其他內容,因此安全可靠。如何更改jackrabbit中的管理員密碼
我在repository.xml中看到了將adminId更新爲不同的id,但默認情況下它使用與用戶id相同的密碼。所以任何人都可以幫助設置不同用戶名的密碼。
感謝 MANISHA
https://cwiki.apache.org/confluence/display/SLING/FAQ
從鏈接:
使用的UserManager:
curl \ -F"oldPwd=admin" \ -F"newPwd=Fritz" \ -F"newPwdConfirm=Fritz" \ http://admin:[email protected]:8080/system/userManager/user/admin.changePassword.html
也將在菲利克斯Web管理控制檯(以設置密碼/ system/console/configMgr)下的「Apache Sling Embedded JCR Repository」。 Sling使用此功能爲需要完全訪問存儲庫的組件創建管理JCR會話(使用SlingRepository.loginAdministrative())。
注意:只有在重新啓動框架後,舊密碼纔會失效(截至09-11-10)。
注意:根據Jackrabbit中使用的登錄模塊,根本不會檢查密碼(SimpleLoginModule,Jackrabbit的標準< = 1.4)。自從Jackrabbit 1.5以來,DefaultLoginModule提供了完整的用戶支持。
據我所知,在Jackarbbit中沒有簡單的方法來更改管理員密碼。使用DefaultLoginModule時,密碼將存儲在受保護屬性的「安全」工作區中,因此您無法更改它們。但是你可以使用Java的Jackrabbit ACL API methods。 我可以用一個簡單的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
我已經試過埃馬努埃萊的方法,也跟着一些在這個帖子中的說明: http://jackrabbit.510166.n4.nabble.com/Doubt-with-username-and-password-td3173401.html
沒有爲我工作。 jcr工具:SPT JCR Manager,jackrabbitexplorer,Toromiro,JCR Explorer或phpcr-browser。
我的長爪哇webapp(3.0-SNAPSHOT)部署在tomcat7中,其中aws作爲數據存儲和derby作爲持久性管理器。
掙扎了幾個小時後,只爲我工作溶液中調用這個簡單的JSP文件,先前放置在Web應用程序根:
<%@ page import="org.apache.jackrabbit.api.JackrabbitSession,
org.apache.jackrabbit.api.security.user.Authorizable,
org.apache.jackrabbit.api.security.user.User,
org.apache.jackrabbit.api.security.user.UserManager,
org.apache.jackrabbit.core.TransientRepository,
javax.jcr.Repository,
javax.jcr.Session,
javax.jcr.SimpleCredentials,
java.io.File,
org.apache.jackrabbit.commons.JcrUtils,
org.apache.jackrabbit.j2ee.RepositoryAccessServlet"
%>
<%
Repository repository;
try {
repository = RepositoryAccessServlet.getRepository(pageContext.getServletContext());
Session jackrabbitSession = repository.login(new SimpleCredentials("admin", "oldpass".toCharArray()));
UserManager userManager = ((JackrabbitSession) jackrabbitSession).getUserManager();
Authorizable authorizable = userManager.getAuthorizable("admin");
((User) authorizable).changePassword("newpass");
jackrabbitSession.save();
jackrabbitSession.logout();
} catch (Throwable e) {
%><jsp:forward page="bootstrap/error.jsp"/><%
}
request.setAttribute("title", "Apache Jackrabbit JCR Server");
%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<h1>Hello World!</h1>
</body>
</html>
雖然類似於埃馬努埃萊的答案,只有這樣我實際上可以更改當前的管理員密碼是使用org.apache.jackrabbit.j2ee.RepositoryAccessServlet
檢索存儲庫。
問題是關於長耳老鼠,而不是apache吊索 – lisak 2011-06-18 10:38:39