You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by ka...@apache.org on 2015/09/18 16:46:33 UTC

svn commit: r1703873 - in /directory/sandbox/kayyagari/passwd-reset: ./ pom.xml src/ src/main/ src/main/java/ src/main/java/org/ src/main/java/org/apache/ src/main/java/org/apache/directory/ src/main/java/org/apache/directory/PasswordResetter.java

Author: kayyagari
Date: Fri Sep 18 14:46:31 2015
New Revision: 1703873

URL: http://svn.apache.org/viewvc?rev=1703873&view=rev
Log:
a tool to change the password

Added:
    directory/sandbox/kayyagari/passwd-reset/
    directory/sandbox/kayyagari/passwd-reset/pom.xml
    directory/sandbox/kayyagari/passwd-reset/src/
    directory/sandbox/kayyagari/passwd-reset/src/main/
    directory/sandbox/kayyagari/passwd-reset/src/main/java/
    directory/sandbox/kayyagari/passwd-reset/src/main/java/org/
    directory/sandbox/kayyagari/passwd-reset/src/main/java/org/apache/
    directory/sandbox/kayyagari/passwd-reset/src/main/java/org/apache/directory/
    directory/sandbox/kayyagari/passwd-reset/src/main/java/org/apache/directory/PasswordResetter.java

Added: directory/sandbox/kayyagari/passwd-reset/pom.xml
URL: http://svn.apache.org/viewvc/directory/sandbox/kayyagari/passwd-reset/pom.xml?rev=1703873&view=auto
==============================================================================
--- directory/sandbox/kayyagari/passwd-reset/pom.xml (added)
+++ directory/sandbox/kayyagari/passwd-reset/pom.xml Fri Sep 18 14:46:31 2015
@@ -0,0 +1,58 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.apache.directory</groupId>
+  <artifactId>ads-passwd-reset</artifactId>
+  <packaging>jar</packaging>
+  <version>2.0.0-M20</version>
+  <name>ApacheDS Password Reset Tool</name>
+
+  <dependencies>
+     <!--dependency>
+      <groupId>org.apache.directory.server</groupId>
+      <artifactId>apacheds-all</artifactId>
+      <version>${project.version}</version>
+    </dependency-->
+    
+     <dependency>
+      <groupId>org.apache.directory.server</groupId>
+      <artifactId>apacheds-service</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-log4j12</artifactId>
+      <version>1.7.5</version>
+    </dependency>
+  </dependencies>
+  
+    <build>
+        <finalName>ads-passwd-reset</finalName>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-shade-plugin</artifactId>
+                <version>1.5</version>
+                <executions>
+                    <execution>
+                        <phase>package</phase>
+                        <goals>
+                            <goal>shade</goal>
+                        </goals>
+                        <configuration>
+                            <transformers>
+                                <transformer
+                                    implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
+                                    <mainClass>org.apache.directory.PasswordResetter</mainClass>
+                                </transformer>
+                            </transformers>
+                            <promoteTransitiveDependencies>true</promoteTransitiveDependencies>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+  
+</project>

Added: directory/sandbox/kayyagari/passwd-reset/src/main/java/org/apache/directory/PasswordResetter.java
URL: http://svn.apache.org/viewvc/directory/sandbox/kayyagari/passwd-reset/src/main/java/org/apache/directory/PasswordResetter.java?rev=1703873&view=auto
==============================================================================
--- directory/sandbox/kayyagari/passwd-reset/src/main/java/org/apache/directory/PasswordResetter.java (added)
+++ directory/sandbox/kayyagari/passwd-reset/src/main/java/org/apache/directory/PasswordResetter.java Fri Sep 18 14:46:31 2015
@@ -0,0 +1,88 @@
+/*
+ * Copyright (c) 2006-2015 Mirth Corporation.
+ * All rights reserved.
+ *
+ * NOTICE:  All information contained herein is, and remains, the
+ * property of Mirth Corporation. The intellectual and technical
+ * concepts contained herein are proprietary and confidential to
+ * Mirth Corporation and may be covered by U.S. and Foreign
+ * Patents, patents in process, and are protected by trade secret
+ * and/or copyright law. Dissemination of this information or reproduction
+ * of this material is strictly forbidden unless prior written permission
+ * is obtained from Mirth Corporation.
+ */
+package org.apache.directory;
+
+import org.apache.directory.api.ldap.model.constants.SchemaConstants;
+import org.apache.directory.api.ldap.model.entry.Attribute;
+import org.apache.directory.api.ldap.model.entry.DefaultAttribute;
+import org.apache.directory.api.ldap.model.entry.DefaultModification;
+import org.apache.directory.api.ldap.model.entry.Entry;
+import org.apache.directory.api.ldap.model.entry.Modification;
+import org.apache.directory.api.ldap.model.entry.ModificationOperation;
+import org.apache.directory.api.ldap.model.name.Dn;
+import org.apache.directory.api.ldap.model.schema.AttributeType;
+import org.apache.directory.api.util.Strings;
+import org.apache.directory.server.ApacheDsService;
+import org.apache.directory.server.core.api.CoreSession;
+import org.apache.directory.server.core.api.DirectoryService;
+import org.apache.directory.server.core.api.InstanceLayout;
+import org.apache.directory.server.core.api.InterceptorEnum;
+import org.apache.directory.server.core.authn.AuthenticationInterceptor;
+
+/**
+ * A tool to change the password of an entry
+ * 
+ * @author Kiran Ayyagari
+ */
+public class PasswordResetter {
+    
+    public static void main(String[] args) throws Exception {
+        if(args.length !=3 ) {
+            System.out.println("Usage\n java -jar passwd-reset.jar <instance-dir> <user-dn> <password>");
+            System.out.println("instance-dir the root directory of the installed instance");
+            System.out.println("user-dn the DN of the user entry");
+            System.out.println("password new password of the user");
+            System.exit(0);
+        }
+        
+        String instanceDir = args[0];
+        String userDn = args[1];
+        String password = args[2];
+        
+        InstanceLayout layout = new InstanceLayout(instanceDir);
+        ApacheDsService ads = new ApacheDsService();
+        ads.start(layout);
+        DirectoryService ds = ads.getDirectoryService();
+        AuthenticationInterceptor authInterceptor = (AuthenticationInterceptor)ds.getInterceptor(InterceptorEnum.AUTHENTICATION_INTERCEPTOR.getName());
+        // disable ppolicy
+        authInterceptor.setPwdPolicyContainer(null);
+        
+        CoreSession session = ds.getAdminSession();
+
+        try {
+            Dn dn = new Dn(ds.getSchemaManager(), userDn);
+            Entry entry = session.lookup(dn, SchemaConstants.ALL_USER_ATTRIBUTES);
+            if(entry == null) {
+                System.out.println( "No such user exists" );
+            }
+            else {
+                AttributeType atTpe = ds.getSchemaManager().lookupAttributeTypeRegistry(SchemaConstants.USER_PASSWORD_AT);
+                Attribute pwdAt = new DefaultAttribute(atTpe);
+                pwdAt.add(Strings.getBytesUtf8(password));
+                
+                Modification mod = new DefaultModification(ModificationOperation.REPLACE_ATTRIBUTE, pwdAt);
+                
+                session.modify(dn, mod);
+                
+                System.out.println("Successfully modified password");
+            }
+        }
+        catch(Exception e) {
+            e.printStackTrace();
+            System.out.println("Failed to update password");
+        }
+        
+        ads.stop();
+    }
+}