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

公開メンバ関数

void addBranch (final String userInum)
 
boolean containsBranch (final String userInum)
 
void prepareBranch (final String userInum)
 
DeviceRegistration findUserDeviceRegistration (String userInum, String deviceId, String... returnAttributes)
 
List< DeviceRegistrationfindUserDeviceRegistrations (String userInum, String appId, String ... returnAttributes)
 
List< DeviceRegistrationfindDeviceRegistrationsByKeyHandle (String appId, String keyHandle, String ... returnAttributes)
 
DeviceRegistration findOneStepUserDeviceRegistration (String deviceId, String... returnAttributes)
 
void addUserDeviceRegistration (String userInum, DeviceRegistration deviceRegistration)
 
boolean attachUserDeviceRegistration (String userInum, String oneStepDeviceId)
 
void addOneStepDeviceRegistration (DeviceRegistration deviceRegistration)
 
void updateDeviceRegistration (String userInum, DeviceRegistration deviceRegistration)
 
void disableUserDeviceRegistration (DeviceRegistration deviceRegistration)
 
void removeUserDeviceRegistration (DeviceRegistration deviceRegistration)
 
List< DeviceRegistrationgetExpiredDeviceRegistrations (BatchOperation< DeviceRegistration > batchOperation, Date expirationDate, String[] returnAttributes, int sizeLimit, int chunkSize)
 
int getCountDeviceRegistrations (String appId)
 
String getDnForU2fDevice (String userInum, String oxId)
 
String getBaseDnForU2fUserDevices (String userInum)
 
String getDnForOneStepU2fDevice (String deviceRegistrationId)
 
int getKeyHandleHashCode (byte[] keyHandle)
 

非公開変数類

Logger log
 
PersistenceEntryManager ldapEntryManager
 
UserService userService
 
StaticConfiguration staticConfiguration
 

詳解

Provides operations with user U2F devices

著者
Yuriy Movchan Date: 05/14/2015

関数詳解

◆ addBranch()

void org.xdi.oxauth.service.fido.u2f.DeviceRegistrationService.addBranch ( final String  userInum)
inline
51  {
52  SimpleBranch branch = new SimpleBranch();
53  branch.setOrganizationalUnitName("fido");
54  branch.setDn(getBaseDnForU2fUserDevices(userInum));
55 
56  ldapEntryManager.persist(branch);
57  }
PersistenceEntryManager ldapEntryManager
Definition: DeviceRegistrationService.java:43
String getBaseDnForU2fUserDevices(String userInum)
Definition: DeviceRegistrationService.java:189

◆ addOneStepDeviceRegistration()

void org.xdi.oxauth.service.fido.u2f.DeviceRegistrationService.addOneStepDeviceRegistration ( DeviceRegistration  deviceRegistration)
inline
139  {
140  ldapEntryManager.persist(deviceRegistration);
141  }
PersistenceEntryManager ldapEntryManager
Definition: DeviceRegistrationService.java:43

◆ addUserDeviceRegistration()

void org.xdi.oxauth.service.fido.u2f.DeviceRegistrationService.addUserDeviceRegistration ( String  userInum,
DeviceRegistration  deviceRegistration 
)
inline
112  {
113  prepareBranch(userInum);
114 
115  ldapEntryManager.persist(deviceRegistration);
116  }
PersistenceEntryManager ldapEntryManager
Definition: DeviceRegistrationService.java:43
void prepareBranch(final String userInum)
Definition: DeviceRegistrationService.java:63

◆ attachUserDeviceRegistration()

boolean org.xdi.oxauth.service.fido.u2f.DeviceRegistrationService.attachUserDeviceRegistration ( String  userInum,
String  oneStepDeviceId 
)
inline
118  {
119  String oneStepDeviceDn = getDnForOneStepU2fDevice(oneStepDeviceId);
120 
121  // Load temporary stored device registration
122  DeviceRegistration deviceRegistration = ldapEntryManager.find(DeviceRegistration.class, oneStepDeviceDn);
123  if (deviceRegistration == null) {
124  return false;
125  }
126 
127  // Remove temporary stored device registration
128  removeUserDeviceRegistration(deviceRegistration);
129 
130  // Attach user device registration to user
131  String deviceDn = getDnForU2fDevice(userInum, deviceRegistration.getId());
132 
133  deviceRegistration.setDn(deviceDn);
134  addUserDeviceRegistration(userInum, deviceRegistration);
135 
136  return true;
137  }
void addUserDeviceRegistration(String userInum, DeviceRegistration deviceRegistration)
Definition: DeviceRegistrationService.java:112
void removeUserDeviceRegistration(DeviceRegistration deviceRegistration)
Definition: DeviceRegistrationService.java:155
String getDnForU2fDevice(String userInum, String oxId)
Definition: DeviceRegistrationService.java:181
PersistenceEntryManager ldapEntryManager
Definition: DeviceRegistrationService.java:43
String getDnForOneStepU2fDevice(String deviceRegistrationId)
Definition: DeviceRegistrationService.java:194

◆ containsBranch()

boolean org.xdi.oxauth.service.fido.u2f.DeviceRegistrationService.containsBranch ( final String  userInum)
inline
59  {
60  return ldapEntryManager.contains(SimpleBranch.class, getBaseDnForU2fUserDevices(userInum));
61  }
PersistenceEntryManager ldapEntryManager
Definition: DeviceRegistrationService.java:43
String getBaseDnForU2fUserDevices(String userInum)
Definition: DeviceRegistrationService.java:189

◆ disableUserDeviceRegistration()

void org.xdi.oxauth.service.fido.u2f.DeviceRegistrationService.disableUserDeviceRegistration ( DeviceRegistration  deviceRegistration)
inline
149  {
150  deviceRegistration.setStatus(DeviceRegistrationStatus.COMPROMISED);
151 
152  ldapEntryManager.merge(deviceRegistration);
153  }
PersistenceEntryManager ldapEntryManager
Definition: DeviceRegistrationService.java:43

◆ findDeviceRegistrationsByKeyHandle()

List<DeviceRegistration> org.xdi.oxauth.service.fido.u2f.DeviceRegistrationService.findDeviceRegistrationsByKeyHandle ( String  appId,
String  keyHandle,
String ...  returnAttributes 
)
inline
87  {
88  if (org.xdi.util.StringHelper.isEmpty(appId) || StringHelper.isEmpty(keyHandle)) {
89  return new ArrayList<DeviceRegistration>(0);
90  }
91 
92  byte[] keyHandleDecoded = Base64Util.base64urldecode(keyHandle);
93 
94  String baseDn = userService.getDnForUser(null);
95 
96  Filter deviceObjectClassFilter = Filter.createEqualityFilter("objectClass", "oxDeviceRegistration");
97  Filter deviceHashCodeFilter = Filter.createEqualityFilter("oxDeviceHashCode", String.valueOf(getKeyHandleHashCode(keyHandleDecoded)));
98  Filter deviceKeyHandleFilter = Filter.createEqualityFilter("oxDeviceKeyHandle", keyHandle);
99  Filter appIdFilter = Filter.createEqualityFilter("oxApplication", appId);
100 
101  Filter filter = Filter.createANDFilter(deviceObjectClassFilter, deviceHashCodeFilter, appIdFilter, deviceKeyHandleFilter);
102 
103  return ldapEntryManager.findEntries(baseDn, DeviceRegistration.class, filter, returnAttributes);
104  }
int getKeyHandleHashCode(byte[] keyHandle)
Definition: DeviceRegistrationService.java:208
UserService userService
Definition: DeviceRegistrationService.java:46
String getDnForUser(String inum)
Definition: UserService.java:393
PersistenceEntryManager ldapEntryManager
Definition: DeviceRegistrationService.java:43

◆ findOneStepUserDeviceRegistration()

DeviceRegistration org.xdi.oxauth.service.fido.u2f.DeviceRegistrationService.findOneStepUserDeviceRegistration ( String  deviceId,
String...  returnAttributes 
)
inline
106  {
107  String deviceDn = getDnForOneStepU2fDevice(deviceId);
108 
109  return ldapEntryManager.find(DeviceRegistration.class, deviceDn);
110  }
PersistenceEntryManager ldapEntryManager
Definition: DeviceRegistrationService.java:43
String getDnForOneStepU2fDevice(String deviceRegistrationId)
Definition: DeviceRegistrationService.java:194

◆ findUserDeviceRegistration()

DeviceRegistration org.xdi.oxauth.service.fido.u2f.DeviceRegistrationService.findUserDeviceRegistration ( String  userInum,
String  deviceId,
String...  returnAttributes 
)
inline
70  {
71  prepareBranch(userInum);
72 
73  String deviceDn = getDnForU2fDevice(userInum, deviceId);
74 
75  return ldapEntryManager.find(DeviceRegistration.class, deviceDn, returnAttributes);
76  }
String getDnForU2fDevice(String userInum, String oxId)
Definition: DeviceRegistrationService.java:181
PersistenceEntryManager ldapEntryManager
Definition: DeviceRegistrationService.java:43
void prepareBranch(final String userInum)
Definition: DeviceRegistrationService.java:63

◆ findUserDeviceRegistrations()

List<DeviceRegistration> org.xdi.oxauth.service.fido.u2f.DeviceRegistrationService.findUserDeviceRegistrations ( String  userInum,
String  appId,
String ...  returnAttributes 
)
inline
78  {
79  prepareBranch(userInum);
80 
81  String baseDnForU2fDevices = getBaseDnForU2fUserDevices(userInum);
82  Filter appIdFilter = Filter.createEqualityFilter("oxApplication", appId);
83 
84  return ldapEntryManager.findEntries(baseDnForU2fDevices, DeviceRegistration.class, appIdFilter, returnAttributes);
85  }
PersistenceEntryManager ldapEntryManager
Definition: DeviceRegistrationService.java:43
String getBaseDnForU2fUserDevices(String userInum)
Definition: DeviceRegistrationService.java:189
void prepareBranch(final String userInum)
Definition: DeviceRegistrationService.java:63

◆ getBaseDnForU2fUserDevices()

String org.xdi.oxauth.service.fido.u2f.DeviceRegistrationService.getBaseDnForU2fUserDevices ( String  userInum)
inline
189  {
190  final String userBaseDn = userService.getDnForUser(userInum); // "ou=fido,inum=1234,ou=people,o=@!1111,o=gluu"
191  return String.format("ou=fido,%s", userBaseDn);
192  }
UserService userService
Definition: DeviceRegistrationService.java:46
String getDnForUser(String inum)
Definition: UserService.java:393

◆ getCountDeviceRegistrations()

int org.xdi.oxauth.service.fido.u2f.DeviceRegistrationService.getCountDeviceRegistrations ( String  appId)
inline
168  {
169  String baseDn = userService.getDnForUser(null);
170 
171  Filter appIdFilter = Filter.createEqualityFilter("oxApplication", appId);
172  Filter activeDeviceFilter = Filter.createEqualityFilter("oxStatus", DeviceRegistrationStatus.ACTIVE.getValue());
173  Filter resultFilter = Filter.createANDFilter(appIdFilter, activeDeviceFilter);
174 
175  return ldapEntryManager.countEntries(baseDn, DeviceRegistration.class, resultFilter);
176  }
UserService userService
Definition: DeviceRegistrationService.java:46
String getDnForUser(String inum)
Definition: UserService.java:393
PersistenceEntryManager ldapEntryManager
Definition: DeviceRegistrationService.java:43

◆ getDnForOneStepU2fDevice()

String org.xdi.oxauth.service.fido.u2f.DeviceRegistrationService.getDnForOneStepU2fDevice ( String  deviceRegistrationId)
inline
194  {
195  final String u2fBaseDn = staticConfiguration.getBaseDn().getU2fBase(); // ou=registered_devices,ou=u2f,o=@!1111,o=gluu
196  if (StringHelper.isEmpty(deviceRegistrationId)) {
197  return String.format("ou=registered_devices,%s", u2fBaseDn);
198  }
199 
200  return String.format("oxid=%s,ou=registered_devices,%s", deviceRegistrationId, u2fBaseDn);
201  }
String getU2fBase()
Definition: BaseDnConfiguration.java:133
StaticConfiguration staticConfiguration
Definition: DeviceRegistrationService.java:49
BaseDnConfiguration getBaseDn()
Definition: StaticConfiguration.java:32

◆ getDnForU2fDevice()

String org.xdi.oxauth.service.fido.u2f.DeviceRegistrationService.getDnForU2fDevice ( String  userInum,
String  oxId 
)
inline

Build DN string for U2F user device

181  {
182  String baseDnForU2fDevices = getBaseDnForU2fUserDevices(userInum);
183  if (StringHelper.isEmpty(oxId)) {
184  return baseDnForU2fDevices;
185  }
186  return String.format("oxId=%s,%s", oxId, baseDnForU2fDevices);
187  }
String getBaseDnForU2fUserDevices(String userInum)
Definition: DeviceRegistrationService.java:189

◆ getExpiredDeviceRegistrations()

List<DeviceRegistration> org.xdi.oxauth.service.fido.u2f.DeviceRegistrationService.getExpiredDeviceRegistrations ( BatchOperation< DeviceRegistration batchOperation,
Date  expirationDate,
String []  returnAttributes,
int  sizeLimit,
int  chunkSize 
)
inline
159  {
160  final String u2fBaseDn = getDnForOneStepU2fDevice(null);
161  Filter expirationFilter = Filter.createLessOrEqualFilter("creationDate", ldapEntryManager.encodeTime(expirationDate));
162 
163  List<DeviceRegistration> deviceRegistrations = ldapEntryManager.findEntries(u2fBaseDn, DeviceRegistration.class, expirationFilter, SearchScope.SUB, returnAttributes, batchOperation, 0, sizeLimit, chunkSize);
164 
165  return deviceRegistrations;
166  }
PersistenceEntryManager ldapEntryManager
Definition: DeviceRegistrationService.java:43
String getDnForOneStepU2fDevice(String deviceRegistrationId)
Definition: DeviceRegistrationService.java:194

◆ getKeyHandleHashCode()

int org.xdi.oxauth.service.fido.u2f.DeviceRegistrationService.getKeyHandleHashCode ( byte []  keyHandle)
inline
208  {
209  int hash = 0;
210  for (int j = 0; j < keyHandle.length; j++) {
211  hash += keyHandle[j]*j;
212  }
213 
214  return hash;
215  }

◆ prepareBranch()

void org.xdi.oxauth.service.fido.u2f.DeviceRegistrationService.prepareBranch ( final String  userInum)
inline
63  {
64  // Create U2F user device registrations branch if needed
65  if (!containsBranch(userInum)) {
66  addBranch(userInum);
67  }
68  }
void addBranch(final String userInum)
Definition: DeviceRegistrationService.java:51
boolean containsBranch(final String userInum)
Definition: DeviceRegistrationService.java:59

◆ removeUserDeviceRegistration()

void org.xdi.oxauth.service.fido.u2f.DeviceRegistrationService.removeUserDeviceRegistration ( DeviceRegistration  deviceRegistration)
inline
155  {
156  ldapEntryManager.remove(deviceRegistration);
157  }
PersistenceEntryManager ldapEntryManager
Definition: DeviceRegistrationService.java:43

◆ updateDeviceRegistration()

void org.xdi.oxauth.service.fido.u2f.DeviceRegistrationService.updateDeviceRegistration ( String  userInum,
DeviceRegistration  deviceRegistration 
)
inline
143  {
144  prepareBranch(userInum);
145 
146  ldapEntryManager.merge(deviceRegistration);
147  }
PersistenceEntryManager ldapEntryManager
Definition: DeviceRegistrationService.java:43
void prepareBranch(final String userInum)
Definition: DeviceRegistrationService.java:63

メンバ詳解

◆ ldapEntryManager

PersistenceEntryManager org.xdi.oxauth.service.fido.u2f.DeviceRegistrationService.ldapEntryManager
private

◆ log

Logger org.xdi.oxauth.service.fido.u2f.DeviceRegistrationService.log
private

◆ staticConfiguration

StaticConfiguration org.xdi.oxauth.service.fido.u2f.DeviceRegistrationService.staticConfiguration
private

◆ userService

UserService org.xdi.oxauth.service.fido.u2f.DeviceRegistrationService.userService
private

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