Wiki Markup |
---|
{rate} Here's a script we used to reset all the passwords in our database to "". We used this when we went from Magnolia's native authentication to using LDAP. {code:title=setPasswordToNull.jsp|borderStyle=solid} <jsp:root version="2.0" xmlns:jsp="http://java.sun.com/JSP/Page" xmlns:cms="urn:jsptld:cms-taglib" xmlns:cmsu="urn:jsptld:cms-util-taglib" xmlns:c="urn:jsptld:http://java.sun.com/jsp/jstl/core"> <jsp:directive.page contentType="text/html; charset=UTF-8" session="false" /> <jsp:output doctype-root-element="html" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" /> <html> <head> <title>Set User Password To Null</title> </head> <body> <jsp:directive.page import="info.magnolia.cms.core.Content" /> <jsp:directive.page import="info.magnolia.cms.beans.config.ContentRepository" /> <jsp:directive.page import="info.magnolia.cms.core.HierarchyManager" /> <jsp:directive.page import="info.magnolia.context.MgnlContext" /> <jsp:directive.page import="java.util.Iterator" /> <jsp:directive.page import="info.magnolia.cms.core.NodeData" /> <jsp:directive.page import="info.magnolia.cms.core.ItemType" /> <jsp:directive.page import="javax.jcr.PathNotFoundException" /> <jsp:directive.page import="javax.jcr.RepositoryException" /> <jsp:declaration> <![CDATA[ public void processUsers( Content c, HttpServletResponse response ) { try { int counter = 0; Iterator users = c.getChildren(ItemType.USER).iterator(); System.out.println("Setting all passwords to null except superuser and anonymous"); while (users.hasNext()) { Content user = (Content) users.next(); try { // skip anonymous user if (user.getName().equalsIgnoreCase("anonymous")) continue; // skip superuser user if (user.getName().equalsIgnoreCase("superuser")) continue; // else set password to an empty string NodeData pswdNodeData = user.getNodeData("pswd"); //Add NodeData check in case that user does not have any pswd attribute //in magnolia repository if (pswdNodeData.isExist()) { pswdNodeData.setValue(""); } response.getWriter().println("Password for " + user.getName()+ " was set to null.</br>"); counter++; } catch (RepositoryException re) { System.out.println("Failed to set null password for " + user.getName()); } } c.save(); response.getWriter().println("<h2>Total " + counter + " users' passwords were set to null.</h2>"); response.flushBuffer(); System.out.println("Successfully updated users repository"); } catch (PathNotFoundException pe) { pe.printStackTrace(); } catch (Throwable t) { t.printStackTrace(); } } ]]> </jsp:declaration> <jsp:scriptlet> <![CDATA[ HierarchyManager hm = MgnlContext.getSystemContext().getHierarchyManager(ContentRepository.USERS); Content rootNode = hm.getContent("/"); response.getWriter().println("<h1>Processing user profile ...</h1>"); processUsers( rootNode, response); response.getWriter().println("Passwords for user \"anonymous\" and \"superuser\" remain unchanged.</br>"); response.getWriter().println("</br>**** USER PASSWORD SET TO NULL COMPLETE ****"); ]]> </jsp:scriptlet> </body> </html> {code} |
Page History
Overview
Content Tools