summaryrefslogtreecommitdiffstats
path: root/src/main/java/org
diff options
context:
space:
mode:
authormark.j.leonard <mark.j.leonard@gmail.com>2019-02-19 17:09:50 +0000
committermark.j.leonard <mark.j.leonard@gmail.com>2019-03-12 12:20:57 +0000
commit6b74f2a06df4fd3bfb9f1b368f46db28f1e95ecb (patch)
tree010fa6e7fc90b69b879a65953c03f5b40642fcc4 /src/main/java/org
parente6a097ef27b0a6438b51915a8821fc0da3787036 (diff)
Simplify JSON auth policy loading code
If the JSON filename or path cannot be located then attempt to resolve the file location relative to firstly CONFIG_HOME and then CONFIG_HOME/auth Change-Id: Ic8d6c7d6e129b09ac7fa72d733768d941826185b Issue-ID: AAI-2057 Signed-off-by: mark.j.leonard <mark.j.leonard@gmail.com>
Diffstat (limited to 'src/main/java/org')
-rw-r--r--src/main/java/org/onap/aai/auth/AAIMicroServiceAuthCore.java46
1 files changed, 31 insertions, 15 deletions
diff --git a/src/main/java/org/onap/aai/auth/AAIMicroServiceAuthCore.java b/src/main/java/org/onap/aai/auth/AAIMicroServiceAuthCore.java
index 63c1d6e..a6b6732 100644
--- a/src/main/java/org/onap/aai/auth/AAIMicroServiceAuthCore.java
+++ b/src/main/java/org/onap/aai/auth/AAIMicroServiceAuthCore.java
@@ -47,8 +47,6 @@ public class AAIMicroServiceAuthCore {
private static LogHelper applicationLogger = LogHelper.INSTANCE;
- private Path appConfigAuthDir;
-
private boolean usersInitialized = false;
private HashMap<String, AAIAuthUser> users;
private String policyAuthFileName;
@@ -57,10 +55,6 @@ public class AAIMicroServiceAuthCore {
GET, PUT, DELETE, HEAD, POST
}
- public AAIMicroServiceAuthCore() {
- appConfigAuthDir = Paths.get(System.getProperty("CONFIG_HOME"), "auth");
- }
-
/**
* @param authPolicyFile
* @throws AAIAuthException
@@ -98,17 +92,39 @@ public class AAIMicroServiceAuthCore {
applicationLogger.debug("Config Watcher Interval = " + TimeUnit.SECONDS.toMillis(1));
}
+ /**
+ * Locate the auth policy file by its name or path.
+ * <ul>
+ * <li>First try to use the absolute path to the file (if provided), or instead locate the path relative to the
+ * current (or user) dir.</li>
+ * <li>If this fails, try resolving the path relative to the configuration home location
+ * <code>$CONFIG_HOME</code></li>
+ * <li>If this fails try resolving relative to the <code>auth</code> folder under configuration home.</li>
+ *
+ * @param authPolicyFile
+ * filename or path (absolute or relative)
+ * @return the canonical path to the located policy file, or null if no file was found
+ * @throws IOException
+ * if the construction of the canonical pathname requires filesystem queries which cause I/O error(s)
+ */
public String getConfigFile(String authPolicyFile) throws IOException {
- File authFile = new File(authPolicyFile);
- if (authFile.exists()) {
- return authFile.getCanonicalPath();
- }
- authFile = appConfigAuthDir.resolve(authPolicyFile).toFile();
- if (authFile.exists()) {
- return authFile.getCanonicalPath();
- } else {
- return null;
+ if (authPolicyFile != null) {
+ List<Path> paths = new ArrayList<>();
+ paths.add(Paths.get("."));
+
+ String configHome = System.getProperty("CONFIG_HOME");
+ paths.add(Paths.get(configHome));
+ paths.add(Paths.get(configHome).resolve("auth"));
+
+ for (Path path : paths) {
+ File authFile = path.resolve(authPolicyFile).toFile();
+ if (authFile.exists()) {
+ return authFile.getCanonicalPath();
+ }
+ }
}
+
+ return null;
}
/**