summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Rettberg2014-10-15 11:57:47 +0200
committerSimon Rettberg2014-10-15 11:57:47 +0200
commit1e5f278d7dccff655f192e93ff767243de12de77 (patch)
treead0c6792369d1d59f33ab10a97a94cbdbd44d1ae
parentNew task: BackupRestore (diff)
downloadtmlite-bwlp-1e5f278d7dccff655f192e93ff767243de12de77.tar.gz
tmlite-bwlp-1e5f278d7dccff655f192e93ff767243de12de77.tar.xz
tmlite-bwlp-1e5f278d7dccff655f192e93ff767243de12de77.zip
LdapSearch: Add option to search for specific user to get their dn
-rw-r--r--src/main/java/org/openslx/taskmanager/tasks/LdapSearch.java22
1 files changed, 18 insertions, 4 deletions
diff --git a/src/main/java/org/openslx/taskmanager/tasks/LdapSearch.java b/src/main/java/org/openslx/taskmanager/tasks/LdapSearch.java
index f861b6a..157b5e1 100644
--- a/src/main/java/org/openslx/taskmanager/tasks/LdapSearch.java
+++ b/src/main/java/org/openslx/taskmanager/tasks/LdapSearch.java
@@ -21,9 +21,13 @@ public class LdapSearch extends SystemCommandTask
private String binddn = null;
@Expose
private String bindpw = null;
+ @Expose
+ private String username = null;
private String fifo = null;
+ private boolean getDn = false;
+
private volatile int userCount = 0;
private Output status = new Output();
@@ -57,7 +61,12 @@ public class LdapSearch extends SystemCommandTask
status.messages = e.toString();
return null;
}
- status.addMessage( "Trying to find 4 random AD users to verify everything is all right..." );
+ if ( this.username == null ) {
+ status.addMessage( "Trying to find 4 random AD users to verify everything is all right..." );
+ this.username = "*";
+ } else {
+ this.getDn = true;
+ }
return new String[] {
"ldapsearch",
@@ -70,8 +79,9 @@ public class LdapSearch extends SystemCommandTask
"-l", "4", // Time limit in seconds
"-z", "4", // Max number of results
"-o", "ldif-wrap=no", // Turn off retarded line wrapping done by ldapsearch
- "(&(objectClass=user)(objectClass=person)(sAMAccountName=*))",
- "sAMAccountName" // Only one attribute
+ "(&(objectClass=user)(objectClass=person)(sAMAccountName=" + this.username + "))",
+ "sAMAccountName", // Find account name
+ "dn" // And dn
};
}
@@ -91,10 +101,13 @@ public class LdapSearch extends SystemCommandTask
@Override
protected void processStdOut( String line )
{
- if ( line.contains( "sAMAccountName: " ) ) {
+ if ( line.startsWith( "sAMAccountName: " ) ) {
status.addMessage( "Found AD user " + line.substring( 16 ) + " :-)" );
this.userCount++;
}
+ if ( this.getDn && line.startsWith( "dn: " ) ) {
+ status.dn = line.substring( 4 );
+ }
}
@Override
@@ -108,6 +121,7 @@ public class LdapSearch extends SystemCommandTask
class Output
{
private String messages = null;
+ public String dn = null;
private void addMessage( String str )
{