gluu
公開メンバ関数 | 非公開メンバ関数 | 非公開変数類 | 静的非公開変数類 | 全メンバ一覧
org.gluu.oxtrust.ldap.service.GroupService クラス
org.gluu.oxtrust.ldap.service.GroupService の継承関係図
Inheritance graph
org.gluu.oxtrust.ldap.service.GroupService 連携図
Collaboration graph

公開メンバ関数

void addGroup (GluuGroup group) throws Exception
 
void updateGroup (GluuGroup group)
 
void removeGroup (GluuGroup group)
 
List< GluuGroupgetAllGroups ()
 
boolean isMemberOrOwner (String groupDN, String personDN)
 
GluuGroup getGroupByInum (String inum)
 
String getDnForGroup (String inum)
 
int countGroups ()
 
boolean contains (String groupDn)
 
String generateInumForNewGroup () throws Exception
 
String generateInameForNewGroup (String name) throws Exception
 
List< GluuGroupsearchGroups (String pattern, int sizeLimit) throws Exception
 
List< GluuGroupgetAllGroups (int sizeLimit)
 
GluuGroupVisibility [] getVisibilityTypes () throws Exception
 
GluuGroup getGroupByDn (String Dn)
 
GluuGroup getGroupByIname (String iname) throws Exception
 
GluuGroup getGroupByDisplayName (String DisplayName) throws Exception
 
List< GluuGroupfindGroups (GluuGroup group, int sizeLimit)
 
boolean isMemberOrOwner (String[] groupDNs, String personDN) throws Exception
 

非公開メンバ関数

boolean containsGroup (GluuGroup group)
 
String generateInumForNewGroupImpl () throws Exception
 

非公開変数類

Logger log
 
AppConfiguration appConfiguration
 
PersistenceEntryManager ldapEntryManager
 
OrganizationService organizationService
 
PersonService personService
 

静的非公開変数類

static final long serialVersionUID = -9167587377957719152L
 

詳解

Provides operations with groups

著者
Yuriy Movchan Date: 11.02.2010

関数詳解

◆ addGroup()

void org.gluu.oxtrust.ldap.service.GroupService.addGroup ( GluuGroup  group) throws Exception
inline

org.gluu.oxtrust.ldap.service.IGroupServiceを実装しています。

61  {
62  GluuGroup displayNameGroup = new GluuGroup();
63  displayNameGroup.setDisplayName(group.getDisplayName());
64  List<GluuGroup> groups= findGroups(displayNameGroup, 1);
65  if (groups == null || groups.size() == 0) {
66  ldapEntryManager.persist(group);
67  } else {
68  throw new DuplicateEntryException("Duplicate displayName: " + group.getDisplayName());
69  }
70  }
List< GluuGroup > findGroups(GluuGroup group, int sizeLimit)
Definition: GroupService.java:305
PersistenceEntryManager ldapEntryManager
Definition: GroupService.java:49

◆ contains()

boolean org.gluu.oxtrust.ldap.service.GroupService.contains ( String  groupDn)
inline
171  {
172  return ldapEntryManager.contains(GluuCustomPerson.class, groupDn);
173  }
PersistenceEntryManager ldapEntryManager
Definition: GroupService.java:49

◆ containsGroup()

boolean org.gluu.oxtrust.ldap.service.GroupService.containsGroup ( GluuGroup  group)
inlineprivate
191  {
192  boolean result=false;
193  try {
194  result = ldapEntryManager.contains(group);
195  }
196  catch (Exception e){
197  log.debug(e.getMessage(), e);
198  }
199  return result;
200  }
Logger log
Definition: GroupService.java:43
PersistenceEntryManager ldapEntryManager
Definition: GroupService.java:49

◆ countGroups()

int org.gluu.oxtrust.ldap.service.GroupService.countGroups ( )
inline

org.gluu.oxtrust.ldap.service.IGroupServiceを実装しています。

164  {
165  GluuGroup gluuGroup = new GluuGroup();
166  gluuGroup.setBaseDn(getDnForGroup(null));
167 
168  return ldapEntryManager.countEntries(gluuGroup);
169  }
PersistenceEntryManager ldapEntryManager
Definition: GroupService.java:49
String getDnForGroup(String inum)
Definition: GroupService.java:151

◆ findGroups()

List<GluuGroup> org.gluu.oxtrust.ldap.service.GroupService.findGroups ( GluuGroup  group,
int  sizeLimit 
)
inline

Search groups by attributes present in object

引数
group
sizeLimit
戻り値

org.gluu.oxtrust.ldap.service.IGroupServiceを実装しています。

305  {
306  group.setBaseDn(getDnForGroup(null));
307  return ldapEntryManager.findEntries(group, sizeLimit);
308  }
PersistenceEntryManager ldapEntryManager
Definition: GroupService.java:49
String getDnForGroup(String inum)
Definition: GroupService.java:151

◆ generateInameForNewGroup()

String org.gluu.oxtrust.ldap.service.GroupService.generateInameForNewGroup ( String  name) throws Exception
inline

org.gluu.oxtrust.ldap.service.IGroupServiceを実装しています。

206  {
207  return String.format("%s*group*%s", appConfiguration.getOrgIname(), name);
208  }
AppConfiguration appConfiguration
Definition: GroupService.java:46

◆ generateInumForNewGroup()

String org.gluu.oxtrust.ldap.service.GroupService.generateInumForNewGroup ( ) throws Exception
inline

org.gluu.oxtrust.ldap.service.IGroupServiceを実装しています。

179  {
180  GluuGroup group = new GluuGroup();
181  String newInum = null;
182  do {
183  newInum = generateInumForNewGroupImpl();
184  String newDn = getDnForGroup(newInum);
185  group.setDn(newDn);
186  } while (containsGroup(group));
187 
188  return newInum;
189  }
String generateInumForNewGroupImpl()
Definition: GroupService.java:244
String getDnForGroup(String inum)
Definition: GroupService.java:151
boolean containsGroup(GluuGroup group)
Definition: GroupService.java:191

◆ generateInumForNewGroupImpl()

String org.gluu.oxtrust.ldap.service.GroupService.generateInumForNewGroupImpl ( ) throws Exception
inlineprivate

Generate new inum for group

戻り値
New inum for group
244  {
245  String orgInum = organizationService.getInumForOrganization();
246  return orgInum + OxTrustConstants.inumDelimiter + OxTrustConstants.INUM_GROUP_OBJECTTYPE + OxTrustConstants.inumDelimiter
247  + INumGenerator.generate(2);
248  }
String getInumForOrganization()
Definition: OrganizationService.java:189
OrganizationService organizationService
Definition: GroupService.java:52

◆ getAllGroups() [1/2]

List<GluuGroup> org.gluu.oxtrust.ldap.service.GroupService.getAllGroups ( )
inline

org.gluu.oxtrust.ldap.service.IGroupServiceを実装しています。

108  {
109  return ldapEntryManager.findEntries(getDnForGroup(null), GluuGroup.class, null);
110  }
PersistenceEntryManager ldapEntryManager
Definition: GroupService.java:49
String getDnForGroup(String inum)
Definition: GroupService.java:151

◆ getAllGroups() [2/2]

List<GluuGroup> org.gluu.oxtrust.ldap.service.GroupService.getAllGroups ( int  sizeLimit)
inline

org.gluu.oxtrust.ldap.service.IGroupServiceを実装しています。

227  {
228  return ldapEntryManager.findEntries(getDnForGroup(null), GluuGroup.class, null, sizeLimit);
229  }
PersistenceEntryManager ldapEntryManager
Definition: GroupService.java:49
String getDnForGroup(String inum)
Definition: GroupService.java:151

◆ getDnForGroup()

String org.gluu.oxtrust.ldap.service.GroupService.getDnForGroup ( String  inum)
inline

org.gluu.oxtrust.ldap.service.IGroupServiceを実装しています。

151  {
152  String orgDn = organizationService.getDnForOrganization();
153  if (StringHelper.isEmpty(inum)) {
154  return String.format("ou=groups,%s", orgDn);
155  }
156 
157  return String.format("inum=%s,ou=groups,%s", inum, orgDn);
158  }
String getDnForOrganization(String inum)
Definition: OrganizationService.java:106
OrganizationService organizationService
Definition: GroupService.java:52

◆ getGroupByDisplayName()

GluuGroup org.gluu.oxtrust.ldap.service.GroupService.getGroupByDisplayName ( String  DisplayName) throws Exception
inline

org.gluu.oxtrust.ldap.service.IGroupServiceを実装しています。

283  {
284  GluuGroup group = new GluuGroup();
285  group.setBaseDn(getDnForGroup(null));
286  group.setDisplayName(DisplayName);
287 
288  List<GluuGroup> groups = ldapEntryManager.findEntries(group);
289 
290  if ((groups != null) && (groups.size() > 0)) {
291  return groups.get(0);
292  }
293 
294  return null;
295  }
PersistenceEntryManager ldapEntryManager
Definition: GroupService.java:49
String getDnForGroup(String inum)
Definition: GroupService.java:151

◆ getGroupByDn()

GluuGroup org.gluu.oxtrust.ldap.service.GroupService.getGroupByDn ( String  Dn)
inline

org.gluu.oxtrust.ldap.service.IGroupServiceを実装しています。

255  {
256  GluuGroup result = ldapEntryManager.find(GluuGroup.class, Dn);
257 
258  return result;
259  }
PersistenceEntryManager ldapEntryManager
Definition: GroupService.java:49

◆ getGroupByIname()

GluuGroup org.gluu.oxtrust.ldap.service.GroupService.getGroupByIname ( String  iname) throws Exception
inline

org.gluu.oxtrust.ldap.service.IGroupServiceを実装しています。

265  {
266  GluuGroup group = new GluuGroup();
267  group.setBaseDn(getDnForGroup(null));
268  group.setIname(iname);
269 
270  List<GluuGroup> groups = ldapEntryManager.findEntries(group);
271 
272  if ((groups != null) && (groups.size() > 0)) {
273  return groups.get(0);
274  }
275 
276  return null;
277  }
PersistenceEntryManager ldapEntryManager
Definition: GroupService.java:49
String getDnForGroup(String inum)
Definition: GroupService.java:151

◆ getGroupByInum()

GluuGroup org.gluu.oxtrust.ldap.service.GroupService.getGroupByInum ( String  inum)
inline

org.gluu.oxtrust.ldap.service.IGroupServiceを実装しています。

136  {
137  GluuGroup result = null;
138  try{
139  result = ldapEntryManager.find(GluuGroup.class, getDnForGroup(inum));
140  }catch(Exception e){
141  log.error("Failed to find group by Inum " + inum, e);
142  }
143  return result;
144 
145  }
Logger log
Definition: GroupService.java:43
PersistenceEntryManager ldapEntryManager
Definition: GroupService.java:49
String getDnForGroup(String inum)
Definition: GroupService.java:151

◆ getVisibilityTypes()

GluuGroupVisibility [] org.gluu.oxtrust.ldap.service.GroupService.getVisibilityTypes ( ) throws Exception
inline

org.gluu.oxtrust.ldap.service.IGroupServiceを実装しています。

235  {
236  return GluuGroupVisibility.values();
237  }

◆ isMemberOrOwner() [1/2]

boolean org.gluu.oxtrust.ldap.service.GroupService.isMemberOrOwner ( String  groupDN,
String  personDN 
)
inline

org.gluu.oxtrust.ldap.service.IGroupServiceを実装しています。

116  {
117  Filter ownerFilter = Filter.createEqualityFilter(OxTrustConstants.owner, personDN);
118  Filter memberFilter = Filter.createEqualityFilter(OxTrustConstants.member, personDN);
119  Filter searchFilter = Filter.createORFilter(ownerFilter, memberFilter);
120 
121  boolean isMemberOrOwner = false;
122  try {
123  isMemberOrOwner = ldapEntryManager.findEntries(groupDN, GluuGroup.class, searchFilter, 1).size() > 0;
124 
125  } catch (EntryPersistenceException ex) {
126  log.error("Failed to determine if person '{}' memeber or owner of group '{}'", personDN, groupDN, ex);
127  }
128 
129  return isMemberOrOwner;
130  }
boolean isMemberOrOwner(String groupDN, String personDN)
Definition: GroupService.java:116
Logger log
Definition: GroupService.java:43
PersistenceEntryManager ldapEntryManager
Definition: GroupService.java:49

◆ isMemberOrOwner() [2/2]

boolean org.gluu.oxtrust.ldap.service.GroupService.isMemberOrOwner ( String []  groupDNs,
String  personDN 
) throws Exception
inline

org.gluu.oxtrust.ldap.service.IGroupServiceを実装しています。

314  {
315  boolean result = false;
316  if (ArrayHelper.isEmpty(groupDNs)) {
317  return result;
318  }
319 
320  for (String groupDN : groupDNs) {
321  if (StringHelper.isEmpty(groupDN)) {
322  continue;
323  }
324 
325  result = isMemberOrOwner(groupDN, personDN);
326  if (result) {
327  break;
328  }
329  }
330 
331  return result;
332  }
boolean isMemberOrOwner(String groupDN, String personDN)
Definition: GroupService.java:116

◆ removeGroup()

void org.gluu.oxtrust.ldap.service.GroupService.removeGroup ( GluuGroup  group)
inline

org.gluu.oxtrust.ldap.service.IGroupServiceを実装しています。

84  {
85  if (group.getMembers() != null) {
86  List<String> memberDNs = group.getMembers();
87  for (String memberDN : memberDNs) {
88  if (personService.contains(memberDN)) {
89  GluuCustomPerson person = personService.getPersonByDn(memberDN);
90  List<String> groupDNs = person.getMemberOf();
91  List<String> updatedGroupDNs = new ArrayList<String>();
92  updatedGroupDNs.addAll(groupDNs);
93  updatedGroupDNs.remove(group.getDn());
94  person.setMemberOf(updatedGroupDNs);
96  }
97  }
98  }
99 
100  ldapEntryManager.remove(group);
101  // clear references in gluuPerson entries
102  }
PersonService personService
Definition: GroupService.java:55
List< String > getMemberOf()
Definition: GluuCustomPerson.java:168
boolean contains(String dn)
Definition: PersonService.java:286
GluuCustomPerson getPersonByDn(String dn)
Definition: PersonService.java:294
PersistenceEntryManager ldapEntryManager
Definition: GroupService.java:49
void updatePerson(GluuCustomPerson person)
Definition: PersonService.java:111

◆ searchGroups()

List<GluuGroup> org.gluu.oxtrust.ldap.service.GroupService.searchGroups ( String  pattern,
int  sizeLimit 
) throws Exception
inline

org.gluu.oxtrust.ldap.service.IGroupServiceを実装しています。

214  {
215  String[] targetArray = new String[] { pattern };
216  Filter displayNameFilter = Filter.createSubstringFilter(OxTrustConstants.displayName, null, targetArray, null);
217  Filter descriptionFilter = Filter.createSubstringFilter(OxTrustConstants.description, null, targetArray, null);
218  Filter inameFilter = Filter.createSubstringFilter(OxTrustConstants.iname, null, targetArray, null);
219  Filter searchFilter = Filter.createORFilter(displayNameFilter, descriptionFilter, inameFilter);
220 
221  List<GluuGroup> result = ldapEntryManager.findEntries(getDnForGroup(null), GluuGroup.class, searchFilter, sizeLimit);
222 
223  return result;
224  }
PersistenceEntryManager ldapEntryManager
Definition: GroupService.java:49
String getDnForGroup(String inum)
Definition: GroupService.java:151

◆ updateGroup()

void org.gluu.oxtrust.ldap.service.GroupService.updateGroup ( GluuGroup  group)
inline

org.gluu.oxtrust.ldap.service.IGroupServiceを実装しています。

76  {
77  ldapEntryManager.merge(group);
78  }
PersistenceEntryManager ldapEntryManager
Definition: GroupService.java:49

メンバ詳解

◆ appConfiguration

AppConfiguration org.gluu.oxtrust.ldap.service.GroupService.appConfiguration
private

◆ ldapEntryManager

PersistenceEntryManager org.gluu.oxtrust.ldap.service.GroupService.ldapEntryManager
private

◆ log

Logger org.gluu.oxtrust.ldap.service.GroupService.log
private

◆ organizationService

OrganizationService org.gluu.oxtrust.ldap.service.GroupService.organizationService
private

◆ personService

PersonService org.gluu.oxtrust.ldap.service.GroupService.personService
private

◆ serialVersionUID

final long org.gluu.oxtrust.ldap.service.GroupService.serialVersionUID = -9167587377957719152L
staticprivate

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