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

公開メンバ関数

boolean isUiCorrectCode ()
 
boolean isUiPanelOpened ()
 
boolean isUiQRShown ()
 
boolean isUiTokenPressing ()
 
int getEditingId ()
 
int getDigitLength ()
 
String getTokenType ()
 
OTPType getHardTokenType ()
 
String getCode ()
 
OTPDevice getNewDevice ()
 
List< OTPDevicegetDevices ()
 
String getSecretKeyString ()
 
void setSecretKeyString (String secretKeyString)
 
void setNewDevice (OTPDevice newDevice)
 
void setCode (String code)
 
void setUiPanelOpened (boolean uiPanelOpened)
 
void childInit () throws Exception
 
void chooseType (@BindingParam("type") String type, @BindingParam("component") HtmlBasedComponent comp)
 
void showQR ()
 
void afterCompose (@ContextParam(ContextType.VIEW) Component view)
 
void timedOut (Event event) throws Exception
 
void cancel ()
 
void changeHardType (@BindingParam("time") boolean timeBased)
 
void changeTokenPressing (@BindingParam("component") HtmlBasedComponent comp)
 
void validateCode (@BindingParam("ref") Component ref)
 
void add ()
 
void prepareForUpdate (@BindingParam("device") OTPDevice dev)
 
void cancelUpdate ()
 
void update ()
 
void delete (@BindingParam("device") OTPDevice 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
 

非公開メンバ関数

OTPType getApplicableAlgorithmType ()
 
boolean enroll ()
 

非公開変数類

Logger logger = LoggerFactory.getLogger(getClass())
 
OTPService otpService
 
String code
 
List< OTPDevicedevices
 
OTPDevice newDevice
 
int editingId
 
String secretKeyString
 
byte [] secretKey
 
OTPConfig otpConfig
 
String tokenType
 
OTPType hardTokenType
 
boolean uiPanelOpened
 
boolean uiQRShown
 
boolean uiCorrectCode
 
boolean uiTokenPressing
 

静的非公開変数類

static final int QR_SCAN_TIMEOUT = 60
 

詳解

This is the ViewModel of page otp-detail.zul. It controls the CRUD of HOTP/TOTP devices

著者
jgomer

関数詳解

◆ add()

void org.gluu.credmanager.ui.vm.user.OTPViewModel.add ( )
inline
277  {
278 
279  //Adds the new device if user typed a nickname in the text box
280  if (Utils.isNotEmpty(newDevice.getNickName())) {
281  if (enroll()) {
282  UIUtils.showMessageUI(true, Labels.getLabel("usr.enroll.success"));
283  uiPanelOpened = false;
284  cancel();
285  } else {
286  UIUtils.showMessageUI(false, Labels.getLabel("usr.enroll.error"));
287  }
288  }
289  }
void cancel()
Definition: OTPViewModel.java:206
boolean enroll()
Definition: OTPViewModel.java:331
OTPDevice newDevice
Definition: OTPViewModel.java:55
boolean uiPanelOpened
Definition: OTPViewModel.java:64
String getNickName()
Definition: RegisteredCredential.java:19

◆ afterCompose()

void org.gluu.credmanager.ui.vm.user.OTPViewModel.afterCompose ( @ContextParam(ContextType.VIEW) Component  view)
inline
191  {
192  Selectors.wireEventListeners(view, this);
193  }

◆ cancel()

void org.gluu.credmanager.ui.vm.user.OTPViewModel.cancel ( )
inline
206  {
207  if (uiQRShown) {
208  Clients.response(new AuInvoke("clean"));
209  uiQRShown = false;
210  }
211  uiCorrectCode = false;
212  uiTokenPressing = false;
213  code = null;
214  newDevice = new OTPDevice();
215  tokenType = null;
216  }
boolean uiQRShown
Definition: OTPViewModel.java:65
boolean uiCorrectCode
Definition: OTPViewModel.java:66
String code
Definition: OTPViewModel.java:53
boolean uiTokenPressing
Definition: OTPViewModel.java:67
OTPDevice newDevice
Definition: OTPViewModel.java:55
String tokenType
Definition: OTPViewModel.java:61

◆ cancelUpdate()

void org.gluu.credmanager.ui.vm.user.OTPViewModel.cancelUpdate ( )
inline
302  {
303  newDevice.setNickName(null);
304  editingId = 0;
305  }
int editingId
Definition: OTPViewModel.java:56
OTPDevice newDevice
Definition: OTPViewModel.java:55
void setNickName(String nickname)
Definition: RegisteredCredential.java:23

◆ changeHardType()

void org.gluu.credmanager.ui.vm.user.OTPViewModel.changeHardType ( @BindingParam("time") boolean  timeBased)
inline
220  {
221  hardTokenType = timeBased ? OTPType.TOTP : OTPType.HOTP;
222  }
OTPType hardTokenType
Definition: OTPViewModel.java:62

◆ changeTokenPressing()

void org.gluu.credmanager.ui.vm.user.OTPViewModel.changeTokenPressing ( @BindingParam("component") HtmlBasedComponent  comp)
inline
226  {
227 
229 
230  //Generate the binary key based on user input
231  logger.trace("Computing key based on key typed for hard token");
232  String skey = secretKeyString.replaceAll("\\s", "");
233  secretKey = new byte[skey.length()/2];
234  for (int i = 0; i < secretKey.length; i++) {
235  secretKey[i] = (byte) (Integer.valueOf(skey.substring(i * 2, (i + 1) * 2), 16).intValue());
236  }
237 
238  if (comp != null) {
239  comp.focus();
240  }
241 
242  }
String secretKeyString
Definition: OTPViewModel.java:57
Logger logger
Definition: OTPViewModel.java:48
boolean uiTokenPressing
Definition: OTPViewModel.java:67
byte [] secretKey
Definition: OTPViewModel.java:58

◆ childInit()

void org.gluu.credmanager.ui.vm.user.OTPViewModel.childInit ( ) throws Exception
inline
154  {
155  newDevice = new OTPDevice();
156  uiPanelOpened = true;
159  }
User user
Definition: UserViewModel.java:58
List< OTPDevice > getDevices(String userId)
Definition: OTPService.java:86
String getId()
Definition: User.java:43
OTPDevice newDevice
Definition: OTPViewModel.java:55
OTPConfig otpConfig
Definition: OTPViewModel.java:59
OTPConfig getConf()
Definition: OTPService.java:56
boolean uiPanelOpened
Definition: OTPViewModel.java:64
List< OTPDevice > devices
Definition: OTPViewModel.java:54
OTPService otpService
Definition: OTPViewModel.java:51

◆ chooseType()

void org.gluu.credmanager.ui.vm.user.OTPViewModel.chooseType ( @BindingParam("type") String  type,
@BindingParam("component") HtmlBasedComponent  comp 
)
inline
163  {
164  tokenType = type;
165  if (comp != null) {
166  comp.focus();
167  }
168  }
String tokenType
Definition: OTPViewModel.java:61

◆ delete()

void org.gluu.credmanager.ui.vm.user.OTPViewModel.delete ( @BindingParam("device") OTPDevice  device)
inline
349  {
350 
351  String resetMessages = resetPreferenceMessage(OTPExtension.ACR, devices.size());
352  boolean reset = resetMessages != null;
353  Pair<String, String> delMessages = getDeleteMessages(device.getNickName(), resetMessages);
354 
355  Messagebox.show(delMessages.getY(), delMessages.getX(), Messagebox.YES | Messagebox.NO, reset ? Messagebox.EXCLAMATION : Messagebox.QUESTION,
356  event -> {
357  if (Messagebox.ON_YES.equals(event.getName())) {
358  try {
359  if (devices.remove(device)) {
360  if (reset) {
362  }
363 
365  //trigger refresh (this method is asynchronous...)
366  BindUtils.postNotifyChange(null, null, OTPViewModel.this, "devices");
367 
368  UIUtils.showMessageUI(true);
369  }
370  } catch (Exception e) {
371  UIUtils.showMessageUI(false);
372  logger.error(e.getMessage(), e);
373  }
374  }
375  });
376  }
boolean updateDevicesAdd(String userId, List< OTPDevice > devices, OTPDevice newDevice)
Definition: OTPService.java:105
User user
Definition: UserViewModel.java:58
boolean setPreferredMethod(User user, String method)
Definition: UserService.java:136
Logger logger
Definition: OTPViewModel.java:48
UserService userService
Definition: UserViewModel.java:48
String getId()
Definition: User.java:43
Pair< String, String > getDeleteMessages(String nick, String extraMessage)
Definition: UserViewModel.java:90
List< OTPDevice > devices
Definition: OTPViewModel.java:54
OTPService otpService
Definition: OTPViewModel.java:51
String resetPreferenceMessage(String credentialType, int nCredsOfType)
Definition: UserViewModel.java:105

◆ enroll()

boolean org.gluu.credmanager.ui.vm.user.OTPViewModel.enroll ( )
inlineprivate
331  {
332 
333  boolean success = false;
334  try {
335  logger.trace("Updating/adding device {} for user {}", newDevice.getNickName(), user.getId());
336  newDevice.setAddedOn(new Date().getTime());
337  newDevice.setTimeBased(OTPType.TOTP.equals(hardTokenType));
338  newDevice.setSoft(tokenType.equals("SOFT"));
340  success = true;
341  } catch (Exception e) {
342  logger.error(e.getMessage(), e);
343  }
344  return success;
345 
346  }
boolean updateDevicesAdd(String userId, List< OTPDevice > devices, OTPDevice newDevice)
Definition: OTPService.java:105
User user
Definition: UserViewModel.java:58
Logger logger
Definition: OTPViewModel.java:48
OTPType hardTokenType
Definition: OTPViewModel.java:62
void setAddedOn(long addedOn)
Definition: OTPDevice.java:66
String getId()
Definition: User.java:43
OTPDevice newDevice
Definition: OTPViewModel.java:55
void setTimeBased(boolean timeBased)
Definition: OTPDevice.java:79
String tokenType
Definition: OTPViewModel.java:61
String getNickName()
Definition: RegisteredCredential.java:19
void setSoft(Boolean soft)
Definition: OTPDevice.java:83
List< OTPDevice > devices
Definition: OTPViewModel.java:54
OTPService otpService
Definition: OTPViewModel.java:51

◆ getApplicableAlgorithmType()

OTPType org.gluu.credmanager.ui.vm.user.OTPViewModel.getApplicableAlgorithmType ( )
inlineprivate
147  {
148  //Assume TOTP if no selections have been made
149  return tokenType != null && tokenType.equals("HARD") && hardTokenType != null
150  && hardTokenType.equals(OTPType.HOTP) ? OTPType.HOTP : OTPType.TOTP;
151  }
OTPType hardTokenType
Definition: OTPViewModel.java:62
String tokenType
Definition: OTPViewModel.java:61

◆ 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

◆ getCode()

String org.gluu.credmanager.ui.vm.user.OTPViewModel.getCode ( )
inline
115  {
116  return code;
117  }
String code
Definition: OTPViewModel.java:53

◆ 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<OTPDevice> org.gluu.credmanager.ui.vm.user.OTPViewModel.getDevices ( )
inline
123  {
124  return devices;
125  }
List< OTPDevice > devices
Definition: OTPViewModel.java:54

◆ getDigitLength()

int org.gluu.credmanager.ui.vm.user.OTPViewModel.getDigitLength ( )
inline
90  {
91 
92  int len;
93  switch (getApplicableAlgorithmType()) {
94  case TOTP:
95  len = otpConfig.getTotp().getDigits();
96  break;
97  case HOTP:
98  len = otpConfig.getHotp().getDigits();
99  break;
100  default:
101  len = 0;
102  }
103  return len;
104 
105  }
TOTPConfig getTotp()
Definition: OTPConfig.java:41
OTPType getApplicableAlgorithmType()
Definition: OTPViewModel.java:147
HOTPConfig getHotp()
Definition: OTPConfig.java:37
OTPConfig otpConfig
Definition: OTPViewModel.java:59

◆ getEditingId()

int org.gluu.credmanager.ui.vm.user.OTPViewModel.getEditingId ( )
inline
85  {
86  return editingId;
87  }
int editingId
Definition: OTPViewModel.java:56

◆ getHardTokenType()

OTPType org.gluu.credmanager.ui.vm.user.OTPViewModel.getHardTokenType ( )
inline
111  {
112  return hardTokenType;
113  }
OTPType hardTokenType
Definition: OTPViewModel.java:62

◆ getNewDevice()

OTPDevice org.gluu.credmanager.ui.vm.user.OTPViewModel.getNewDevice ( )
inline
119  {
120  return newDevice;
121  }
OTPDevice newDevice
Definition: OTPViewModel.java:55

◆ 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

◆ getSecretKeyString()

String org.gluu.credmanager.ui.vm.user.OTPViewModel.getSecretKeyString ( )
inline
127  {
128  return secretKeyString;
129  }
String secretKeyString
Definition: OTPViewModel.java:57

◆ getTokenType()

String org.gluu.credmanager.ui.vm.user.OTPViewModel.getTokenType ( )
inline
107  {
108  return tokenType;
109  }
String tokenType
Definition: OTPViewModel.java:61

◆ 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

◆ isUiCorrectCode()

boolean org.gluu.credmanager.ui.vm.user.OTPViewModel.isUiCorrectCode ( )
inline
69  {
70  return uiCorrectCode;
71  }
boolean uiCorrectCode
Definition: OTPViewModel.java:66

◆ isUiPanelOpened()

boolean org.gluu.credmanager.ui.vm.user.OTPViewModel.isUiPanelOpened ( )
inline
73  {
74  return uiPanelOpened;
75  }
boolean uiPanelOpened
Definition: OTPViewModel.java:64

◆ isUiQRShown()

boolean org.gluu.credmanager.ui.vm.user.OTPViewModel.isUiQRShown ( )
inline
77  {
78  return uiQRShown;
79  }
boolean uiQRShown
Definition: OTPViewModel.java:65

◆ isUiTokenPressing()

boolean org.gluu.credmanager.ui.vm.user.OTPViewModel.isUiTokenPressing ( )
inline
81  {
82  return uiTokenPressing;
83  }
boolean uiTokenPressing
Definition: OTPViewModel.java:67

◆ 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

◆ prepareForUpdate()

void org.gluu.credmanager.ui.vm.user.OTPViewModel.prepareForUpdate ( @BindingParam("device") OTPDevice  dev)
inline
293  {
294  //This will make the modal window to become visible
295  editingId = dev.getId();
296  newDevice = new OTPDevice();
297  newDevice.setNickName(dev.getNickName());
298  }
int editingId
Definition: OTPViewModel.java:56
OTPDevice newDevice
Definition: OTPViewModel.java:55
void setNickName(String nickname)
Definition: RegisteredCredential.java:23

◆ 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

◆ setCode()

void org.gluu.credmanager.ui.vm.user.OTPViewModel.setCode ( String  code)
inline
139  {
140  this.code = code;
141  }
String code
Definition: OTPViewModel.java:53

◆ setNewDevice()

void org.gluu.credmanager.ui.vm.user.OTPViewModel.setNewDevice ( OTPDevice  newDevice)
inline
135  {
136  this.newDevice = newDevice;
137  }
OTPDevice newDevice
Definition: OTPViewModel.java:55

◆ setSecretKeyString()

void org.gluu.credmanager.ui.vm.user.OTPViewModel.setSecretKeyString ( String  secretKeyString)
inline
131  {
133  }
String secretKeyString
Definition: OTPViewModel.java:57

◆ setUiPanelOpened()

void org.gluu.credmanager.ui.vm.user.OTPViewModel.setUiPanelOpened ( boolean  uiPanelOpened)
inline
143  {
145  }
boolean uiPanelOpened
Definition: OTPViewModel.java:64

◆ showQR()

void org.gluu.credmanager.ui.vm.user.OTPViewModel.showQR ( )
inline
172  {
173 
174  uiQRShown = true;
175  uiCorrectCode = false;
176  code = null;
177 
178  //For QR scan TOTP is used
179  IOTPAlgorithm totpService = otpService.getAlgorithmService(OTPType.TOTP);
180  secretKey = totpService.generateSecretKey();
181  String request = totpService.generateSecretKeyUri(secretKey, user.getGivenName());
182 
183  JavaScriptValue jvalue = new JavaScriptValue(otpConfig.getFormattedQROptions(getScreenWidth()));
184 
185  //Calls the startQR javascript function supplying suitable params
186  Clients.response(new AuInvoke("startQR", request, otpConfig.getLabel(), jvalue, QR_SCAN_TIMEOUT));
187 
188  }
boolean uiQRShown
Definition: OTPViewModel.java:65
User user
Definition: UserViewModel.java:58
String getGivenName()
Definition: User.java:27
static final int QR_SCAN_TIMEOUT
Definition: OTPViewModel.java:46
boolean uiCorrectCode
Definition: OTPViewModel.java:66
String code
Definition: OTPViewModel.java:53
String getLabel()
Definition: QRConfig.java:78
byte [] secretKey
Definition: OTPViewModel.java:58
int getScreenWidth()
Definition: UserViewModel.java:82
OTPConfig otpConfig
Definition: OTPViewModel.java:59
IOTPAlgorithm getAlgorithmService(OTPKey.OTPType type)
Definition: OTPService.java:161
String getFormattedQROptions(int maxWidth)
Definition: QRConfig.java:55
OTPService otpService
Definition: OTPViewModel.java:51

◆ timedOut()

void org.gluu.credmanager.ui.vm.user.OTPViewModel.timedOut ( Event  event) throws Exception
inline
196  {
197  if (uiQRShown) {
198  //Restore UI because user did not scan code
199  uiQRShown = false;
200  BindUtils.postNotifyChange(null, null, this, "uiQRShown");
201  }
202  }
boolean uiQRShown
Definition: OTPViewModel.java:65

◆ update()

void org.gluu.credmanager.ui.vm.user.OTPViewModel.update ( )
inline
309  {
310 
311  String nick = newDevice.getNickName();
312  if (Utils.isNotEmpty(nick)) {
313  //Find the index of the current device in the device list
314  int i = Utils.firstTrue(devices, dev -> dev.getId() == editingId);
315  OTPDevice dev = devices.get(i);
316  //Updates its nickname
317  dev.setNickName(nick);
318  cancelUpdate(); //This doesn't undo anything we already did (just controls UI aspects)
319 
320  try {
322  UIUtils.showMessageUI(true);
323  } catch (Exception e) {
324  UIUtils.showMessageUI(false);
325  logger.error(e.getMessage(), e);
326  }
327  }
328 
329  }
boolean updateDevicesAdd(String userId, List< OTPDevice > devices, OTPDevice newDevice)
Definition: OTPService.java:105
void cancelUpdate()
Definition: OTPViewModel.java:302
User user
Definition: UserViewModel.java:58
int editingId
Definition: OTPViewModel.java:56
Logger logger
Definition: OTPViewModel.java:48
String getId()
Definition: User.java:43
OTPDevice newDevice
Definition: OTPViewModel.java:55
String getNickName()
Definition: RegisteredCredential.java:19
List< OTPDevice > devices
Definition: OTPViewModel.java:54
OTPService otpService
Definition: OTPViewModel.java:51

◆ validateCode()

void org.gluu.credmanager.ui.vm.user.OTPViewModel.validateCode ( @BindingParam("ref") Component  ref)
inline
246  {
247 
248  String uid = null;
249  if (code != null) {
250  logger.trace("Validating code entered");
251  //Determines if numeric code is valid with respect to secret key
252  IOTPAlgorithm service = otpService.getAlgorithmService(getApplicableAlgorithmType());
253  uid = service.getExternalUid(secretKey, code);
254  if (uid != null) {
255 
256  //User may have entered the same key manually in the past
257  int semicolon = uid.indexOf(";");
258  final String shorterUid = semicolon == -1 ? uid : uid.substring(0, semicolon);
259 
260  if (devices.stream().anyMatch(dev -> dev.getUid().startsWith(shorterUid))) {
261  UIUtils.showMessageUI(false, Labels.getLabel("usr.otp_duplicated_device"));
262  } else {
263  newDevice.setUid(uid);
264  uiCorrectCode = true;
265  }
266  }
267  }
268  if (uid == null) {
269  uid = Labels.getLabel("usr.code_wrong");
270  Clients.showNotification(uid, Clients.NOTIFICATION_TYPE_WARNING, ref, "before_center", UIUtils.FEEDBACK_DELAY_ERR);
271  }
272 
273  }
boolean uiCorrectCode
Definition: OTPViewModel.java:66
Logger logger
Definition: OTPViewModel.java:48
String code
Definition: OTPViewModel.java:53
OTPType getApplicableAlgorithmType()
Definition: OTPViewModel.java:147
OTPDevice newDevice
Definition: OTPViewModel.java:55
byte [] secretKey
Definition: OTPViewModel.java:58
void setUid(String uid)
Definition: OTPDevice.java:74
List< OTPDevice > devices
Definition: OTPViewModel.java:54
IOTPAlgorithm getAlgorithmService(OTPKey.OTPType type)
Definition: OTPService.java:161
OTPService otpService
Definition: OTPViewModel.java:51

メンバ詳解

◆ code

String org.gluu.credmanager.ui.vm.user.OTPViewModel.code
private

◆ devices

List<OTPDevice> org.gluu.credmanager.ui.vm.user.OTPViewModel.devices
private

◆ editingId

int org.gluu.credmanager.ui.vm.user.OTPViewModel.editingId
private

◆ hardTokenType

OTPType org.gluu.credmanager.ui.vm.user.OTPViewModel.hardTokenType
private

◆ logger

Logger org.gluu.credmanager.ui.vm.user.OTPViewModel.logger = LoggerFactory.getLogger(getClass())
private

◆ newDevice

OTPDevice org.gluu.credmanager.ui.vm.user.OTPViewModel.newDevice
private

◆ otpConfig

OTPConfig org.gluu.credmanager.ui.vm.user.OTPViewModel.otpConfig
private

◆ otpService

OTPService org.gluu.credmanager.ui.vm.user.OTPViewModel.otpService
private

◆ QR_SCAN_TIMEOUT

final int org.gluu.credmanager.ui.vm.user.OTPViewModel.QR_SCAN_TIMEOUT = 60
staticprivate

◆ secretKey

byte [] org.gluu.credmanager.ui.vm.user.OTPViewModel.secretKey
private

◆ secretKeyString

String org.gluu.credmanager.ui.vm.user.OTPViewModel.secretKeyString
private

◆ tokenType

String org.gluu.credmanager.ui.vm.user.OTPViewModel.tokenType
private

◆ uiCorrectCode

boolean org.gluu.credmanager.ui.vm.user.OTPViewModel.uiCorrectCode
private

◆ uiPanelOpened

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

◆ uiQRShown

boolean org.gluu.credmanager.ui.vm.user.OTPViewModel.uiQRShown
private

◆ uiTokenPressing

boolean org.gluu.credmanager.ui.vm.user.OTPViewModel.uiTokenPressing
private

◆ user

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

◆ userService

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

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