He intentado el método de Emanuele, y también seguí algunas de las instrucciones que se encuentran en este post : http://jackrabbit.510166.n4.nabble.com/Doubt-with-username-and-password-td3173401.html
Nada funcionó para mí. Ni las herramientas jcr: SPT JCR Manager, jackrabbitexplorer, Toromiro, JCR Explorer o phpcr-browser.
My Jackrabbit webapp (3.0-SNAPSHOT) se implementa en un tomcat7, con aws como almacén de datos y derby como administrador de persistencia.
Después de luchar durante varias horas, la única solución que funcionó para mí estaba invocando este archivo JSP simple, previamente colocada en la raíz de la aplicación 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>
Aunque es similar a la respuesta de Emanuele, la única manera de en realidad podría cambiar la contraseña de administrador actual que estaba recuperando el repositorio usando org.apache.jackrabbit.j2ee.RepositoryAccessServlet
.
La pregunta es sobre jackrabbit solamente, no apache sling – lisak