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

公開メンバ関数

boolean isUiPanelOpened ()
 
boolean isUiQRShown ()
 
boolean isUiEnrolled ()
 
List< SuperGluuDevicegetDevices ()
 
SuperGluuDevice getNewDevice ()
 
void setUiPanelOpened (boolean uiPanelOpened)
 
void setNewDevice (SuperGluuDevice newDevice)
 
String getEditingId ()
 
void setEditingId (String editingId)
 
void childInit () throws Exception
 
void showQR ()
 
void afterCompose (@ContextParam(ContextType.VIEW) Component view)
 
void qrScanResult (Event event)
 
void add ()
 
void cancel ()
 
void prepareForUpdate (@BindingParam("device") SuperGluuDevice dev)
 
void update ()
 
void cancelUpdate ()
 
void delete (@BindingParam("device") SuperGluuDevice 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 stopPolling ()
 
void resetAddSettings ()
 

非公開変数類

Logger logger = LogManager.getLogger(getClass())
 
SGService sgService
 
SGConfig sgConfig
 
SuperGluuDevice newDevice
 
String editingId
 
List< SuperGluuDevicedevices
 
boolean uiPanelOpened
 
boolean uiQRShown
 
boolean uiEnrolled
 

静的非公開変数類

static final int QR_SCAN_TIMEOUT = 60
 

詳解

Created by jgomer on 2017-09-06. This is the ViewModel of page super-detail.zul. It controls the CRUD of supergluu devices

関数詳解

◆ add()

void org.gluu.credmanager.ui.vm.user.SuperGluuViewModel.add ( )
inline
184  {
185 
186  if (Utils.isNotEmpty(newDevice.getNickName())) {
187  try {
189  devices.add(newDevice);
190  UIUtils.showMessageUI(true, Labels.getLabel("usr.enroll.success"));
191  } catch (Exception e) {
192  UIUtils.showMessageUI(false, Labels.getLabel("usr.error_updating"));
193  logger.error(e.getMessage(), e);
194  }
195  uiPanelOpened = false;
197  }
198 
199  }
boolean uiPanelOpened
Definition: SuperGluuViewModel.java:55
Logger logger
Definition: SuperGluuViewModel.java:45
List< SuperGluuDevice > devices
Definition: SuperGluuViewModel.java:53
SGService sgService
Definition: SuperGluuViewModel.java:48
boolean updateDevice(FidoDevice device)
Definition: FidoService.java:37
String getNickName()
Definition: RegisteredCredential.java:19
void resetAddSettings()
Definition: SuperGluuViewModel.java:288
SuperGluuDevice newDevice
Definition: SuperGluuViewModel.java:51

◆ afterCompose()

void org.gluu.credmanager.ui.vm.user.SuperGluuViewModel.afterCompose ( @ContextParam(ContextType.VIEW) Component  view)
inline
130  {
131  Selectors.wireEventListeners(view, this);
132  }

◆ cancel()

void org.gluu.credmanager.ui.vm.user.SuperGluuViewModel.cancel ( )
inline
203  {
204  try {
205  //Stop tellServer function if still running
206  Clients.response(new AuInvoke("stopPolling"));
207  //Check if cancelation was made after a real enrollment took place
208  if (newDevice != null && newDevice.getDeviceData() != null) {
210  }
211  } catch (Exception e) {
212  UIUtils.showMessageUI(false);
213  logger.error(e.getMessage(), e);
214  }
216 
217  }
Logger logger
Definition: SuperGluuViewModel.java:45
boolean removeDevice(FidoDevice device)
Definition: FidoService.java:49
SGService sgService
Definition: SuperGluuViewModel.java:48
DeviceData getDeviceData()
Definition: SuperGluuDevice.java:20
void resetAddSettings()
Definition: SuperGluuViewModel.java:288
SuperGluuDevice newDevice
Definition: SuperGluuViewModel.java:51

◆ cancelUpdate()

void org.gluu.credmanager.ui.vm.user.SuperGluuViewModel.cancelUpdate ( )
inline
252  {
253  newDevice.setNickName(null);
254  editingId = null;
255  }
String editingId
Definition: SuperGluuViewModel.java:52
void setNickName(String nickname)
Definition: RegisteredCredential.java:23
SuperGluuDevice newDevice
Definition: SuperGluuViewModel.java:51

◆ childInit()

void org.gluu.credmanager.ui.vm.user.SuperGluuViewModel.childInit ( ) throws Exception
inline
96  {
99 
100  newDevice = new SuperGluuDevice();
101  uiPanelOpened = true;
102  }
User user
Definition: UserViewModel.java:58
boolean uiPanelOpened
Definition: SuperGluuViewModel.java:55
List< SuperGluuDevice > getDevices(String userId, boolean active)
Definition: SGService.java:76
SGConfig getConf()
Definition: SGService.java:80
List< SuperGluuDevice > devices
Definition: SuperGluuViewModel.java:53
String getId()
Definition: User.java:43
SGConfig sgConfig
Definition: SuperGluuViewModel.java:50
SGService sgService
Definition: SuperGluuViewModel.java:48
SuperGluuDevice newDevice
Definition: SuperGluuViewModel.java:51

◆ delete()

void org.gluu.credmanager.ui.vm.user.SuperGluuViewModel.delete ( @BindingParam("device") SuperGluuDevice  device)
inline
258  {
259 
260  String resetMessages = resetPreferenceMessage(SuperGluuExtension.ACR, devices.size());
261  boolean reset = resetMessages != null;
262  Pair<String, String> delMessages = getDeleteMessages(device.getNickName(), resetMessages);
263 
264  Messagebox.show(delMessages.getY(), delMessages.getX(), Messagebox.YES | Messagebox.NO, reset ? Messagebox.EXCLAMATION : Messagebox.QUESTION,
265  event -> {
266  if (Messagebox.ON_YES.equals(event.getName())) {
267  try {
268  if (devices.remove(device)) {
269  if (reset) {
271  }
272 
273  sgService.removeDevice(device);
274  //trigger refresh (this method is asynchronous...)
275  BindUtils.postNotifyChange(null, null, SuperGluuViewModel.this, "devices");
276 
277  UIUtils.showMessageUI(true);
278  }
279  } catch (Exception e) {
280  UIUtils.showMessageUI(false);
281  logger.error(e.getMessage(), e);
282  }
283  }
284  });
285  }
User user
Definition: UserViewModel.java:58
Logger logger
Definition: SuperGluuViewModel.java:45
boolean setPreferredMethod(User user, String method)
Definition: UserService.java:136
UserService userService
Definition: UserViewModel.java:48
boolean removeDevice(FidoDevice device)
Definition: FidoService.java:49
List< SuperGluuDevice > devices
Definition: SuperGluuViewModel.java:53
SGService sgService
Definition: SuperGluuViewModel.java:48
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<SuperGluuDevice> org.gluu.credmanager.ui.vm.user.SuperGluuViewModel.getDevices ( )
inline
71  {
72  return devices;
73  }
List< SuperGluuDevice > devices
Definition: SuperGluuViewModel.java:53

◆ getEditingId()

String org.gluu.credmanager.ui.vm.user.SuperGluuViewModel.getEditingId ( )
inline
87  {
88  return editingId;
89  }
String editingId
Definition: SuperGluuViewModel.java:52

◆ getNewDevice()

SuperGluuDevice org.gluu.credmanager.ui.vm.user.SuperGluuViewModel.getNewDevice ( )
inline
75  {
76  return newDevice;
77  }
SuperGluuDevice newDevice
Definition: SuperGluuViewModel.java:51

◆ 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

◆ 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

◆ isUiEnrolled()

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

◆ isUiPanelOpened()

boolean org.gluu.credmanager.ui.vm.user.SuperGluuViewModel.isUiPanelOpened ( )
inline
59  {
60  return uiPanelOpened;
61  }
boolean uiPanelOpened
Definition: SuperGluuViewModel.java:55

◆ isUiQRShown()

boolean org.gluu.credmanager.ui.vm.user.SuperGluuViewModel.isUiQRShown ( )
inline
63  {
64  return uiQRShown;
65  }
boolean uiQRShown
Definition: SuperGluuViewModel.java:56

◆ 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.SuperGluuViewModel.prepareForUpdate ( @BindingParam("device") SuperGluuDevice  dev)
inline
221  {
222  //This will make the modal window to become visible
223  editingId = dev.getId();
224  newDevice = new SuperGluuDevice();
225  newDevice.setNickName(dev.getNickName());
226  }
String editingId
Definition: SuperGluuViewModel.java:52
void setNickName(String nickname)
Definition: RegisteredCredential.java:23
SuperGluuDevice newDevice
Definition: SuperGluuViewModel.java:51

◆ qrScanResult()

void org.gluu.credmanager.ui.vm.user.SuperGluuViewModel.qrScanResult ( Event  event)
inline
142  {
143 
144  logger.debug("qrScanResult. Event value is {}", event.getData().toString());
145  if (uiQRShown) {
146  switch (event.getData().toString()) {
147  case "timeout":
148  //Indicates progress bar reached 100%
149  stopPolling();
150  break;
151  case "poll":
152  newDevice = sgService.getLatestSuperGluuDevice(user.getId(), new Date().getTime());
153  if (newDevice != null) { //New device detected, stop polling
154  stopPolling();
155  try {
156  logger.debug("qrScanResult. Got device {}", newDevice.getId());
157  //It's enrolled in LDAP, nonetheless we are missing the nickname yet and also the check if
158  //it has not previously been enrolled by the same user
160  if (uiEnrolled) {
161  BindUtils.postNotifyChange(null, null, this, "uiEnrolled");
162  } else {
163  //drop duplicated device from LDAP
165  logger.info("Duplicated SuperGluu device {} has been removed", newDevice.getDeviceData().getUuid());
166  UIUtils.showMessageUI(false, Labels.getLabel("usr.supergluu_already_enrolled"));
167  }
168  } catch (Exception e) {
169  String error = e.getMessage();
170  logger.error(error, e);
171  UIUtils.showMessageUI(false, Labels.getLabel("general.error.detailed", new String[] { error }));
172  }
173  }
174  break;
175  default:
176  //Added to pass checkstyler
177  }
178  }
179 
180  }
boolean isDeviceUnique(SuperGluuDevice dev, String userId)
Definition: SGService.java:156
User user
Definition: UserViewModel.java:58
Logger logger
Definition: SuperGluuViewModel.java:45
boolean removeDevice(FidoDevice device)
Definition: FidoService.java:49
boolean uiEnrolled
Definition: SuperGluuViewModel.java:57
String getId()
Definition: User.java:43
String getId()
Definition: FidoDevice.java:18
SGService sgService
Definition: SuperGluuViewModel.java:48
DeviceData getDeviceData()
Definition: SuperGluuDevice.java:20
boolean uiQRShown
Definition: SuperGluuViewModel.java:56
SuperGluuDevice getLatestSuperGluuDevice(String userId, long time)
Definition: SGService.java:131
void stopPolling()
Definition: SuperGluuViewModel.java:134
String getUuid()
Definition: DeviceData.java:63
SuperGluuDevice newDevice
Definition: SuperGluuViewModel.java:51

◆ resetAddSettings()

void org.gluu.credmanager.ui.vm.user.SuperGluuViewModel.resetAddSettings ( )
inlineprivate
288  {
289  uiQRShown = false;
290  uiEnrolled = false;
291  newDevice = new SuperGluuDevice();
293  }
User user
Definition: UserViewModel.java:58
UserService userService
Definition: UserViewModel.java:48
boolean uiEnrolled
Definition: SuperGluuViewModel.java:57
String getId()
Definition: User.java:43
boolean uiQRShown
Definition: SuperGluuViewModel.java:56
boolean cleanRandEnrollmentCode(String userId)
Definition: UserService.java:291
SuperGluuDevice newDevice
Definition: SuperGluuViewModel.java:51

◆ 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.SuperGluuViewModel.setEditingId ( String  editingId)
inline
91  {
92  this.editingId = editingId;
93  }
String editingId
Definition: SuperGluuViewModel.java:52

◆ setNewDevice()

void org.gluu.credmanager.ui.vm.user.SuperGluuViewModel.setNewDevice ( SuperGluuDevice  newDevice)
inline
83  {
84  this.newDevice = newDevice;
85  }
SuperGluuDevice newDevice
Definition: SuperGluuViewModel.java:51

◆ setUiPanelOpened()

void org.gluu.credmanager.ui.vm.user.SuperGluuViewModel.setUiPanelOpened ( boolean  uiPanelOpened)
inline
79  {
81  }
boolean uiPanelOpened
Definition: SuperGluuViewModel.java:55

◆ showQR()

void org.gluu.credmanager.ui.vm.user.SuperGluuViewModel.showQR ( )
inline
105  {
106 
107  try {
109  String request = sgService.generateRequest(user.getUserName(), code, WebUtils.getRemoteIP());
110 
111  if (request != null) {
112  uiQRShown = true;
113  BindUtils.postNotifyChange(null, null, this, "uiQRShown");
114 
115  //Passing screen width as max allowed size for QR code allows showing QRs even in small mobile devices
116  JavaScriptValue jvalue = new JavaScriptValue(sgConfig.getFormattedQROptions(getScreenWidth()));
117  //Calls the startQR javascript function supplying suitable params
118  Clients.response(new AuInvoke("startQR", request, sgConfig.getLabel(), jvalue, QR_SCAN_TIMEOUT, true));
119  } else {
120  UIUtils.showMessageUI(false);
121  }
122  } catch (Exception e) {
123  UIUtils.showMessageUI(false);
124  logger.error(e.getMessage(), e);
125  }
126 
127  }
String getUserName()
Definition: User.java:23
static final int QR_SCAN_TIMEOUT
Definition: SuperGluuViewModel.java:43
User user
Definition: UserViewModel.java:58
Logger logger
Definition: SuperGluuViewModel.java:45
String generateRandEnrollmentCode(String userId)
Definition: UserService.java:281
String getLabel()
Definition: QRConfig.java:78
UserService userService
Definition: UserViewModel.java:48
String generateRequest(String userName, String code, String remoteIp)
Definition: SGService.java:91
String getId()
Definition: User.java:43
SGConfig sgConfig
Definition: SuperGluuViewModel.java:50
int getScreenWidth()
Definition: UserViewModel.java:82
SGService sgService
Definition: SuperGluuViewModel.java:48
boolean uiQRShown
Definition: SuperGluuViewModel.java:56
String getFormattedQROptions(int maxWidth)
Definition: QRConfig.java:55

◆ stopPolling()

void org.gluu.credmanager.ui.vm.user.SuperGluuViewModel.stopPolling ( )
inlineprivate
134  {
135  Clients.response(new AuInvoke("stopPolling"));
136  uiQRShown = false;
137  BindUtils.postNotifyChange(null, null, this, "uiQRShown");
139  }
User user
Definition: UserViewModel.java:58
UserService userService
Definition: UserViewModel.java:48
String getId()
Definition: User.java:43
boolean uiQRShown
Definition: SuperGluuViewModel.java:56
boolean cleanRandEnrollmentCode(String userId)
Definition: UserService.java:291

◆ update()

void org.gluu.credmanager.ui.vm.user.SuperGluuViewModel.update ( )
inline
230  {
231 
232  String nick = newDevice.getNickName();
233  if (Utils.isNotEmpty(nick)) {
234  int i = Utils.firstTrue(devices, dev -> dev.getId().equals(editingId));
235  SuperGluuDevice dev = devices.get(i);
236  dev.setNickName(nick);
237  cancelUpdate();
238 
239  try {
240  sgService.updateDevice(dev);
241  UIUtils.showMessageUI(true);
242  } catch (Exception e) {
243  UIUtils.showMessageUI(false);
244  logger.error(e.getMessage(), e);
245  }
246  }
247 
248  }
Logger logger
Definition: SuperGluuViewModel.java:45
String editingId
Definition: SuperGluuViewModel.java:52
void cancelUpdate()
Definition: SuperGluuViewModel.java:252
List< SuperGluuDevice > devices
Definition: SuperGluuViewModel.java:53
SGService sgService
Definition: SuperGluuViewModel.java:48
boolean updateDevice(FidoDevice device)
Definition: FidoService.java:37
String getNickName()
Definition: RegisteredCredential.java:19
SuperGluuDevice newDevice
Definition: SuperGluuViewModel.java:51

メンバ詳解

◆ devices

List<SuperGluuDevice> org.gluu.credmanager.ui.vm.user.SuperGluuViewModel.devices
private

◆ editingId

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

◆ logger

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

◆ newDevice

SuperGluuDevice org.gluu.credmanager.ui.vm.user.SuperGluuViewModel.newDevice
private

◆ QR_SCAN_TIMEOUT

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

◆ sgConfig

SGConfig org.gluu.credmanager.ui.vm.user.SuperGluuViewModel.sgConfig
private

◆ sgService

SGService org.gluu.credmanager.ui.vm.user.SuperGluuViewModel.sgService
private

◆ uiEnrolled

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

◆ uiPanelOpened

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

◆ uiQRShown

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

◆ user

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

◆ userService

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

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