gluu
公開メンバ関数 | 静的公開変数類 | 非公開変数類 | 静的非公開変数類 | 全メンバ一覧
org.xdi.oxauth.idgen.ws.rs.InumGenerator クラス
org.xdi.oxauth.idgen.ws.rs.InumGenerator の継承関係図
Inheritance graph
org.xdi.oxauth.idgen.ws.rs.InumGenerator 連携図
Collaboration graph

公開メンバ関数

String generateId (String p_idType, String p_idPrefix)
 
String generateId (IdType p_idType, String p_idPrefix)
 
boolean contains (String inum, IdType type)
 
String baseDn (IdType p_type)
 

静的公開変数類

static final String SEPARATOR = "!"
 

非公開変数類

final Pattern baseRdnPattern = Pattern.compile(".+o=([\\w\\!\\@\\.]+)$")
 
Logger log
 
PersistenceEntryManager ldapEntryManager
 
StaticConfiguration staticConfiguration
 

静的非公開変数類

static final int MAX = 100
 

詳解

Inum ID generator. Generates inum: e.g. @!1111!0001!1234.

著者
Yuriy Zabrovarnyy
バージョン
0.9, 26/06/2013

関数詳解

◆ baseDn()

String org.xdi.oxauth.idgen.ws.rs.InumGenerator.baseDn ( IdType  p_type)
inline
112  {
113  final BaseDnConfiguration baseDn = staticConfiguration.getBaseDn();
114  switch (p_type) {
115  case CLIENTS:
116  return baseDn.getClients();
117  case APPLIANCE:
118  return baseDn.getAppliance();
119  case ATTRIBUTE:
120  return baseDn.getAttributes();
121  case PEOPLE:
122  return baseDn.getPeople();
123  }
124 
125  // if not able to identify baseDn by type then return organization baseDn, e.g. o=gluu
126  Matcher m = baseRdnPattern.matcher(baseDn.getClients());
127  if (m.matches()) {
128  return m.group(1);
129  }
130 
131  log.error("Use fallback DN: o=gluu, for ID generator, please check oxAuth configuration, clientDn must be valid DN");
132  return "o=gluu";
133  }
Logger log
Definition: InumGenerator.java:44
StaticConfiguration staticConfiguration
Definition: InumGenerator.java:49
String getClients()
Definition: BaseDnConfiguration.java:93
String baseDn(IdType p_type)
Definition: InumGenerator.java:112
final Pattern baseRdnPattern
Definition: InumGenerator.java:41
BaseDnConfiguration getBaseDn()
Definition: StaticConfiguration.java:32

◆ contains()

boolean org.xdi.oxauth.idgen.ws.rs.InumGenerator.contains ( String  inum,
IdType  type 
)
inline
105  {
106  final String baseDn = baseDn(type);
107  final Filter filter = Filter.createEqualityFilter("inum", inum);
108  final List<DummyEntry> entries = ldapEntryManager.findEntries(baseDn, DummyEntry.class, filter);
109  return entries != null && !entries.isEmpty();
110  }
PersistenceEntryManager ldapEntryManager
Definition: InumGenerator.java:46
String baseDn(IdType p_type)
Definition: InumGenerator.java:112

◆ generateId() [1/2]

String org.xdi.oxauth.idgen.ws.rs.InumGenerator.generateId ( String  p_idType,
String  p_idPrefix 
)
inline

org.xdi.oxauth.idgen.ws.rs.IdGeneratorを実装しています。

52  {
53  final IdType idType = IdType.fromString(p_idType);
54  if (idType != null) {
55  return generateId(idType, p_idPrefix);
56  } else {
57  log.error("Unable to identify id type: {}", p_idType);
58  }
59  return "";
60  }
Logger log
Definition: InumGenerator.java:44
String generateId(String p_idType, String p_idPrefix)
Definition: InumGenerator.java:52

◆ generateId() [2/2]

String org.xdi.oxauth.idgen.ws.rs.InumGenerator.generateId ( IdType  p_idType,
String  p_idPrefix 
)
inline
62  {
63  String inum;
64  int counter = 0;
65 
66  try {
67  while (true) {
68  final StringBuilder sb = new StringBuilder();
69  sb.append(p_idPrefix).
70  append(InumGenerator.SEPARATOR).
71  append(p_idType.getInum()).
72  append(InumGenerator.SEPARATOR);
73 
74  if ((IdType.CLIENTS == p_idType) || (IdType.PEOPLE == p_idType)) {
75  sb.append(INumGenerator.generate(4));
76  } else {
77  sb.append(INumGenerator.generate(2));
78  }
79 
80  inum = sb.toString();
81  if (StringUtils.isBlank(inum)) {
82  log.error("Unable to generate inum: {}", inum);
83  break;
84  }
85 
86  if (!contains(inum, p_idType)) {
87  break;
88  }
89 
90  /* Just to make sure it doesn't get into an infinite loop */
91  if (counter > MAX) {
92  log.error("Infinite loop problem while generating new inum");
93  return "";
94  }
95  counter++;
96  }
97  } catch (Exception e) {
98  log.error(e.getMessage(), e);
99  inum = e.getMessage();
100  }
101  log.trace("Generated inum: {}", inum);
102  return inum;
103  }
Definition: InumGenerator.py:1
Logger log
Definition: InumGenerator.java:44
boolean contains(String inum, IdType type)
Definition: InumGenerator.java:105
static final int MAX
Definition: InumGenerator.java:39

メンバ詳解

◆ baseRdnPattern

final Pattern org.xdi.oxauth.idgen.ws.rs.InumGenerator.baseRdnPattern = Pattern.compile(".+o=([\\w\\!\\@\\.]+)$")
private

◆ ldapEntryManager

PersistenceEntryManager org.xdi.oxauth.idgen.ws.rs.InumGenerator.ldapEntryManager
private

◆ log

Logger org.xdi.oxauth.idgen.ws.rs.InumGenerator.log
private

◆ MAX

final int org.xdi.oxauth.idgen.ws.rs.InumGenerator.MAX = 100
staticprivate

◆ SEPARATOR

final String org.xdi.oxauth.idgen.ws.rs.InumGenerator.SEPARATOR = "!"
static

◆ staticConfiguration

StaticConfiguration org.xdi.oxauth.idgen.ws.rs.InumGenerator.staticConfiguration
private

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