+ public void delete(final FnUser user) {
+ fnUserDao.delete(user);
+ }
+
+ public List<FnUser> findByFirstNameAndLastName(final String firstName, final String lastName) {
+ return fnUserDao.findByFirstNameAndLastName(firstName, lastName).orElse(new ArrayList<>());
+ }
+
+ public List<FnUser> getUserByUserId(String userId) {
+ if (SystemProperties.getProperty(SystemProperties.AUTHENTICATION_MECHANISM).trim().equalsIgnoreCase("OIDC")) {
+ List<FnUser> users = new ArrayList<>();
+ List<FnUser> filterdUsers = new ArrayList<>();
+ BufferedReader in = null;
+ HttpURLConnection con = null;
+ try {
+ String url = EPSystemProperties.getProperty(EPSystemProperties.AUTH_USER_SERVER);
+ URL obj = new URL(url);
+
+ con = (HttpURLConnection) obj.openConnection();
+
+ // optional default is GET
+ con.setRequestMethod("GET");
+ con.setConnectTimeout(3000);
+ con.setReadTimeout(8000);
+
+ StringBuffer response = new StringBuffer();
+
+ in = new BufferedReader(new InputStreamReader(con.getInputStream(), "UTF-8"));
+ String inputLine;
+ while ((inputLine = in.readLine()) != null) {
+ response.append(inputLine);
+ }
+ JSONObject jObject = new JSONObject(response.toString()); // json
+ JSONArray jsonUsers = jObject.getJSONArray("response"); // get data object
+ for (int i = 0; i < jsonUsers.length(); i++) {
+ JSONObject eachObject = jsonUsers.getJSONObject(i);
+ FnUser eachUser = new FnUser();
+ eachUser.setOrgUserId(eachObject.get("id").toString());// getString("id"));
+ eachUser.setFirstName(eachObject.get("givenName").toString());
+ eachUser.setLastName(eachObject.get("familyName").toString());
+ eachUser.setEmail(eachObject.get("email").toString());
+ users.add(eachUser);
+ }
+
+ for (FnUser user : users) {
+
+ if (Utilities.nvl(userId).length() > 0) {
+ if (!userId.equalsIgnoreCase(user.getOrgUserId())) {
+ continue;
+ }
+ }
+ filterdUsers.add(user);
+
+ }
+
+ } catch (Exception e) {
+ logger.error(EELFLoggerDelegate.errorLogger, "getUserByUserId failed", e);
+ } finally {
+ try {
+ if (in != null) {
+ in.close();
+ }
+ con.disconnect();
+ } catch (IOException e) {
+ logger.error(EELFLoggerDelegate.errorLogger, "getUserByUserId 2 failed", e);
+ }
+ }
+ return filterdUsers;
+ } else {
+ List<FnUser> list = this.getUserWithOrgUserId(userId);
+ return (list == null || list.size() == 0) ? null : list;
+ }
+
+ }
+
+ public List<FnUser> getUserByFirstLastName(String firstName, String lastName) {
+ if (!SystemProperties.getProperty(SystemProperties.AUTHENTICATION_MECHANISM).trim().equalsIgnoreCase("OIDC")) {
+ List<FnUser> list = this.findByFirstNameAndLastName(firstName, lastName);
+ return (list == null || list.size() == 0) ? null : list;
+ } else {
+ List<FnUser> users = new ArrayList<>();
+ List<FnUser> filterdUsers = new ArrayList<>();
+ BufferedReader in = null;
+ HttpURLConnection con = null;
+ try {
+ String url = EPCommonSystemProperties.getProperty(EPCommonSystemProperties.AUTH_USER_SERVER);
+ URL obj = new URL(url);
+ con = (HttpURLConnection) obj.openConnection();
+ con.setRequestMethod("GET");
+ con.setConnectTimeout(3000);
+ con.setReadTimeout(8000);
+ StringBuffer response = new StringBuffer();
+ in = new BufferedReader(new InputStreamReader(con.getInputStream(), StandardCharsets.UTF_8));
+ String inputLine;
+ while ((inputLine = in.readLine()) != null) {
+ response.append(inputLine);
+ }
+ JSONObject jObject = new JSONObject(response.toString());
+ JSONArray jsonUsers = jObject.getJSONArray("response");
+ for (int i = 0; i < jsonUsers.length(); i++) {
+ JSONObject eachObject = jsonUsers.getJSONObject(i);
+ FnUser eachUser = new FnUser();
+ eachUser.setOrgUserId(eachObject.get("id").toString());
+ eachUser.setFirstName(eachObject.get("givenName").toString());
+ eachUser.setLastName(eachObject.get("familyName").toString());
+ eachUser.setEmail(eachObject.get("email").toString());
+ users.add(eachUser);
+ }
+ for (FnUser user : users) {
+ if (Utilities.nvl(firstName).length() > 0) {
+ if (!firstName.equalsIgnoreCase(user.getFirstName())) {
+ continue;
+ }
+ }
+ if (Utilities.nvl(lastName).length() > 0) {
+ if (!lastName.equalsIgnoreCase(user.getLastName())) {
+ continue;
+ }
+ }
+ filterdUsers.add(user);
+ }
+ } catch (Exception e) {
+ logger.error(EELFLoggerDelegate.errorLogger, "getUserByFirstLastName failed", e);
+ } finally {
+ try {
+ if (in != null) {
+ in.close();
+ con.disconnect();
+ }
+ } catch (IOException e) {
+ logger.error(EELFLoggerDelegate.errorLogger, "getUserByFirstLastName failed to close", e);
+ }
+ }
+ return filterdUsers;
+ }
+ }