diff options
author | Daniel Silverthorn <daniel.silverthorn@amdocs.com> | 2017-07-25 11:32:41 -0400 |
---|---|---|
committer | Daniel Silverthorn <daniel.silverthorn@amdocs.com> | 2017-07-25 11:45:16 -0400 |
commit | a1c111931c105fa781bbb8c3815b2d51fdef3a7c (patch) | |
tree | d95642eb5b3a75eecaa33563ec7ee1e4078b9688 /auth/src/main/java | |
parent | 7e3124a20151cf83616a0747c54206bfd34811a3 (diff) |
[AAI-57] Rename auth to aai-auth and add nexus staging plugin to pom.xml
Change-Id: I17603a5e3baea2d49e8bbfdf00071d8fe68b3dde
Signed-off-by: Daniel Silverthorn <daniel.silverthorn@amdocs.com>
Diffstat (limited to 'auth/src/main/java')
-rw-r--r-- | auth/src/main/java/org/openecomp/auth/Auth.java | 63 | ||||
-rw-r--r-- | auth/src/main/java/org/openecomp/auth/AuthCore.java | 219 | ||||
-rw-r--r-- | auth/src/main/java/org/openecomp/util/AuthConstants.java | 44 |
3 files changed, 0 insertions, 326 deletions
diff --git a/auth/src/main/java/org/openecomp/auth/Auth.java b/auth/src/main/java/org/openecomp/auth/Auth.java deleted file mode 100644 index 4d112887..00000000 --- a/auth/src/main/java/org/openecomp/auth/Auth.java +++ /dev/null @@ -1,63 +0,0 @@ -/** - * ============LICENSE_START======================================================= - * EcompAuth - * ================================================================================ - * Copyright © 2017 AT&T Intellectual Property. - * Copyright © 2017 Amdocs - * All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - * - * ECOMP and OpenECOMP are trademarks - * and service marks of AT&T Intellectual Property. - */ - -package org.openecomp.auth; - -import org.apache.http.cookie.Cookie; - -public class Auth { - private AuthCore authCore; - - public Auth(String filename) throws Exception { - this.authCore = new AuthCore(filename); - } - - public boolean auth_basic(String username, String authFunction) throws Exception { - return authCore.authorize(username, authFunction); - } - - public boolean auth_cookie(Cookie cookie, String authFunction, StringBuilder username) - throws Exception { - if (cookie == null) { - return false; - } - return authCore.authorize(username.toString(), authFunction); - } - - /** - * Returns true if the user is allowed to access a function. - * @param authUser - * - String value of the user. - * @param authAction - * - String value of the function. - */ - public boolean validateRequest(String authUser, String authAction) throws Exception { - - if (authUser == null || authAction == null) { - return false; - } - return authCore.authorize(authUser, authAction); - } -} diff --git a/auth/src/main/java/org/openecomp/auth/AuthCore.java b/auth/src/main/java/org/openecomp/auth/AuthCore.java deleted file mode 100644 index 27de5c04..00000000 --- a/auth/src/main/java/org/openecomp/auth/AuthCore.java +++ /dev/null @@ -1,219 +0,0 @@ -/** - * ============LICENSE_START======================================================= - * EcompAuth - * ================================================================================ - * Copyright © 2017 AT&T Intellectual Property. - * Copyright © 2017 Amdocs - * All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - * - * ECOMP and OpenECOMP are trademarks - * and service marks of AT&T Intellectual Property. - */ -package org.openecomp.auth; - -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; -import org.openecomp.util.AuthConstants; - -import java.io.File; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - - -public class AuthCore { - - private String authFilename; - public ObjectMapper mapper; - - private static enum HTTP_METHODS { - POST, GET, PUT, DELETE, PATCH - } - - public AuthCore(String filename) throws Exception { - this.authFilename = filename; - loadUsers(filename); - } - - private static boolean usersInitialized = false; - private static HashMap<String, AuthUser> users; - - public String getConfigFile() { - return this.authFilename; - } - - /** - * Loads the auth file and caches a list of authorized users. - * @param authFilename - * - Absolute path of the file where authorized users are listed. - */ - public synchronized void loadUsers(String authFilename) throws Exception { - users = new HashMap<String, AuthUser>(); - - mapper = new ObjectMapper(); // can reuse, share globally - JsonNode rootNode = mapper.readTree(new File(authFilename)); - JsonNode rolesNode = rootNode.path(AuthConstants.rolesNodePath); - - for (JsonNode roleNode : rolesNode) { - String roleName = roleNode.path(AuthConstants.roleNamePath).asText(); - - AuthRole role = new AuthRole(); - JsonNode usersNode = roleNode.path(AuthConstants.usersNodePath); - JsonNode functionsNode = roleNode.path(AuthConstants.functionsNodePath); - for (JsonNode functionNode : functionsNode) { - String function = functionNode.path(AuthConstants.functionNamePath).asText(); - JsonNode methodsNode = functionNode.path(AuthConstants.methodsNodePath); - boolean hasMethods = false; - for (JsonNode methodNode : methodsNode) { - String methodName = methodNode.path(AuthConstants.methodNamePath).asText(); - hasMethods = true; - String thisFunction = methodName + ":" + function; - - role.addAllowedFunction(thisFunction); - } - - if (hasMethods == false) { - // iterate the list from HTTP_METHODS - for (HTTP_METHODS meth : HTTP_METHODS.values()) { - String thisFunction = meth.toString() + ":" + function; - - role.addAllowedFunction(thisFunction); - } - } - } - - for (JsonNode userNode : usersNode) { - // make the user lower case - String node = userNode.path(AuthConstants.userNodePath).asText().toLowerCase(); - AuthUser user = null; - if (users.containsKey(node)) { - user = users.get(node); - } else { - user = new AuthUser(); - } - - user.setUser(node); - user.addRole(roleName, role); - users.put(node, user); - } - } - - usersInitialized = true; - - } - - public class AuthUser { - public AuthUser() { - this.roles = new HashMap<String, AuthRole>(); - } - - private String username; - private HashMap<String, AuthRole> roles; - - public String getUser() { - return this.username; - } - - public HashMap<String, AuthRole> getRoles() { - return this.roles; - } - - public void addRole(String roleName, AuthRole role) { - this.roles.put(roleName, role); - } - - /** - * Returns true if the user has permissions for the function, otherwise returns false. - * @param checkFunc - * - String value of the function. - */ - public boolean checkAllowed(String checkFunc) { - for (Map.Entry<String, AuthRole> roleEntry : this.roles.entrySet()) { - AuthRole role = roleEntry.getValue(); - if (role.hasAllowedFunction(checkFunc)) { - // break out as soon as we find it - return true; - } - } - // we would have got positive confirmation had it been there - return false; - } - - public void setUser(String myuser) { - this.username = myuser; - } - - } - - public static class AuthRole { - public AuthRole() { - this.allowedFunctions = new ArrayList<String>(); - } - - private List<String> allowedFunctions; - - public void addAllowedFunction(String func) { - this.allowedFunctions.add(func); - } - - /** - * Remove the function from the user's list of allowed functions. - * @param delFunc - * - String value of the function. - */ - public void delAllowedFunction(String delFunc) { - if (this.allowedFunctions.contains(delFunc)) { - this.allowedFunctions.remove(delFunc); - } - } - - /** - * Returns true if the user has permissions to use the function, otherwise returns false. - * @param afunc - * - String value of the function. - */ - public boolean hasAllowedFunction(String afunc) { - if (this.allowedFunctions.contains(afunc)) { - return true; - } else { - return false; - } - } - } - - /** - * Returns a hash-map of all users which have been loaded and initialized. - */ - public HashMap<String, AuthUser> getUsers(String key) throws Exception { - if (!usersInitialized || (users == null)) { - loadUsers(this.authFilename); - } - return users; - } - - /** - * Returns true if the user is allowed to access a function. - * @param username - * - String value of user - * @param authFunction - * - String value of the function. - */ - public boolean authorize(String username, String authFunction) throws Exception { - AuthUser user = users.get(username); - return user != null && user.checkAllowed(authFunction); - } -} diff --git a/auth/src/main/java/org/openecomp/util/AuthConstants.java b/auth/src/main/java/org/openecomp/util/AuthConstants.java deleted file mode 100644 index 8f4f60b9..00000000 --- a/auth/src/main/java/org/openecomp/util/AuthConstants.java +++ /dev/null @@ -1,44 +0,0 @@ -/** - * ============LICENSE_START======================================================= - * EcompAuth - * ================================================================================ - * Copyright © 2017 AT&T Intellectual Property. - * Copyright © 2017 Amdocs - * All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - * - * ECOMP and OpenECOMP are trademarks - * and service marks of AT&T Intellectual Property. - */ -package org.openecomp.util; - -public class AuthConstants { - - public static final String rolesNodePath = "roles"; - - public static final String roleNamePath = "name"; - - public static final String usersNodePath = "users"; - - public static final String functionsNodePath = "functions"; - - public static final String functionNamePath = "name"; - - public static final String methodsNodePath = "methods"; - - public static final String methodNamePath = "name"; - - public static final String userNodePath = "username"; -} |