1 19 20 package com.sslexplorer.activedirectory; 21 22 import java.util.Calendar ; 23 import java.util.Date ; 24 25 import com.sslexplorer.realms.Realm; 26 import com.sslexplorer.security.DefaultUser; 27 import com.sslexplorer.security.User; 28 29 36 public final class ActiveDirectoryUser extends DefaultUser { 37 private static final long serialVersionUID = 2475206921518033947L; 38 private final String userPrincipalName; 39 private final String originalDn; 40 private final String escapedDn; 41 42 51 ActiveDirectoryUser(String username, String userPrincipalName, String email, String fullname, String dn, String escapedDn, Date lastPasswordChange, Realm realm) { 52 super(selectUsername(username, userPrincipalName), email, fullname, lastPasswordChange, realm); 53 this.userPrincipalName = selectUserPrincipalName(username, userPrincipalName); 54 this.originalDn = dn; 55 this.escapedDn = escapedDn; 56 } 57 58 private static String selectUsername(String username, String userPrincipalName) { 59 return isEmpty(userPrincipalName) ? username : parseUsername(userPrincipalName); 60 } 61 62 private static String parseUsername(String userPrincipalName) { 63 int indexOf = userPrincipalName.indexOf("@"); 64 return indexOf == -1 ? userPrincipalName : userPrincipalName.substring(0, indexOf); 65 } 66 67 private static String selectUserPrincipalName(String username, String userPrincipalName) { 68 return isEmpty(userPrincipalName) ? username : fixUserPrincipalName(userPrincipalName); 69 } 70 71 77 private static String fixUserPrincipalName(String userPrincipalName) { 78 int indexOf = userPrincipalName.indexOf("@"); 79 if (indexOf == -1) { 80 return userPrincipalName; 81 } 82 indexOf++; String domain = userPrincipalName.substring(indexOf, userPrincipalName.length()).toUpperCase(); 84 String fixedUserPrincipalName = userPrincipalName.substring(0, indexOf) + domain; 85 return fixedUserPrincipalName; 86 } 87 88 private static boolean isEmpty(String value) { 89 return value == null || value.length() == 0; 90 } 91 92 96 public String getUserPrincipalName() { 97 return userPrincipalName; 98 } 99 100 104 public String getOriginalDn() { 105 return originalDn; 106 } 107 108 112 public String getDn() { 113 return escapedDn; 114 } 115 116 121 static Date adTimeToJavaDate(long timeStamp) { 122 Calendar calendar = Calendar.getInstance(); 123 calendar.clear(); 124 calendar.set(1601, 0, 1, 0, 0); 125 timeStamp = timeStamp / 10000 + calendar.getTime().getTime(); 126 return new Date (timeStamp); 127 } 128 129 134 public String toString() { 135 StringBuffer buffer = new StringBuffer (super.toString()); 136 buffer.append("["); 137 buffer.append("userPrincipalName='").append(userPrincipalName).append("' "); 138 buffer.append("originalDn='").append(originalDn).append("' "); 139 buffer.append("dn='").append(escapedDn).append("'"); 140 buffer.append("]"); 141 return buffer.toString(); 142 } 143 }
| Popular Tags
|