Page tree
Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Next »

Your Rating: Results: 1 Star2 Star3 Star4 Star5 Star 1 rates

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.

setPasswordToNull.jsp
<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>

  • No labels