keycloak
クラス | 公開メンバ関数 | 静的公開メンバ関数 | 非公開メンバ関数 | 静的非公開メンバ関数 | 非公開変数類 | 全メンバ一覧
org.keycloak.storage.ldap.idm.model.LDAPDn クラス
org.keycloak.storage.ldap.idm.model.LDAPDn 連携図
Collaboration graph

クラス

class  Entry
 

公開メンバ関数

boolean equals (Object obj)
 
int hashCode ()
 
String toString ()
 
String getFirstRdn ()
 
String getFirstRdnAttrName ()
 
String getFirstRdnAttrValue ()
 
LDAPDn getParentDn ()
 
boolean isDescendantOf (LDAPDn expectedParentDn)
 
void addFirst (String rdnName, String rdnValue)
 

静的公開メンバ関数

static LDAPDn fromString (String dnString)
 

非公開メンバ関数

 LDAPDn ()
 
 LDAPDn (Deque< Entry > entries)
 
String unescapeValue (String escaped)
 
void addLast (String rdnName, String rdnValue)
 

静的非公開メンバ関数

static String toString (Collection< Entry > entries)
 

非公開変数類

final Deque< Entryentries
 

詳解

著者
Marek Posolda

構築子と解体子

◆ LDAPDn() [1/2]

org.keycloak.storage.ldap.idm.model.LDAPDn.LDAPDn ( )
inlineprivate
32  {
33  this.entries = new LinkedList<>();
34  }
final Deque< Entry > entries
Definition: LDAPDn.java:30

◆ LDAPDn() [2/2]

org.keycloak.storage.ldap.idm.model.LDAPDn.LDAPDn ( Deque< Entry entries)
inlineprivate
36  {
37  this.entries = entries;
38  }
final Deque< Entry > entries
Definition: LDAPDn.java:30

関数詳解

◆ addFirst()

void org.keycloak.storage.ldap.idm.model.LDAPDn.addFirst ( String  rdnName,
String  rdnValue 
)
inline
155  {
156  rdnValue = Rdn.escapeValue(rdnValue);
157  entries.addFirst(new Entry(rdnName, rdnValue));
158  }
final Deque< Entry > entries
Definition: LDAPDn.java:30

◆ addLast()

void org.keycloak.storage.ldap.idm.model.LDAPDn.addLast ( String  rdnName,
String  rdnValue 
)
inlineprivate
160  {
161  entries.addLast(new Entry(rdnName, rdnValue));
162  }
final Deque< Entry > entries
Definition: LDAPDn.java:30

◆ equals()

boolean org.keycloak.storage.ldap.idm.model.LDAPDn.equals ( Object  obj)
inline
64  {
65  if (!(obj instanceof LDAPDn)) {
66  return false;
67  }
68 
69  return toString().equals(obj.toString());
70  }
String toString()
Definition: LDAPDn.java:78
LDAPDn()
Definition: LDAPDn.java:32

◆ fromString()

static LDAPDn org.keycloak.storage.ldap.idm.model.LDAPDn.fromString ( String  dnString)
inlinestatic
40  {
41  LDAPDn dn = new LDAPDn();
42 
43  // In certain OpenLDAP implementations the uniqueMember attribute is mandatory
44  // Thus, if a new group is created, it will contain an empty uniqueMember attribute
45  // Later on, when adding members, this empty attribute will be kept
46  // Keycloak must be able to process it, properly, w/o throwing an ArrayIndexOutOfBoundsException
47  if(dnString.trim().isEmpty())
48  return dn;
49 
50  String[] rdns = dnString.split("(?<!\\\\),");
51  for (String entryStr : rdns) {
52  String[] rdn = entryStr.split("(?<!\\\\)=");
53  if (rdn.length >1) {
54  dn.addLast(rdn[0].trim(), rdn[1].trim());
55  } else {
56  dn.addLast(rdn[0].trim(), "");
57  }
58  }
59 
60  return dn;
61  }
LDAPDn()
Definition: LDAPDn.java:32

◆ getFirstRdn()

String org.keycloak.storage.ldap.idm.model.LDAPDn.getFirstRdn ( )
inline
戻り値
string like "uid=joe" from the DN like "uid=joe,dc=something,dc=org"
101  {
102  Entry firstEntry = entries.getFirst();
103  return firstEntry.attrName + "=" + unescapeValue(firstEntry.attrValue);
104  }
final Deque< Entry > entries
Definition: LDAPDn.java:30
String unescapeValue(String escaped)
Definition: LDAPDn.java:123

◆ getFirstRdnAttrName()

String org.keycloak.storage.ldap.idm.model.LDAPDn.getFirstRdnAttrName ( )
inline
戻り値
string attribute name like "uid" from the DN like "uid=joe,dc=something,dc=org"
109  {
110  Entry firstEntry = entries.getFirst();
111  return firstEntry.attrName;
112  }
final Deque< Entry > entries
Definition: LDAPDn.java:30

◆ getFirstRdnAttrValue()

String org.keycloak.storage.ldap.idm.model.LDAPDn.getFirstRdnAttrValue ( )
inline
戻り値
string attribute value like "joe" from the DN like "uid=joe,dc=something,dc=org"
117  {
118  Entry firstEntry = entries.getFirst();
119  String dnEscaped = firstEntry.attrValue;
120  return unescapeValue(dnEscaped);
121  }
final Deque< Entry > entries
Definition: LDAPDn.java:30
String unescapeValue(String escaped)
Definition: LDAPDn.java:123

◆ getParentDn()

LDAPDn org.keycloak.storage.ldap.idm.model.LDAPDn.getParentDn ( )
inline
戻り値
DN like "dc=something,dc=org" from the DN like "uid=joe,dc=something,dc=org". Returned DN will be new clone not related to the original DN instance.
134  {
135  LinkedList<Entry> parentDnEntries = new LinkedList<>(entries);
136  parentDnEntries.remove();
137  return new LDAPDn(parentDnEntries);
138  }
LDAPDn()
Definition: LDAPDn.java:32
final Deque< Entry > entries
Definition: LDAPDn.java:30

◆ hashCode()

int org.keycloak.storage.ldap.idm.model.LDAPDn.hashCode ( )
inline
73  {
74  return toString().hashCode();
75  }
String toString()
Definition: LDAPDn.java:78

◆ isDescendantOf()

boolean org.keycloak.storage.ldap.idm.model.LDAPDn.isDescendantOf ( LDAPDn  expectedParentDn)
inline
140  {
141  int parentEntriesCount = expectedParentDn.entries.size();
142 
143  Deque<Entry> myEntries = new LinkedList<>(this.entries);
144  boolean someRemoved = false;
145  while (myEntries.size() > parentEntriesCount) {
146  myEntries.removeFirst();
147  someRemoved = true;
148  }
149 
150  String myEntriesParentStr = toString(myEntries).toLowerCase();
151  String expectedParentDnStr = expectedParentDn.toString().toLowerCase();
152  return someRemoved && myEntriesParentStr.equals(expectedParentDnStr);
153  }
String toString()
Definition: LDAPDn.java:78
final Deque< Entry > entries
Definition: LDAPDn.java:30

◆ toString() [1/2]

String org.keycloak.storage.ldap.idm.model.LDAPDn.toString ( )
inline
78  {
79  return toString(entries);
80  }
String toString()
Definition: LDAPDn.java:78
final Deque< Entry > entries
Definition: LDAPDn.java:30

◆ toString() [2/2]

static String org.keycloak.storage.ldap.idm.model.LDAPDn.toString ( Collection< Entry entries)
inlinestaticprivate
82  {
83  StringBuilder builder = new StringBuilder();
84 
85  boolean first = true;
86  for (Entry rdn : entries) {
87  if (first) {
88  first = false;
89  } else {
90  builder.append(",");
91  }
92  builder.append(rdn.attrName).append("=").append(rdn.attrValue);
93  }
94 
95  return builder.toString();
96  }
final Deque< Entry > entries
Definition: LDAPDn.java:30

◆ unescapeValue()

String org.keycloak.storage.ldap.idm.model.LDAPDn.unescapeValue ( String  escaped)
inlineprivate
123  {
124  // Something needed to handle non-String types?
125  return Rdn.unescapeValue(escaped).toString();
126  }

メンバ詳解

◆ entries

final Deque<Entry> org.keycloak.storage.ldap.idm.model.LDAPDn.entries
private

このクラス詳解は次のファイルから抽出されました: