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 | |
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')
-rw-r--r-- | auth/License.txt | 22 | ||||
-rw-r--r-- | auth/pom.xml | 124 | ||||
-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 |
5 files changed, 0 insertions, 472 deletions
diff --git a/auth/License.txt b/auth/License.txt deleted file mode 100644 index df5d92ad..00000000 --- a/auth/License.txt +++ /dev/null @@ -1,22 +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. diff --git a/auth/pom.xml b/auth/pom.xml deleted file mode 100644 index b02678ee..00000000 --- a/auth/pom.xml +++ /dev/null @@ -1,124 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - <parent> - <groupId>org.onap.aai.aai-common</groupId> - <artifactId>aai-common</artifactId> - <version>1.1.0-SNAPSHOT</version> - </parent> - <artifactId>auth</artifactId> - <name>auth</name> - <version>0.0.1-SNAPSHOT</version> - - <properties> - <checkstyle.config.location>google_checks.xml</checkstyle.config.location> - <nexusproxy>https://nexus.onap.org</nexusproxy> - <sitePath>/content/sites/site/${project.groupId}/${project.artifactId}/${project.version}</sitePath> - </properties> - - - <dependencies> - - <dependency> - <groupId>com.fasterxml.jackson.core</groupId> - <artifactId>jackson-databind</artifactId> - <version>2.8.7</version> - </dependency> - - <dependency> - <groupId>org.apache.httpcomponents</groupId> - <artifactId>httpclient</artifactId> - <version>4.5.3</version> - </dependency> - </dependencies> - - <build> - <pluginManagement> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <configuration> - <source>1.8</source> - <target>1.8</target> - </configuration> - </plugin> - <plugin> - <artifactId>maven-release-plugin</artifactId> - <version>2.4.2</version> - <dependencies> - <dependency> - <groupId>org.apache.maven.scm</groupId> - <artifactId>maven-scm-provider-gitexe</artifactId> - <version>1.8.1</version> - </dependency> - </dependencies> - </plugin> - </plugins> - </pluginManagement> - <plugins> - <!-- license plugin --> - <plugin> - <groupId>com.mycila</groupId> - <artifactId>license-maven-plugin</artifactId> - <version>3.0</version> - <configuration> - <header>License.txt</header> - <includes> - <include>src/main/java/**</include> - </includes> - </configuration> - <executions> - <execution> - <goals> - <goal>format</goal> - </goals> - <phase>process-sources</phase> - </execution> - </executions> - </plugin> - - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-site-plugin</artifactId> - <version>3.3</version> - <configuration> - <reportPlugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-checkstyle-plugin</artifactId> - <version>2.17</version> - <reportSets> - <reportSet> - <reports> - <report>checkstyle</report> - </reports> - </reportSet> - </reportSets> - </plugin> - </reportPlugins> - </configuration> - </plugin> - - </plugins> - </build> - - <distributionManagement> - <repository> - <id>ecomp-releases</id> - <name>ECOMP Release Repository</name> - <url>${nexusproxy}/content/repositories/releases/</url> - </repository> - <snapshotRepository> - <id>ecomp-snapshots</id> - <name>ECOMP Snapshot Repository</name> - <url>${nexusproxy}/content/repositories/snapshots/</url> - </snapshotRepository> - <site> - <id>ecomp-site</id> - <url>dav:${nexusproxy}${sitePath}</url> - </site> - </distributionManagement> - -</project> 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"; -} |