1 package com.sslexplorer.activedirectory; 2 3 import java.io.Serializable ; 4 5 import com.sslexplorer.realms.Realm; 6 import com.sslexplorer.security.Role; 7 8 15 16 public final class ActiveDirectoryGroup implements Role<ActiveDirectoryGroup>, Serializable { 17 18 private static final long serialVersionUID = -7675417973639150879L; 19 private final String sAMAccountName; 20 private final String originalDn; 21 private final String escapedDn; 22 private final Long rid; 23 private ActiveDirectoryGroup[] parents; 24 private final Realm realm; 25 26 public ActiveDirectoryGroup(String samAccountName, String dn, String escapedDn, Long rid, Realm realm) { 27 this.sAMAccountName = samAccountName; 28 this.originalDn = dn; 29 this.escapedDn = escapedDn; 30 this.rid = rid; 31 this.realm = realm; 32 } 33 34 38 public String getPrincipalName() { 39 return sAMAccountName; 40 } 41 42 46 public String getOriginalDn() { 47 return originalDn; 48 } 49 50 54 public String getDn() { 55 return escapedDn; 56 } 57 58 62 public Long getRID() { 63 return rid; 64 } 65 66 void setParents(ActiveDirectoryGroup[] parents) { 67 this.parents = parents; 68 } 69 70 ActiveDirectoryGroup[] getParents() { 71 return parents; 72 } 73 74 78 public Realm getRealm() { 79 return realm; 80 } 81 82 static Long getRIDFromSID(byte[] sid) { 83 String rid = ""; 84 for (int i = 6; i > 0; i--) { 85 rid += byteToHex(sid[i]); 86 } 87 88 long authority = Long.parseLong(rid); 89 if (authority != 5) { 90 return null; 91 } 92 93 rid = ""; 94 for (int j = 11; j > 7; j--) { 95 rid += byteToHex(sid[j + (4 * 4)]); 96 } 97 return new Long (Long.parseLong(rid, 16)); 98 } 99 100 private static String byteToHex(byte b) { 101 String ret = Integer.toHexString(b & 0xFF); 102 if (ret.length() < 2) { 103 ret = "0" + ret; 104 } 105 return ret; 106 } 107 108 112 public String toString() { 113 StringBuffer buffer = new StringBuffer (); 114 buffer.append("["); 115 buffer.append("principalName='").append(sAMAccountName).append("' "); 116 buffer.append("originalDn='").append(originalDn).append("' "); 117 buffer.append("dn='").append(escapedDn).append("' "); 118 buffer.append("realm='").append(realm).append("'"); 119 buffer.append("']"); 120 return buffer.toString(); 121 } 122 123 128 public int compareTo(ActiveDirectoryGroup o) { 129 return getPrincipalName().compareTo(o.getPrincipalName()); 130 } 131 132 public int hashCode() { 133 return sAMAccountName.hashCode(); 134 } 135 136 public boolean equals(Object obj) { 137 if (obj != null && obj instanceof ActiveDirectoryGroup) { 138 return ((ActiveDirectoryGroup) obj).sAMAccountName.equals(sAMAccountName); 139 } 140 return false; 141 } 142 }
| Popular Tags
|