gluu
公開メンバ関数 | 関数 | 変数 | 非公開メンバ関数 | 非公開変数類 | 静的非公開変数類 | 全メンバ一覧
org.gluu.credmanager.ui.vm.user.SecurityKeyViewModel クラス
org.gluu.credmanager.ui.vm.user.SecurityKeyViewModel の継承関係図
Inheritance graph
org.gluu.credmanager.ui.vm.user.SecurityKeyViewModel 連携図
Collaboration graph

公開メンバ関数

boolean isUiAwaiting ()
 
boolean isUiEnrolled ()
 
String getEditingId ()
 
boolean isUiPanelOpened ()
 
String getU2fSupportMessage ()
 
boolean isU2fMayBeSupported ()
 
SecurityKey getNewDevice ()
 
List< SecurityKeygetDevices ()
 
void setEditingId (String editingId)
 
void setNewDevice (SecurityKey newDevice)
 
void childInit () throws Exception
 
void afterCompose (@ContextParam(ContextType.VIEW) Component view)
 
void triggerU2fRegisterRequest ()
 
void notified (Event event) throws Exception
 
void add ()
 
void cancel ()
 
void prepareForUpdate (@BindingParam("device") SecurityKey dev)
 
void cancelUpdate ()
 
void update ()
 
void delete (@BindingParam("device") SecurityKey device)
 
void init ()
 
void logoutFromAuthzServer ()
 

関数

int getScreenWidth ()
 
BrowserInfo getBrowserInfo ()
 
Pair< String, String > getDeleteMessages (String nick, String extraMessage)
 
String resetPreferenceMessage (String credentialType, int nCredsOfType)
 

変数

UserService userService
 
User user
 

非公開メンバ関数

void checkU2fSupport ()
 
void resetAddSettings ()
 

非公開変数類

Logger logger = LogManager.getLogger(getClass())
 
U2fService u2fService
 
ObjectMapper mapper
 
SecurityKey newDevice
 
List< SecurityKeydevices
 
boolean uiAwaiting
 
boolean uiEnrolled
 
boolean uiPanelOpened
 
String editingId
 
String u2fSupportMessage
 
boolean u2fMayBeSupported
 

静的非公開変数類

static final int REGISTRATION_TIMEOUT = 8000
 
static final int WAIT_ENROLL_TIME = 1000
 

詳解

Created by jgomer on 2017-07-23. This is the ViewModel of page u2f-detail.zul. It controls the CRUD of security keys

関数詳解

◆ add()

void org.gluu.credmanager.ui.vm.user.SecurityKeyViewModel.add ( )
inline
166  {
167 
168  if (Utils.isNotEmpty(newDevice.getNickName())) {
169  try {
171  devices.add(newDevice);
172  UIUtils.showMessageUI(true, Labels.getLabel("usr.enroll.success"));
173  } catch (Exception e) {
174  UIUtils.showMessageUI(false, Labels.getLabel("usr.error_updating"));
175  logger.error(e.getMessage(), e);
176  }
177  uiPanelOpened = false;
179  }
180 
181  }
List< SecurityKey > devices
Definition: SecurityKeyViewModel.java:53
U2fService u2fService
Definition: SecurityKeyViewModel.java:49
boolean uiPanelOpened
Definition: SecurityKeyViewModel.java:57
SecurityKey newDevice
Definition: SecurityKeyViewModel.java:52
boolean updateDevice(FidoDevice device)
Definition: FidoService.java:37
String getNickName()
Definition: RegisteredCredential.java:19
Logger logger
Definition: SecurityKeyViewModel.java:46
void resetAddSettings()
Definition: SecurityKeyViewModel.java:297

◆ afterCompose()

void org.gluu.credmanager.ui.vm.user.SecurityKeyViewModel.afterCompose ( @ContextParam(ContextType.VIEW) Component  view)
inline
113  {
114  Selectors.wireEventListeners(view, this);
115  }

◆ cancel()

void org.gluu.credmanager.ui.vm.user.SecurityKeyViewModel.cancel ( )
inline
185  {
186 
187  boolean success;
188  try {
189  /*
190  Remove the recently enrolled key. This is so because once the user touches his key button, oxAuth creates the
191  corresponding entry in LDAP, and if the user regrets adding the current key by not supplying a nickname
192  (and thus pressing cancel), we need to be obliterate the entry
193  */
194  success = u2fService.removeDevice(newDevice);
195  } catch (Exception e) {
196  success = false;
197  logger.error(e.getMessage(), e);
198  }
199  if (!success) {
200  UIUtils.showMessageUI(false);
201  }
203 
204  }
U2fService u2fService
Definition: SecurityKeyViewModel.java:49
boolean removeDevice(FidoDevice device)
Definition: FidoService.java:49
SecurityKey newDevice
Definition: SecurityKeyViewModel.java:52
Logger logger
Definition: SecurityKeyViewModel.java:46
void resetAddSettings()
Definition: SecurityKeyViewModel.java:297

◆ cancelUpdate()

void org.gluu.credmanager.ui.vm.user.SecurityKeyViewModel.cancelUpdate ( )
inline
217  {
218  newDevice.setNickName(null);
219  editingId = null;
220  }
SecurityKey newDevice
Definition: SecurityKeyViewModel.java:52
void setNickName(String nickname)
Definition: RegisteredCredential.java:23
String editingId
Definition: SecurityKeyViewModel.java:58

◆ checkU2fSupport()

void org.gluu.credmanager.ui.vm.user.SecurityKeyViewModel.checkU2fSupport ( )
inlineprivate
274  {
275  //Assume u2f is not supported
276  u2fMayBeSupported = false;
277  try {
278  BrowserInfo binfo = getBrowserInfo();
279  String name = binfo.getName().toLowerCase();
280  int browserVer = binfo.getMainVersion();
281 
282  u2fMayBeSupported = (name.contains("chrome") && browserVer >= 41) || (name.contains("opera") && browserVer >= 41)
283  || (name.contains("safari") && browserVer > 10) || name.contains("firefox");
284 
285  if (u2fMayBeSupported) {
286  if (name.contains("firefox")) {
287  u2fSupportMessage = Labels.getLabel(browserVer >= 57 ? "usr.u2f_enabled_u2f_ff" : "usr.u2f_unsupported_ff");
288  } else if (name.contains("safari")){
289  u2fSupportMessage = Labels.getLabel("usr.u2f_unsupported_safari");
290  }
291  }
292  } catch (Exception e) {
293  logger.error(e.getMessage(), e);
294  }
295  }
String u2fSupportMessage
Definition: SecurityKeyViewModel.java:60
boolean u2fMayBeSupported
Definition: SecurityKeyViewModel.java:61
BrowserInfo getBrowserInfo()
Definition: UserViewModel.java:86
Logger logger
Definition: SecurityKeyViewModel.java:46

◆ childInit()

void org.gluu.credmanager.ui.vm.user.SecurityKeyViewModel.childInit ( ) throws Exception
inline
104  {
105  mapper = new ObjectMapper();
106  newDevice = new SecurityKey();
107  uiPanelOpened = true;
109  checkU2fSupport();
110  }
User user
Definition: UserViewModel.java:58
List< SecurityKey > devices
Definition: SecurityKeyViewModel.java:53
U2fService u2fService
Definition: SecurityKeyViewModel.java:49
ObjectMapper mapper
Definition: SecurityKeyViewModel.java:51
String getId()
Definition: User.java:43
boolean uiPanelOpened
Definition: SecurityKeyViewModel.java:57
void checkU2fSupport()
Definition: SecurityKeyViewModel.java:274
SecurityKey newDevice
Definition: SecurityKeyViewModel.java:52
List< SecurityKey > getDevices(String userId, boolean active)
Definition: U2fService.java:78

◆ delete()

void org.gluu.credmanager.ui.vm.user.SecurityKeyViewModel.delete ( @BindingParam("device") SecurityKey  device)
inline
245  {
246 
247  String resetMessages = resetPreferenceMessage(SecurityKeyExtension.ACR, devices.size());
248  boolean reset = resetMessages != null;
249  Pair<String, String> delMessages = getDeleteMessages(device.getNickName(), resetMessages);
250 
251  Messagebox.show(delMessages.getY(), delMessages.getX(), Messagebox.YES | Messagebox.NO, reset ? Messagebox.EXCLAMATION : Messagebox.QUESTION,
252  event -> {
253  if (Messagebox.ON_YES.equals(event.getName())) {
254  try {
255  if (devices.remove(device)) {
256  if (reset) {
258  }
259 
260  u2fService.removeDevice(device);
261  //trigger refresh (this method is asynchronous...)
262  BindUtils.postNotifyChange(null, null, SecurityKeyViewModel.this, "devices");
263 
264  UIUtils.showMessageUI(true);
265  }
266  } catch (Exception e) {
267  UIUtils.showMessageUI(false);
268  logger.error(e.getMessage(), e);
269  }
270  }
271  });
272  }
User user
Definition: UserViewModel.java:58
List< SecurityKey > devices
Definition: SecurityKeyViewModel.java:53
U2fService u2fService
Definition: SecurityKeyViewModel.java:49
boolean setPreferredMethod(User user, String method)
Definition: UserService.java:136
UserService userService
Definition: UserViewModel.java:48
boolean removeDevice(FidoDevice device)
Definition: FidoService.java:49
Logger logger
Definition: SecurityKeyViewModel.java:46
Pair< String, String > getDeleteMessages(String nick, String extraMessage)
Definition: UserViewModel.java:90
String resetPreferenceMessage(String credentialType, int nCredsOfType)
Definition: UserViewModel.java:105

◆ getBrowserInfo()

BrowserInfo org.gluu.credmanager.ui.vm.user.UserViewModel.getBrowserInfo ( )
inlinepackageinherited
86  {
87  return sessionContext.getBrowser();
88  }
BrowserInfo getBrowser()
Definition: SessionContext.java:82
SessionContext sessionContext
Definition: UserViewModel.java:51

◆ getDeleteMessages()

Pair<String, String> org.gluu.credmanager.ui.vm.user.UserViewModel.getDeleteMessages ( String  nick,
String  extraMessage 
)
inlinepackageinherited
90  {
91 
92  StringBuilder text=new StringBuilder();
93  if (extraMessage != null) {
94  text.append(extraMessage).append("\n\n");
95  }
96  text.append(Labels.getLabel("usr.del_confirm", new String[]{ nick==null ? Labels.getLabel("general.no_named") : nick }));
97  if (extraMessage != null) {
98  text.append("\n");
99  }
100 
101  return new Pair<>(Labels.getLabel("usr.del_title"), text.toString());
102 
103  }

◆ getDevices()

List<SecurityKey> org.gluu.credmanager.ui.vm.user.SecurityKeyViewModel.getDevices ( )
inline
91  {
92  return devices;
93  }
List< SecurityKey > devices
Definition: SecurityKeyViewModel.java:53

◆ getEditingId()

String org.gluu.credmanager.ui.vm.user.SecurityKeyViewModel.getEditingId ( )
inline
71  {
72  return editingId;
73  }
String editingId
Definition: SecurityKeyViewModel.java:58

◆ getNewDevice()

SecurityKey org.gluu.credmanager.ui.vm.user.SecurityKeyViewModel.getNewDevice ( )
inline
87  {
88  return newDevice;
89  }
SecurityKey newDevice
Definition: SecurityKeyViewModel.java:52

◆ getScreenWidth()

int org.gluu.credmanager.ui.vm.user.UserViewModel.getScreenWidth ( )
inlinepackageinherited
82  {
84  }
int getScreenWidth()
Definition: SessionContext.java:98
SessionContext sessionContext
Definition: UserViewModel.java:51

◆ getU2fSupportMessage()

String org.gluu.credmanager.ui.vm.user.SecurityKeyViewModel.getU2fSupportMessage ( )
inline
79  {
80  return u2fSupportMessage;
81  }
String u2fSupportMessage
Definition: SecurityKeyViewModel.java:60

◆ init()

void org.gluu.credmanager.ui.vm.user.UserViewModel.init ( )
inlineinherited
61  {
64  }
User getUser()
Definition: SessionContext.java:74
User user
Definition: UserViewModel.java:58
Integer getMinCredsFor2FA()
Definition: MainSettings.java:138
int minCredsFor2FA
Definition: UserViewModel.java:56
ConfigurationHandler confHandler
Definition: UserViewModel.java:42
MainSettings getSettings()
Definition: ConfigurationHandler.java:126
SessionContext sessionContext
Definition: UserViewModel.java:51

◆ isU2fMayBeSupported()

boolean org.gluu.credmanager.ui.vm.user.SecurityKeyViewModel.isU2fMayBeSupported ( )
inline
83  {
84  return u2fMayBeSupported;
85  }
boolean u2fMayBeSupported
Definition: SecurityKeyViewModel.java:61

◆ isUiAwaiting()

boolean org.gluu.credmanager.ui.vm.user.SecurityKeyViewModel.isUiAwaiting ( )
inline
63  {
64  return uiAwaiting;
65  }
boolean uiAwaiting
Definition: SecurityKeyViewModel.java:55

◆ isUiEnrolled()

boolean org.gluu.credmanager.ui.vm.user.SecurityKeyViewModel.isUiEnrolled ( )
inline
67  {
68  return uiEnrolled;
69  }
boolean uiEnrolled
Definition: SecurityKeyViewModel.java:56

◆ isUiPanelOpened()

boolean org.gluu.credmanager.ui.vm.user.SecurityKeyViewModel.isUiPanelOpened ( )
inline
75  {
76  return uiPanelOpened;
77  }
boolean uiPanelOpened
Definition: SecurityKeyViewModel.java:57

◆ logoutFromAuthzServer()

void org.gluu.credmanager.ui.vm.user.UserViewModel.logoutFromAuthzServer ( )
inlineinherited
67  {
68 
69  try {
70  logger.trace("Log off attempt");
71  purgeSession();
72  //After End-User has logged out, the Client might request to log him out of the OP too
73  //TODO: what happens after session expiration?
74  String idToken = authFlowContext.getIdToken();
75  Executions.sendRedirect(oxdService.getLogoutUrl(idToken));
76  } catch (Exception e) {
77  logger.error(e.getMessage(), e);
78  }
79 
80  }
AuthFlowContext authFlowContext
Definition: UserViewModel.java:54
String getLogoutUrl(String idTokenHint)
Definition: OxdService.java:331
Logger logger
Definition: UserViewModel.java:39
void purgeSession()
Definition: UserViewModel.java:137
OxdService oxdService
Definition: UserViewModel.java:45
String getIdToken()
Definition: AuthFlowContext.java:31

◆ notified()

void org.gluu.credmanager.ui.vm.user.SecurityKeyViewModel.notified ( Event  event) throws Exception
inline
136  {
137 
138  String jsonStr = mapper.writeValueAsString(event.getData());
139  String error = u2fService.getRegistrationResult(jsonStr);
140 
141  if (error == null) {
143  //To know exactly which entry is, we pass the current timestamp so we can pick the most suitable
144  //entry by inspecting the creationDate attribute among all existing entries
145  newDevice = u2fService.getLatestSecurityKey(user.getId(), new Date().getTime());
146 
147  if (newDevice != null) {
148  uiEnrolled = true;
149  BindUtils.postNotifyChange(null, null, this, "uiEnrolled");
150  } else {
151  UIUtils.showMessageUI(false);
152  logger.error(Labels.getLabel("app.finish_registration_error"));
153  }
154  } else {
155  UIUtils.showMessageUI(false, Labels.getLabel("general.error.detailed", new String[] { error }));
156  }
157 
158  uiAwaiting = false;
159  BindUtils.postNotifyChange(null, null, this, "uiAwaiting");
161 
162  }
String getUserName()
Definition: User.java:23
SecurityKey getLatestSecurityKey(String userId, long time)
Definition: U2fService.java:135
String getRegistrationResult(String jsonString)
Definition: U2fService.java:113
User user
Definition: UserViewModel.java:58
U2fService u2fService
Definition: SecurityKeyViewModel.java:49
boolean uiAwaiting
Definition: SecurityKeyViewModel.java:55
UserService userService
Definition: UserViewModel.java:48
ObjectMapper mapper
Definition: SecurityKeyViewModel.java:51
String getId()
Definition: User.java:43
boolean uiEnrolled
Definition: SecurityKeyViewModel.java:56
SecurityKey newDevice
Definition: SecurityKeyViewModel.java:52
Logger logger
Definition: SecurityKeyViewModel.java:46
void finishRegistration(String userName, String response)
Definition: U2fService.java:107
boolean cleanRandEnrollmentCode(String userId)
Definition: UserService.java:291

◆ prepareForUpdate()

void org.gluu.credmanager.ui.vm.user.SecurityKeyViewModel.prepareForUpdate ( @BindingParam("device") SecurityKey  dev)
inline
208  {
209  //This will make the modal window to become visible
210  editingId = dev.getId();
211  newDevice = new SecurityKey();
212  newDevice.setNickName(dev.getNickName());
213  }
SecurityKey newDevice
Definition: SecurityKeyViewModel.java:52
void setNickName(String nickname)
Definition: RegisteredCredential.java:23
String editingId
Definition: SecurityKeyViewModel.java:58

◆ resetAddSettings()

void org.gluu.credmanager.ui.vm.user.SecurityKeyViewModel.resetAddSettings ( )
inlineprivate
297  {
298  uiEnrolled = false;
299  newDevice = new SecurityKey();
300  }
boolean uiEnrolled
Definition: SecurityKeyViewModel.java:56
SecurityKey newDevice
Definition: SecurityKeyViewModel.java:52

◆ resetPreferenceMessage()

String org.gluu.credmanager.ui.vm.user.UserViewModel.resetPreferenceMessage ( String  credentialType,
int  nCredsOfType 
)
inlinepackageinherited
105  {
106 
107  //Assume removal has no problem
108  String message = null;
109  Set<String> enabledMethods = confHandler.getEnabledAcrs();
110  List<Pair<AuthnMethod, Integer>> userMethodsCount = userService.getUserMethodsCount(user.getId(), enabledMethods);
111  int totalCreds = userMethodsCount.stream().mapToInt(Pair::getY).sum();
112 
113  if (totalCreds == minCredsFor2FA) {
114  message = CredRemovalConflict.CREDS2FA_NUMBER_UNDERFLOW.getMessage(minCredsFor2FA);
115  } else if (nCredsOfType == 1 && credentialType.equals(user.getPreferredMethod())){
116  message = CredRemovalConflict.PREFERRED_CREDENTIAL_REMOVED.getMessage();
117  } else {
118  List<AuthnMethod> methods = userService.get2FARequisiteMethods();
119  boolean typeOfCredIs2FARequisite = methods.stream().map(AuthnMethod::getAcr).anyMatch(acr -> acr.equals(credentialType));
120 
121  if (typeOfCredIs2FARequisite) {
122  int nCredsBelongingTo2FARequisite = userMethodsCount.stream()
123  .filter(pair -> pair.getX().mayBe2faActivationRequisite()).mapToInt(Pair::getY).sum();
124  if (nCredsBelongingTo2FARequisite == 1) {
125  //Compute the names of those authentication methods which are requisite for 2FA activation
126  String commaSepNames = methods.stream().map(aMethod -> Labels.getLabel(aMethod.getUINameKey()))
127  .collect(Collectors.toList()).toString();
128  commaSepNames = commaSepNames.substring(1, commaSepNames.length() - 1);
129  message = CredRemovalConflict.REQUISITE_NOT_FULFILED.getMessage(commaSepNames);
130  }
131  }
132  }
133  return message;
134 
135  }
List< AuthnMethod > get2FARequisiteMethods()
Definition: UserService.java:126
String getPreferredMethod()
Definition: User.java:39
User user
Definition: UserViewModel.java:58
List< Pair< AuthnMethod, Integer > > getUserMethodsCount(String userId, Set< String > retainMethods)
Definition: UserService.java:130
int minCredsFor2FA
Definition: UserViewModel.java:56
UserService userService
Definition: UserViewModel.java:48
Set< String > getEnabledAcrs()
Definition: ConfigurationHandler.java:249
String getId()
Definition: User.java:43
ConfigurationHandler confHandler
Definition: UserViewModel.java:42

◆ setEditingId()

void org.gluu.credmanager.ui.vm.user.SecurityKeyViewModel.setEditingId ( String  editingId)
inline
95  {
96  this.editingId = editingId;
97  }
String editingId
Definition: SecurityKeyViewModel.java:58

◆ setNewDevice()

void org.gluu.credmanager.ui.vm.user.SecurityKeyViewModel.setNewDevice ( SecurityKey  newDevice)
inline
99  {
100  this.newDevice = newDevice;
101  }
SecurityKey newDevice
Definition: SecurityKeyViewModel.java:52

◆ triggerU2fRegisterRequest()

void org.gluu.credmanager.ui.vm.user.SecurityKeyViewModel.triggerU2fRegisterRequest ( )
inline
118  {
119  try {
120  uiAwaiting = true;
121  BindUtils.postNotifyChange(null, null, this, "uiAwaiting");
122 
124 
125  //Notify browser to exec proper function
126  Clients.showNotification(Labels.getLabel("usr.u2f_touch"), Clients.NOTIFICATION_TYPE_INFO, null, "middle_center", WAIT_ENROLL_TIME);
127  Clients.response(new AuInvoke("triggerU2fRegistration", new JavaScriptValue(jsonRequest), REGISTRATION_TIMEOUT));
128  } catch (Exception e) {
129  UIUtils.showMessageUI(false);
130  logger.error(e.getMessage(), e);
131  }
132 
133  }
String getUserName()
Definition: User.java:23
static final int REGISTRATION_TIMEOUT
Definition: SecurityKeyViewModel.java:43
String generateJsonRegisterMessage(String userName, String enrollmentCode)
Definition: U2fService.java:89
User user
Definition: UserViewModel.java:58
U2fService u2fService
Definition: SecurityKeyViewModel.java:49
boolean uiAwaiting
Definition: SecurityKeyViewModel.java:55
static final int WAIT_ENROLL_TIME
Definition: SecurityKeyViewModel.java:44
String generateRandEnrollmentCode(String userId)
Definition: UserService.java:281
UserService userService
Definition: UserViewModel.java:48
String getId()
Definition: User.java:43
Logger logger
Definition: SecurityKeyViewModel.java:46

◆ update()

void org.gluu.credmanager.ui.vm.user.SecurityKeyViewModel.update ( )
inline
224  {
225 
226  String nick = newDevice.getNickName();
227  if (Utils.isNotEmpty(nick)) {
228  int i = Utils.firstTrue(devices, dev -> dev.getId().equals(editingId));
229  SecurityKey dev = devices.get(i);
230  dev.setNickName(nick);
231  cancelUpdate();
232 
233  try {
235  UIUtils.showMessageUI(true);
236  } catch (Exception e) {
237  UIUtils.showMessageUI(false);
238  logger.error(e.getMessage(), e);
239  }
240  }
241 
242  }
void cancelUpdate()
Definition: SecurityKeyViewModel.java:217
List< SecurityKey > devices
Definition: SecurityKeyViewModel.java:53
U2fService u2fService
Definition: SecurityKeyViewModel.java:49
SecurityKey newDevice
Definition: SecurityKeyViewModel.java:52
boolean updateDevice(FidoDevice device)
Definition: FidoService.java:37
String getNickName()
Definition: RegisteredCredential.java:19
Logger logger
Definition: SecurityKeyViewModel.java:46
String editingId
Definition: SecurityKeyViewModel.java:58

メンバ詳解

◆ devices

List<SecurityKey> org.gluu.credmanager.ui.vm.user.SecurityKeyViewModel.devices
private

◆ editingId

String org.gluu.credmanager.ui.vm.user.SecurityKeyViewModel.editingId
private

◆ logger

Logger org.gluu.credmanager.ui.vm.user.SecurityKeyViewModel.logger = LogManager.getLogger(getClass())
private

◆ mapper

ObjectMapper org.gluu.credmanager.ui.vm.user.SecurityKeyViewModel.mapper
private

◆ newDevice

SecurityKey org.gluu.credmanager.ui.vm.user.SecurityKeyViewModel.newDevice
private

◆ REGISTRATION_TIMEOUT

final int org.gluu.credmanager.ui.vm.user.SecurityKeyViewModel.REGISTRATION_TIMEOUT = 8000
staticprivate

◆ u2fMayBeSupported

boolean org.gluu.credmanager.ui.vm.user.SecurityKeyViewModel.u2fMayBeSupported
private

◆ u2fService

U2fService org.gluu.credmanager.ui.vm.user.SecurityKeyViewModel.u2fService
private

◆ u2fSupportMessage

String org.gluu.credmanager.ui.vm.user.SecurityKeyViewModel.u2fSupportMessage
private

◆ uiAwaiting

boolean org.gluu.credmanager.ui.vm.user.SecurityKeyViewModel.uiAwaiting
private

◆ uiEnrolled

boolean org.gluu.credmanager.ui.vm.user.SecurityKeyViewModel.uiEnrolled
private

◆ uiPanelOpened

boolean org.gluu.credmanager.ui.vm.user.SecurityKeyViewModel.uiPanelOpened
private

◆ user

User org.gluu.credmanager.ui.vm.user.UserViewModel.user
packageinherited

◆ userService

UserService org.gluu.credmanager.ui.vm.user.UserViewModel.userService
packageinherited

◆ WAIT_ENROLL_TIME

final int org.gluu.credmanager.ui.vm.user.SecurityKeyViewModel.WAIT_ENROLL_TIME = 1000
staticprivate

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