/** * Constructor that copies the information from a persisted entity. * * @param pushInfo the stored data to copy, must be non-null */ public DefaultPatientPushHistory(PatientPushedToInfo pushInfo) { this.lastTimePushed = pushInfo.getLastPushTime(); this.remotePatientGUID = pushInfo.getRemotePatientGUID(); this.remotePatientID = pushInfo.getRemotePatientID(); this.remotePatientURL = pushInfo.getRemotePatientURL(); }
/** * Used by the SecureStorageManager */ public PatientPushedToInfo(String patientID, String remoteServerName, String remotePatientGUID, String remotePatientID, String remotePatientURL) { this.localPatientID = patientID; this.remoteServerName = remoteServerName; this.remotePatientGUID = remotePatientGUID; this.remotePatientID = remotePatientID; this.remotePatientURL = remotePatientURL; this.setLastPushTimeToNow(); }
protected TokenStatus checkUserToken(String userName, String serverName, String token, long tokenLifeTimeInDays) { if (token == null) { return TokenStatus.INVALID; } LocalLoginToken storedToken = this.storageManager.getLocalLoginToken(userName, serverName); if (storedToken == null) { return TokenStatus.INVALID; } // this.logger.debug("Expected token for user [{}]: [{}] aged [{}] out of [{}]", // userName, storedToken.getLoginToken(), storedToken.getTokenAgeInDays(), tokenLifeTimeInDays); if (!token.equals(storedToken.getLoginToken())) { this.logger.warn("Stored token does not match provided token"); return TokenStatus.INVALID; } if (tokenLifeTimeInDays != 0 && (storedToken.getTokenAgeInDays() > tokenLifeTimeInDays)) { this.logger.warn("Stored token has expired"); return TokenStatus.EXPIRED; } return TokenStatus.VALID; }
@Override public PushServerGetPatientIDResponse getPatientURL(String remoteServerIdentifier, String remotePatientGUID) { RemoteLoginData storedData = getStoredData(remoteServerIdentifier); if (storedData == null || storedData.getRemoteUserName() == null || storedData.getLoginToken() == null) { return new DefaultPushServerGetPatientIDResponse( DefaultPushServerResponse.generateIncorrectCredentialsJSON()); } return this.internalService.getPatientURL(remoteServerIdentifier, remotePatientGUID, storedData.getRemoteUserName(), null, storedData.getLoginToken()); }
public long getLastPushAgeInDays() { long diffInMilliseconds = System.currentTimeMillis() - getLastPushTime().getTime(); return (diffInMilliseconds / (1000 * 60 * 60 * 24)); }
@Override public PatientPushHistory getPatientPushHistory(String localPatientID, String remoteServerIdentifier) { PatientPushedToInfo pushInfo = this.storageManager.getPatientPushInfo(localPatientID, remoteServerIdentifier); PatientPushHistory history = (pushInfo == null) ? null : new DefaultPatientPushHistory(pushInfo); return history; }
@Override public String getRemoteUsername(String remoteServerIdentifier) { RemoteLoginData storedData = getStoredData(remoteServerIdentifier); if (storedData == null) { return null; } return storedData.getRemoteUserName(); }
protected RemoteLoginData getStoredData(String remoteServerIdentifier) { String localUserName = getLocalUserName(); return this.storageManager.getRemoteLoginData(localUserName, remoteServerIdentifier); }
protected void storeUserData(String remoteServerIdentifier, String remoteUser, String loginToken) { String localUserName = getLocalUserName(); this.storageManager.storeRemoteLoginData(localUserName, remoteServerIdentifier, remoteUser, loginToken); }
protected void removeUserData(String remoteServerIdentifier) { String localUserName = getLocalUserName(); this.storageManager.removeRemoteLoginData(localUserName, remoteServerIdentifier); }
public long getTokenAgeInDays() { long diffInMilliseconds = System.currentTimeMillis() - getTimeCreated().getTime(); return (diffInMilliseconds / (1000 * 60 * 60 * 24)); } }
@Override public void onEvent(Event event, Object source, Object data) { XWikiDocument doc = (XWikiDocument) source; String patientId = doc.getDocumentReference().getName(); this.pushStorageManager.deletePatientPushInfo(patientId); } }
/** * Constructor that copies the information from a persisted entity. * * @param pushInfo the stored data to copy, must be non-null */ public DefaultPatientPushHistory(PatientPushedToInfo pushInfo) { this.lastTimePushed = pushInfo.getLastPushTime(); this.remotePatientGUID = pushInfo.getRemotePatientGUID(); this.remotePatientID = pushInfo.getRemotePatientID(); this.remotePatientURL = pushInfo.getRemotePatientURL(); }
protected TokenStatus checkUserToken(String userName, String serverName, String token, long tokenLifeTimeInDays) { if (token == null) { return TokenStatus.INVALID; } LocalLoginToken storedToken = this.storageManager.getLocalLoginToken(userName, serverName); if (storedToken == null) { return TokenStatus.INVALID; } // this.logger.debug("Expected token for user [{}]: [{}] aged [{}] out of [{}]", // userName, storedToken.getLoginToken(), storedToken.getTokenAgeInDays(), tokenLifeTimeInDays); if (!token.equals(storedToken.getLoginToken())) { this.logger.warn("Stored token does not match provided token"); return TokenStatus.INVALID; } if (tokenLifeTimeInDays != 0 && (storedToken.getTokenAgeInDays() > tokenLifeTimeInDays)) { this.logger.warn("Stored token has expired"); return TokenStatus.EXPIRED; } return TokenStatus.VALID; }
@Override public PushServerGetPatientIDResponse getPatientURL(String remoteServerIdentifier, String remotePatientGUID) { RemoteLoginData storedData = getStoredData(remoteServerIdentifier); if (storedData == null || storedData.getRemoteUserName() == null || storedData.getLoginToken() == null) { return new DefaultPushServerGetPatientIDResponse( DefaultPushServerResponse.generateIncorrectCredentialsJSON()); } return this.internalService.getPatientURL(remoteServerIdentifier, remotePatientGUID, storedData.getRemoteUserName(), null, storedData.getLoginToken()); }
@Override public PatientPushHistory getPatientPushHistory(String localPatientID, String remoteServerIdentifier) { PatientPushedToInfo pushInfo = this.storageManager.getPatientPushInfo(localPatientID, remoteServerIdentifier); PatientPushHistory history = (pushInfo == null) ? null : new DefaultPatientPushHistory(pushInfo); return history; }
@Override public String getRemoteUsername(String remoteServerIdentifier) { RemoteLoginData storedData = getStoredData(remoteServerIdentifier); if (storedData == null) { return null; } return storedData.getRemoteUserName(); }
protected RemoteLoginData getStoredData(String remoteServerIdentifier) { String localUserName = getLocalUserName(); return this.storageManager.getRemoteLoginData(localUserName, remoteServerIdentifier); }
protected void storeUserData(String remoteServerIdentifier, String remoteUser, String loginToken) { String localUserName = getLocalUserName(); this.storageManager.storeRemoteLoginData(localUserName, remoteServerIdentifier, remoteUser, loginToken); }
protected void removeUserData(String remoteServerIdentifier) { String localUserName = getLocalUserName(); this.storageManager.removeRemoteLoginData(localUserName, remoteServerIdentifier); }