gluu
公開メンバ関数 | 非公開変数類 | 全メンバ一覧
org.xdi.oxauth.service.PairwiseIdentifierService クラス
org.xdi.oxauth.service.PairwiseIdentifierService 連携図
Collaboration graph

公開メンバ関数

void addBranch (final String userInum)
 
boolean containsBranch (final String userInum)
 
void prepareBranch (final String userInum)
 
PairwiseIdentifier findPairWiseIdentifier (String userInum, String sectorIdentifierUri, String clientId) throws Exception
 
void addPairwiseIdentifier (String userInum, PairwiseIdentifier pairwiseIdentifier)
 
String getDnForPairwiseIdentifier (String oxId, String userInum)
 
String getBaseDnForPairwiseIdentifiers (String userInum)
 

非公開変数類

Logger log
 
PersistenceEntryManager ldapEntryManager
 
UserService userService
 
AppConfiguration appConfiguration
 

詳解

著者
Javier Rojas Blum
バージョン
June 30, 2018

関数詳解

◆ addBranch()

void org.xdi.oxauth.service.PairwiseIdentifierService.addBranch ( final String  userInum)
inline
40  {
41  SimpleBranch branch = new SimpleBranch();
42  branch.setOrganizationalUnitName("pairwiseIdentifiers");
43  branch.setDn(getBaseDnForPairwiseIdentifiers(userInum));
44 
45  ldapEntryManager.persist(branch);
46  }
String getBaseDnForPairwiseIdentifiers(String userInum)
Definition: PairwiseIdentifierService.java:115
PersistenceEntryManager ldapEntryManager
Definition: PairwiseIdentifierService.java:32

◆ addPairwiseIdentifier()

void org.xdi.oxauth.service.PairwiseIdentifierService.addPairwiseIdentifier ( String  userInum,
PairwiseIdentifier  pairwiseIdentifier 
)
inline
100  {
101  prepareBranch(userInum);
102  userService.addUserAttributeByUserInum(userInum, "oxPPID", pairwiseIdentifier.getId());
103 
104  ldapEntryManager.persist(pairwiseIdentifier);
105  }
User addUserAttributeByUserInum(String userInum, String attributeName, String attributeValue)
Definition: UserService.java:222
PersistenceEntryManager ldapEntryManager
Definition: PairwiseIdentifierService.java:32
void prepareBranch(final String userInum)
Definition: PairwiseIdentifierService.java:52
UserService userService
Definition: PairwiseIdentifierService.java:35

◆ containsBranch()

boolean org.xdi.oxauth.service.PairwiseIdentifierService.containsBranch ( final String  userInum)
inline
48  {
49  return ldapEntryManager.contains(SimpleBranch.class, getBaseDnForPairwiseIdentifiers(userInum));
50  }
String getBaseDnForPairwiseIdentifiers(String userInum)
Definition: PairwiseIdentifierService.java:115
PersistenceEntryManager ldapEntryManager
Definition: PairwiseIdentifierService.java:32

◆ findPairWiseIdentifier()

PairwiseIdentifier org.xdi.oxauth.service.PairwiseIdentifierService.findPairWiseIdentifier ( String  userInum,
String  sectorIdentifierUri,
String  clientId 
) throws Exception
inline
59  {
60  PairwiseIdType pairwiseIdType = PairwiseIdType.fromString(appConfiguration.getPairwiseIdType());
61  String sectorIdentifier = URI.create(sectorIdentifierUri).getHost();
62 
63  if (PairwiseIdType.PERSISTENT == pairwiseIdType) {
64  prepareBranch(userInum);
65 
66  String baseDnForPairwiseIdentifiers = getBaseDnForPairwiseIdentifiers(userInum);
67  Filter sectorIdentifierFilter = Filter.createEqualityFilter("oxSectorIdentifier", sectorIdentifier);
68  Filter clientIdFilter = Filter.createEqualityFilter("oxAuthClientId", clientId);
69 
70  Filter filter = Filter.createANDFilter(sectorIdentifierFilter, clientIdFilter);
71 
72  List<PairwiseIdentifier> entries = ldapEntryManager.findEntries(baseDnForPairwiseIdentifiers, PairwiseIdentifier.class, filter);
73  if (entries != null && !entries.isEmpty()) {
74  // if more then one entry then it's problem, non-deterministic behavior, id must be unique
75  if (entries.size() > 1) {
76  log.error("Found more then one pairwise identifier by sector identifier: {}" + sectorIdentifier);
77  for (PairwiseIdentifier pairwiseIdentifier : entries) {
78  log.error("PairwiseIdentifier: {}", pairwiseIdentifier);
79  }
80  }
81  return entries.get(0);
82  }
83  } else { // PairwiseIdType.ALGORITHMIC
86  String localAccountId = userInum + clientId;
87 
88  String calculatedSub = SubjectIdentifierGenerator.generatePairwiseSubjectIdentifier(
89  sectorIdentifierUri, localAccountId, key, salt, appConfiguration);
90 
91  PairwiseIdentifier pairwiseIdentifier = new PairwiseIdentifier(sectorIdentifierUri, clientId);
92  pairwiseIdentifier.setId(calculatedSub);
93 
94  return pairwiseIdentifier;
95  }
96 
97  return null;
98  }
String getBaseDnForPairwiseIdentifiers(String userInum)
Definition: PairwiseIdentifierService.java:115
String getPairwiseIdType()
Definition: AppConfiguration.java:1113
AppConfiguration appConfiguration
Definition: PairwiseIdentifierService.java:38
Logger log
Definition: PairwiseIdentifierService.java:29
PersistenceEntryManager ldapEntryManager
Definition: PairwiseIdentifierService.java:32
String getPairwiseCalculationKey()
Definition: AppConfiguration.java:1121
String getPairwiseCalculationSalt()
Definition: AppConfiguration.java:1129
void prepareBranch(final String userInum)
Definition: PairwiseIdentifierService.java:52

◆ getBaseDnForPairwiseIdentifiers()

String org.xdi.oxauth.service.PairwiseIdentifierService.getBaseDnForPairwiseIdentifiers ( String  userInum)
inline
115  {
116  final String userBaseDn = userService.getDnForUser(userInum); // "ou=pairwiseIdentifiers,inum=1234,ou=people,o=@!1111,o=gluu"
117  return String.format("ou=pairwiseIdentifiers,%s", userBaseDn);
118  }
String getDnForUser(String inum)
Definition: UserService.java:393
UserService userService
Definition: PairwiseIdentifierService.java:35

◆ getDnForPairwiseIdentifier()

String org.xdi.oxauth.service.PairwiseIdentifierService.getDnForPairwiseIdentifier ( String  oxId,
String  userInum 
)
inline
107  {
108  String baseDn = getBaseDnForPairwiseIdentifiers(userInum);
109  if (StringHelper.isEmpty(oxId)) {
110  return baseDn;
111  }
112  return String.format("oxId=%s,%s", oxId, baseDn);
113  }
String getBaseDnForPairwiseIdentifiers(String userInum)
Definition: PairwiseIdentifierService.java:115

◆ prepareBranch()

void org.xdi.oxauth.service.PairwiseIdentifierService.prepareBranch ( final String  userInum)
inline
52  {
53  // Create pairwise identifier branch if needed
54  if (!containsBranch(userInum)) {
55  addBranch(userInum);
56  }
57  }
void addBranch(final String userInum)
Definition: PairwiseIdentifierService.java:40
boolean containsBranch(final String userInum)
Definition: PairwiseIdentifierService.java:48

メンバ詳解

◆ appConfiguration

AppConfiguration org.xdi.oxauth.service.PairwiseIdentifierService.appConfiguration
private

◆ ldapEntryManager

PersistenceEntryManager org.xdi.oxauth.service.PairwiseIdentifierService.ldapEntryManager
private

◆ log

Logger org.xdi.oxauth.service.PairwiseIdentifierService.log
private

◆ userService

UserService org.xdi.oxauth.service.PairwiseIdentifierService.userService
private

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