aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorShankaranarayanan Puzhavakath Narayanan <snarayanan@research.att.com>2019-03-25 16:59:27 +0000
committerGerrit Code Review <gerrit@onap.org>2019-03-25 16:59:27 +0000
commitfc4e79ff80d01da5ae6597e114dd90cacfe2eb14 (patch)
tree6646658bc4f47949079605ba6b63a5f76dda1620
parent40f90e572ca906a9108feb8d693c8cdf69dc1722 (diff)
parent326c93ec9c645bf0ba49e151138ec1a8df2137b7 (diff)
Merge "Commit 2 for Create Optimized Sched API"
-rw-r--r--cmso-service/src/main/java/org/onap/optf/cmso/aaf/AafAuthorizationFilter.java101
-rw-r--r--cmso-service/src/main/java/org/onap/optf/cmso/aaf/AafFilter.java52
-rw-r--r--cmso-service/src/main/java/org/onap/optf/cmso/aaf/AafPerm.java193
-rw-r--r--cmso-service/src/main/java/org/onap/optf/cmso/aaf/AafSecurityConfig.java27
-rw-r--r--cmso-service/src/main/java/org/onap/optf/cmso/aaf/AafUserRole.java286
-rw-r--r--cmso-service/src/main/java/org/onap/optf/cmso/aaf/AafUserRoleProperties.java191
-rw-r--r--cmso-service/src/main/java/org/onap/optf/cmso/aaf/FilterPriority.java41
-rw-r--r--cmso-service/src/main/java/org/onap/optf/cmso/aaf/ResponseFormatter.java37
-rw-r--r--cmso-service/src/main/java/org/onap/optf/cmso/common/ApprovalStatusEnum.java60
-rw-r--r--cmso-service/src/main/java/org/onap/optf/cmso/common/ApprovalTypesEnum.java52
-rw-r--r--cmso-service/src/main/java/org/onap/optf/cmso/common/CMSStatusEnum.java137
11 files changed, 662 insertions, 515 deletions
diff --git a/cmso-service/src/main/java/org/onap/optf/cmso/aaf/AafAuthorizationFilter.java b/cmso-service/src/main/java/org/onap/optf/cmso/aaf/AafAuthorizationFilter.java
index 25a1e77..f3b36f5 100644
--- a/cmso-service/src/main/java/org/onap/optf/cmso/aaf/AafAuthorizationFilter.java
+++ b/cmso-service/src/main/java/org/onap/optf/cmso/aaf/AafAuthorizationFilter.java
@@ -1,32 +1,40 @@
-/**
- * ============LICENSE_START=======================================================
- * org.onap.optf.cmso
- * ================================================================================
- * Copyright © 2019 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
+/*******************************************************************************
+ * Copyright © 2019 AT&T Intellectual Property.
+ *
* 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
- *
+ *
+ * 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=========================================================
- */
+ *
+ *
+ * Unless otherwise specified, all documentation contained herein is licensed
+ * under the Creative Commons License, Attribution 4.0 Intl. (the "License");
+ * you may not use this documentation except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://creativecommons.org/licenses/by/4.0/
+ *
+ * Unless required by applicable law or agreed to in writing, documentation
+ * 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.
+ ******************************************************************************/
package org.onap.optf.cmso.aaf;
import java.io.IOException;
import java.util.List;
-
import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
-
import org.onap.aaf.cadi.CadiWrap;
import org.onap.aaf.cadi.Permission;
import org.onap.observations.Observation;
@@ -39,53 +47,46 @@ import org.springframework.context.annotation.Profile;
import org.springframework.stereotype.Component;
/**
- * AAF authorization filter
+ * AAF authorization filter.
*/
@Component
@Profile(SpringProfiles.AAF_AUTHENTICATION)
-public class AafAuthorizationFilter extends OrderedRequestContextFilter {
+public class AafAuthorizationFilter extends OrderedRequestContextFilter {
- @Autowired
- AafUserRoleProperties userRoleProperties;
-
+ @Autowired
+ AafUserRoleProperties userRoleProperties;
+
+ /**
+ * Instantiates a new aaf authorization filter.
+ */
public AafAuthorizationFilter() {
this.setOrder(FilterPriority.AAF_AUTHORIZATION.getPriority());
-
+
}
@Override
- protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws IOException, ServletException {
- try
- {
- if (request instanceof CadiWrap)
- {
- CadiWrap cw = (CadiWrap)request;
- List<Permission> perms = cw.getPermissions(cw.getUserPrincipal());
- if (userRoleProperties.processPermissions(request, perms))
- {
- filterChain.doFilter(request,response);
- }
- else
- {
- Observation.report(LogMessages.UNAUTHORIZED);
- ResponseFormatter.errorResponse(request, response,
- new CMSException(LogMessages.UNAUTHORIZED.getStatus(),
- LogMessages.UNAUTHORIZED, ""));
- }
- }
- else
- {
- throw new Exception();
- }
- }
- catch (Exception e)
- {
- Observation.report(LogMessages.UNEXPECTED_EXCEPTION, e, e.getMessage());
- ResponseFormatter.errorResponse(request, response,
- new CMSException(LogMessages.UNAUTHORIZED.getStatus(),
- LogMessages.UNAUTHORIZED, ""));
- }
+ protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain)
+ throws IOException, ServletException {
+ try {
+ if (request instanceof CadiWrap) {
+ CadiWrap cw = (CadiWrap) request;
+ List<Permission> perms = cw.getPermissions(cw.getUserPrincipal());
+ if (userRoleProperties.processPermissions(request, perms)) {
+ filterChain.doFilter(request, response);
+ } else {
+ Observation.report(LogMessages.UNAUTHORIZED);
+ ResponseFormatter.errorResponse(request, response, new CMSException(
+ LogMessages.UNAUTHORIZED.getStatus(), LogMessages.UNAUTHORIZED, ""));
+ }
+ } else {
+ throw new Exception();
+ }
+ } catch (Exception e) {
+ Observation.report(LogMessages.UNEXPECTED_EXCEPTION, e, e.getMessage());
+ ResponseFormatter.errorResponse(request, response,
+ new CMSException(LogMessages.UNAUTHORIZED.getStatus(), LogMessages.UNAUTHORIZED, ""));
+ }
}
}
diff --git a/cmso-service/src/main/java/org/onap/optf/cmso/aaf/AafFilter.java b/cmso-service/src/main/java/org/onap/optf/cmso/aaf/AafFilter.java
index 1bdebdd..586822f 100644
--- a/cmso-service/src/main/java/org/onap/optf/cmso/aaf/AafFilter.java
+++ b/cmso-service/src/main/java/org/onap/optf/cmso/aaf/AafFilter.java
@@ -1,33 +1,41 @@
-/**
- * ============LICENSE_START=======================================================
- * org.onap.optf.cmso
- * ================================================================================
- * Copyright © 2019 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
+/*******************************************************************************
+ * Copyright © 2019 AT&T Intellectual Property.
+ *
* 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
+ * 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=========================================================
- */
-package org.onap.optf.cmso.aaf;
+ *
+ *
+ * Unless otherwise specified, all documentation contained herein is licensed
+ * under the Creative Commons License, Attribution 4.0 Intl. (the "License");
+ * you may not use this documentation except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://creativecommons.org/licenses/by/4.0/
+ *
+ * Unless required by applicable law or agreed to in writing, documentation
+ * 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.
+ ******************************************************************************/
+package org.onap.optf.cmso.aaf;
import java.io.IOException;
import java.util.Properties;
-
import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
-
import org.onap.aaf.cadi.PropAccess;
import org.onap.aaf.cadi.filter.CadiFilter;
import org.onap.observations.Observation;
@@ -40,7 +48,7 @@ import org.springframework.context.annotation.Profile;
import org.springframework.stereotype.Component;
/**
- * AAF authentication filter
+ * AAF authentication filter.
*/
@Component
@@ -49,6 +57,12 @@ public class AafFilter extends OrderedRequestContextFilter {
private final CadiFilter cadiFilter;
+ /**
+ * Instantiates a new aaf filter.
+ *
+ * @throws IOException Signals that an I/O exception has occurred.
+ * @throws ServletException the servlet exception
+ */
public AafFilter() throws IOException, ServletException {
Properties cadiProperties = new Properties();
cadiProperties.load(Application.class.getClassLoader().getResourceAsStream("cadi.properties"));
@@ -57,13 +71,13 @@ public class AafFilter extends OrderedRequestContextFilter {
}
@Override
- protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws IOException, ServletException {
+ protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain)
+ throws IOException, ServletException {
cadiFilter.doFilter(request, response, filterChain);
- if(response.getStatus() ==401){
- Observation.report(LogMessages.UNAUTHENTICATED);
- ResponseFormatter.errorResponse(request, response,
- new CMSException(LogMessages.UNAUTHENTICATED.getStatus(),
- LogMessages.UNAUTHENTICATED, ""));
+ if (response.getStatus() == 401) {
+ Observation.report(LogMessages.UNAUTHENTICATED);
+ ResponseFormatter.errorResponse(request, response,
+ new CMSException(LogMessages.UNAUTHENTICATED.getStatus(), LogMessages.UNAUTHENTICATED, ""));
}
}
diff --git a/cmso-service/src/main/java/org/onap/optf/cmso/aaf/AafPerm.java b/cmso-service/src/main/java/org/onap/optf/cmso/aaf/AafPerm.java
index ea9d324..db58156 100644
--- a/cmso-service/src/main/java/org/onap/optf/cmso/aaf/AafPerm.java
+++ b/cmso-service/src/main/java/org/onap/optf/cmso/aaf/AafPerm.java
@@ -1,78 +1,137 @@
-/**
- * ============LICENSE_START=======================================================
- * org.onap.optf.cmso
- * ================================================================================
- * Copyright © 2019 AT&T Intellectual Property. 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
+/*******************************************************************************
+ * Copyright © 2019 AT&T Intellectual Property.
+ *
+ * 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.
+ *
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless otherwise specified, all documentation contained herein is licensed under the Creative
+ * Commons License, Attribution 4.0 Intl. (the "License"); you may not use this documentation except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * 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
+ * https://creativecommons.org/licenses/by/4.0/
+ *
+ * Unless required by applicable law or agreed to in writing, documentation 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=========================================================
- */
+ ******************************************************************************/
+
package org.onap.optf.cmso.aaf;
import java.util.HashSet;
import java.util.Set;
-
import org.onap.aaf.cadi.aaf.AAFPermission;
-public class AafPerm
-{
- private String type;
- private String instance;
- private String action;
- private Set<String> actions = new HashSet<>();
-
- public String getAction() {
- return action;
- }
- public void setAction(String action) {
- this.action = action;
- String list[] = action.split(",");
- for (String a : list)
- actions.add(a);
- }
- public String getType() {
- return type;
- }
- public void setType(String type) {
- this.type = type;
- }
- public String getInstance() {
- return instance;
- }
- public void setInstance(String instance) {
- this.instance = instance;
- }
-
- public Set<String> getActions() {
- return actions;
- }
- public void setActions(Set<String> actions) {
- this.actions = actions;
- }
- public boolean matches(AAFPermission userPerm)
- {
- if (type.equals(userPerm.getType()))
- {
- if (userPerm.getInstance().equals("*") || instance.equals("*") || userPerm.getInstance().equals(instance))
- {
- for (String userAction : userPerm.getAction().split(","))
- {
- if (userAction.equals("*") || actions.contains("*") || actions.contains(userAction))
- return true;
- }
- }
- }
- return false;
- }
+/**
+ * The Class AafPerm.
+ */
+public class AafPerm {
+ private String type;
+ private String instance;
+ private String action;
+ private Set<String> actions = new HashSet<>();
+
+ /**
+ * Gets the action.
+ *
+ * @return the action
+ */
+ public String getAction() {
+ return action;
+ }
+
+ /**
+ * Sets the action.
+ *
+ * @param action the new action
+ */
+ public void setAction(String action) {
+ this.action = action;
+ String[] list = action.split(",");
+ for (String a : list) {
+ actions.add(a);
+ }
+ }
+
+ /**
+ * Gets the type.
+ *
+ * @return the type
+ */
+ public String getType() {
+ return type;
+ }
+
+ /**
+ * Sets the type.
+ *
+ * @param type the new type
+ */
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ /**
+ * Gets the single instance of AafPerm.
+ *
+ * @return single instance of AafPerm
+ */
+ public String getInstance() {
+ return instance;
+ }
+
+ /**
+ * Sets the instance.
+ *
+ * @param instance the new instance
+ */
+ public void setInstance(String instance) {
+ this.instance = instance;
+ }
+
+ /**
+ * Gets the actions.
+ *
+ * @return the actions
+ */
+ public Set<String> getActions() {
+ return actions;
+ }
+
+ /**
+ * Sets the actions.
+ *
+ * @param actions the new actions
+ */
+ public void setActions(Set<String> actions) {
+ this.actions = actions;
+ }
+
+ /**
+ * Matches.
+ *
+ * @param userPerm the user perm
+ * @return true, if successful
+ */
+ public boolean matches(AAFPermission userPerm) {
+ if (type.equals(userPerm.getType())) {
+ if (userPerm.getInstance().equals("*") || instance.equals("*") || userPerm.getInstance().equals(instance)) {
+ for (String userAction : userPerm.getAction().split(",")) {
+ if (userAction.equals("*") || actions.contains("*") || actions.contains(userAction)) {
+ return true;
+ }
+ }
+ }
+ }
+ return false;
+ }
}
diff --git a/cmso-service/src/main/java/org/onap/optf/cmso/aaf/AafSecurityConfig.java b/cmso-service/src/main/java/org/onap/optf/cmso/aaf/AafSecurityConfig.java
index cb00a90..068e6c3 100644
--- a/cmso-service/src/main/java/org/onap/optf/cmso/aaf/AafSecurityConfig.java
+++ b/cmso-service/src/main/java/org/onap/optf/cmso/aaf/AafSecurityConfig.java
@@ -1,32 +1,33 @@
/*
* Copyright © 2019 AT&T Intellectual Property.
- *
+ *
* 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.
- *
- *
+ *
+ *
* Unless otherwise specified, all documentation contained herein is licensed
* under the Creative Commons License, Attribution 4.0 Intl. (the "License");
* you may not use this documentation except in compliance with the License.
* You may obtain a copy of the License at
- *
+ *
* https://creativecommons.org/licenses/by/4.0/
- *
+ *
* Unless required by applicable law or agreed to in writing, documentation
* 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.
*/
+
package org.onap.optf.cmso.aaf;
import org.onap.optf.cmso.SpringProfiles;
@@ -43,17 +44,17 @@ import org.springframework.security.config.annotation.web.configuration.WebSecur
@ComponentScan("org.onap.optf")
@Profile(SpringProfiles.AAF_AUTHENTICATION)
public class AafSecurityConfig extends WebSecurityConfigurerAdapter {
-
-
+
+
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
-
+
}
-
+
@Override
protected void configure(HttpSecurity http) throws Exception {
-
+
http.csrf().disable();
-
+
}
} \ No newline at end of file
diff --git a/cmso-service/src/main/java/org/onap/optf/cmso/aaf/AafUserRole.java b/cmso-service/src/main/java/org/onap/optf/cmso/aaf/AafUserRole.java
index 762cf3c..f9351b2 100644
--- a/cmso-service/src/main/java/org/onap/optf/cmso/aaf/AafUserRole.java
+++ b/cmso-service/src/main/java/org/onap/optf/cmso/aaf/AafUserRole.java
@@ -1,127 +1,177 @@
-/**
- * ============LICENSE_START=======================================================
- * org.onap.optf.cmso
- * ================================================================================
- * Copyright © 2019 AT&T Intellectual Property. 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
+/*******************************************************************************
+ * Copyright © 2019 AT&T Intellectual Property.
+ *
+ * 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.
+ *
+ *
+ * Unless otherwise specified, all documentation contained herein is licensed under the Creative
+ * Commons License, Attribution 4.0 Intl. (the "License"); you may not use this documentation except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * https://creativecommons.org/licenses/by/4.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
+ * Unless required by applicable law or agreed to in writing, documentation 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=========================================================
- */
+ ******************************************************************************/
+
package org.onap.optf.cmso.aaf;
import java.util.ArrayList;
import java.util.List;
-public class AafUserRole
-{
- private String url = "";
- private String pathParts[] = {};
- private String perm = "";
- private String method = "";
- private List<AafPerm> aafPerms = new ArrayList<>();
-
- public AafUserRole(String url, String perm)
- {
- this.setUrl(url);
- this.setPerm(perm);
- pathParts = url.split("\\/");
-
- String[] perms = perm.split(",");
- for (String p : perms)
- {
- String parts[] = p.split(" ");
- if (parts.length == 2)
- method = parts[1];
- else
- method = "ALL";
-
- String[] list = parts[0].split("\\|");
- if (list.length == 3)
- {
- AafPerm aafPerm = new AafPerm();
- aafPerm.setAction(list[2]);
- aafPerm.setInstance(list[1]);
- aafPerm.setType(list[0]);
- aafPerms.add(aafPerm);
- }
- }
- }
- public String getUrl() {
- return url;
- }
- public void setUrl(String url) {
- this.url = url;
- }
- public String getPerm() {
- return perm;
- }
- public void setPerm(String perm) {
- this.perm = perm;
- }
- public List<AafPerm> getAafPerms() {
- return aafPerms;
- }
- public void setAafPerms(List<AafPerm> aafPerms) {
- this.aafPerms = aafPerms;
- }
-
- public boolean matches(String path, String matchMethod)
- {
- if (!this.method.equalsIgnoreCase("ALL")
- && !this.method.equals("*")
- && !this.method.equals(matchMethod))
- return false;
- List<String> inNodes = new ArrayList<>();
- List<String> matchNodes = new ArrayList<>();
- String[] pathList = path.split("\\/");
- for (String n : pathList)
- {
- inNodes.add(n);
- }
- for (String n : pathParts)
- {
- matchNodes.add(n);
- }
-
- while (!inNodes.isEmpty() && !matchNodes.isEmpty())
- {
- String inNode = inNodes.remove(0);
- String matchNode = matchNodes.get(0);
- if (matchNode.equals(inNode) || matchNode.equals("*"))
- {
- matchNodes.remove(0);
- }
- else
- {
- if (!matchNode.equals("**"))
- {
- return false;
- }
- }
- }
-
- //
- if (inNodes.isEmpty() && matchNodes.isEmpty())
- return true;
-
- // We have incoming nodes remaining, see if we can wildcard them
- if (matchNodes.size() == 1)
- {
- if (matchNodes.get(0).equals("**"))
- return true;
- if (inNodes.size() == 1 && matchNodes.get(0).equals("*"))
- return true;
- }
- return false;
- }
+/**
+ * The Class AafUserRole.
+ */
+public class AafUserRole {
+ private String url = "";
+ private String pathParts[] = {};
+ private String perm = "";
+ private String method = "";
+ private List<AafPerm> aafPerms = new ArrayList<>();
+
+ /**
+ * Instantiates a new aaf user role.
+ *
+ * @param url the url
+ * @param perm the perm
+ */
+ public AafUserRole(String url, String perm) {
+ this.setUrl(url);
+ this.setPerm(perm);
+ pathParts = url.split("\\/");
+
+ String[] perms = perm.split(",");
+ for (String p : perms) {
+ String[] parts = p.split(" ");
+ if (parts.length == 2) {
+ method = parts[1];
+ }
+ else {
+ method = "ALL";
+ }
+
+ String[] list = parts[0].split("\\|");
+ if (list.length == 3) {
+ AafPerm aafPerm = new AafPerm();
+ aafPerm.setAction(list[2]);
+ aafPerm.setInstance(list[1]);
+ aafPerm.setType(list[0]);
+ aafPerms.add(aafPerm);
+ }
+ }
+ }
+
+ /**
+ * Gets the url.
+ *
+ * @return the url
+ */
+ public String getUrl() {
+ return url;
+ }
+
+ /**
+ * Sets the url.
+ *
+ * @param url the new url
+ */
+ public void setUrl(String url) {
+ this.url = url;
+ }
+
+ /**
+ * Gets the perm.
+ *
+ * @return the perm
+ */
+ public String getPerm() {
+ return perm;
+ }
+
+ /**
+ * Sets the perm.
+ *
+ * @param perm the new perm
+ */
+ public void setPerm(String perm) {
+ this.perm = perm;
+ }
+
+ /**
+ * Gets the aaf perms.
+ *
+ * @return the aaf perms
+ */
+ public List<AafPerm> getAafPerms() {
+ return aafPerms;
+ }
+
+ /**
+ * Sets the aaf perms.
+ *
+ * @param aafPerms the new aaf perms
+ */
+ public void setAafPerms(List<AafPerm> aafPerms) {
+ this.aafPerms = aafPerms;
+ }
+
+ /**
+ * Matches.
+ *
+ * @param path the path
+ * @param matchMethod the match method
+ * @return true, if successful
+ */
+ public boolean matches(String path, String matchMethod) {
+ if (!this.method.equalsIgnoreCase("ALL") && !this.method.equals("*") && !this.method.equals(matchMethod)) {
+ return false;
+ }
+ List<String> inNodes = new ArrayList<>();
+ List<String> matchNodes = new ArrayList<>();
+ String[] pathList = path.split("\\/");
+ for (String n : pathList) {
+ inNodes.add(n);
+ }
+ for (String n : pathParts) {
+ matchNodes.add(n);
+ }
+
+ while (!inNodes.isEmpty() && !matchNodes.isEmpty()) {
+ String inNode = inNodes.remove(0);
+ String matchNode = matchNodes.get(0);
+ if (matchNode.equals(inNode) || matchNode.equals("*")) {
+ matchNodes.remove(0);
+ } else {
+ if (!matchNode.equals("**")) {
+ return false;
+ }
+ }
+ }
+
+ //
+ if (inNodes.isEmpty() && matchNodes.isEmpty()) {
+ return true;
+ }
+
+ // We have incoming nodes remaining, see if we can wildcard them
+ if (matchNodes.size() == 1) {
+ if (matchNodes.get(0).equals("**")) {
+ return true;
+ }
+ if (inNodes.size() == 1 && matchNodes.get(0).equals("*")) {
+ return true;
+ }
+ }
+ return false;
+ }
}
diff --git a/cmso-service/src/main/java/org/onap/optf/cmso/aaf/AafUserRoleProperties.java b/cmso-service/src/main/java/org/onap/optf/cmso/aaf/AafUserRoleProperties.java
index 7a7598d..d9a419d 100644
--- a/cmso-service/src/main/java/org/onap/optf/cmso/aaf/AafUserRoleProperties.java
+++ b/cmso-service/src/main/java/org/onap/optf/cmso/aaf/AafUserRoleProperties.java
@@ -1,33 +1,43 @@
-/**
- * ============LICENSE_START=======================================================
- * org.onap.optf.cmso
- * ================================================================================
- * Copyright © 2019 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
+/*******************************************************************************
+ * Copyright © 2019 AT&T Intellectual Property.
+ *
* 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
+ * 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=========================================================
- */
+ *
+ *
+ * Unless otherwise specified, all documentation contained herein is licensed
+ * under the Creative Commons License, Attribution 4.0 Intl. (the "License");
+ * you may not use this documentation except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://creativecommons.org/licenses/by/4.0/
+ *
+ * Unless required by applicable law or agreed to in writing, documentation
+ * 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.
+ ******************************************************************************/
+
package org.onap.optf.cmso.aaf;
+import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.File;
import java.io.FileInputStream;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;
-
import javax.annotation.PostConstruct;
import javax.servlet.http.HttpServletRequest;
-
import org.onap.aaf.cadi.Permission;
import org.onap.aaf.cadi.aaf.AAFPermission;
import org.onap.observations.Observation;
@@ -38,91 +48,92 @@ import org.springframework.context.annotation.Profile;
import org.springframework.core.env.Environment;
import org.springframework.stereotype.Component;
-import com.fasterxml.jackson.databind.ObjectMapper;
/**
- *
- * This class uses a properties file to map URL patterns/method to AAF Permissions (AafPerm)
+ * This class uses a properties file to map URL patterns/method to AAF Permissions (AafPerm).
+ *
* @author jf9860
*
*/
@Component
@Profile(SpringProfiles.AAF_AUTHENTICATION)
-public class AafUserRoleProperties
-{
- @Autowired
- Environment env;
-
- private List<AafUserRole> list = new ArrayList<>();
-
- @PostConstruct
- public void initializePermissions()
- {
- String userRolePropertiesName = env.getProperty("aaf.user.roles", "src/main/resources/aaf/AAFUserRoles.properties");
- Properties props = new Properties();
- try
- {
- props.load(new FileInputStream(new File(userRolePropertiesName)));
- }
- catch (Exception e)
- {
- Observation.report(LogMessages.UNEXPECTED_EXCEPTION, e, e.getMessage());
- }
- for (Object url : props.keySet())
- {
- Object value = props.get(url);
- list.add(new AafUserRole((String)url, (String)value));
- }
- }
+public class AafUserRoleProperties {
+ @Autowired
+ Environment env;
+
+ private List<AafUserRole> list = new ArrayList<>();
+
+ /**
+ * Initialize permissions.
+ */
+ @PostConstruct
+ public void initializePermissions() {
+ String userRolePropertiesName =
+ env.getProperty("aaf.user.roles", "src/main/resources/aaf/AAFUserRoles.properties");
+ Properties props = new Properties();
+ try {
+ props.load(new FileInputStream(new File(userRolePropertiesName)));
+ } catch (Exception e) {
+ Observation.report(LogMessages.UNEXPECTED_EXCEPTION, e, e.getMessage());
+ }
+ for (Object url : props.keySet()) {
+ Object value = props.get(url);
+ list.add(new AafUserRole((String) url, (String) value));
+ }
+ }
+
+ /**
+ * Gets the for url method.
+ *
+ * @param url the url
+ * @param method the method
+ * @return the for url method
+ */
+ public List<AafUserRole> getForUrlMethod(String url, String method) {
+ List<AafUserRole> userRoleList = new ArrayList<>();
+ for (AafUserRole aur : list) {
+ if (aur.matches(url, method)) {
+ userRoleList.add(aur);
+ }
+ }
+ return userRoleList;
+ }
- public List<AafUserRole> getForUrlMethod(String url, String method)
- {
- List<AafUserRole> userRoleList = new ArrayList<>();
- for (AafUserRole aur : list)
- {
- if (aur.matches(url, method))
- {
- userRoleList.add(aur);
- }
- }
- return userRoleList;
- }
+ /**
+ * Process permissions.
+ *
+ * @param request the request
+ * @param userPerms the user perms
+ * @return true, if successful
+ */
+ public boolean processPermissions(HttpServletRequest request, List<Permission> userPerms) {
+ try {
+ // Get list of perms that match incoming URL. May be more than 1...
+ // Users perms must match all that match URL
+ List<AafUserRole> perms = getForUrlMethod(request.getRequestURI(), request.getMethod());
+ int tested = 0;
+ int passed = 0;
+ for (AafUserRole perm : perms) {
+ for (AafPerm test : perm.getAafPerms()) {
+ tested++;
+ for (Permission userPerm : userPerms) {
- public boolean processPermissions(HttpServletRequest request, List<Permission> userPerms)
- {
- try
- {
- // Get list of perms that match incoming URL. May be more than 1...
- // Users perms must match all that match URL
- List<AafUserRole> perms = getForUrlMethod(request.getRequestURI(), request.getMethod());
- ObjectMapper om = new ObjectMapper();
- int tested = 0;
- int passed = 0;
- for (AafUserRole perm : perms)
- {
- for (AafPerm test : perm.getAafPerms())
- {
- tested++;
- for (Permission userPerm: userPerms)
- {
-
- if (test.matches((AAFPermission)userPerm))
- {
- passed++;
- break;
- }
- }
- }
- }
- // All permissions must be OK
- if (tested > 0 && tested == passed)
- return true;
- else
- return false;
- }
- catch (Exception e)
- {
- Observation.report(LogMessages.UNEXPECTED_EXCEPTION, e, e.getMessage());
- }
- return false;
- }
+ if (test.matches((AAFPermission) userPerm)) {
+ passed++;
+ break;
+ }
+ }
+ }
+ }
+ // All permissions must be OK
+ if (tested > 0 && tested == passed) {
+ return true;
+ }
+ else {
+ return false;
+ }
+ } catch (Exception e) {
+ Observation.report(LogMessages.UNEXPECTED_EXCEPTION, e, e.getMessage());
+ }
+ return false;
+ }
}
diff --git a/cmso-service/src/main/java/org/onap/optf/cmso/aaf/FilterPriority.java b/cmso-service/src/main/java/org/onap/optf/cmso/aaf/FilterPriority.java
index 39981c7..e973a4f 100644
--- a/cmso-service/src/main/java/org/onap/optf/cmso/aaf/FilterPriority.java
+++ b/cmso-service/src/main/java/org/onap/optf/cmso/aaf/FilterPriority.java
@@ -1,35 +1,46 @@
-/**
- * ============LICENSE_START=======================================================
- * org.onap.optf.cmso
- * ================================================================================
- * Copyright © 2019 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
+/*******************************************************************************
+ * Copyright © 2019 AT&T Intellectual Property.
+ *
* 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
+ * 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=========================================================
- */
+ *
+ *
+ * Unless otherwise specified, all documentation contained herein is licensed
+ * under the Creative Commons License, Attribution 4.0 Intl. (the "License");
+ * you may not use this documentation except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://creativecommons.org/licenses/by/4.0/
+ *
+ * Unless required by applicable law or agreed to in writing, documentation
+ * 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.
+ ******************************************************************************/
+
package org.onap.optf.cmso.aaf;
import org.springframework.core.Ordered;
public enum FilterPriority {
- AAF_AUTHENTICATION(Ordered.HIGHEST_PRECEDENCE),
- AAF_AUTHORIZATION(Ordered.HIGHEST_PRECEDENCE + 1); //higher number = lower priority
-
+ AAF_AUTHENTICATION(Ordered.HIGHEST_PRECEDENCE), AAF_AUTHORIZATION(Ordered.HIGHEST_PRECEDENCE + 1);
private final int priority;
- FilterPriority(final int p) {
- priority = p;
+ FilterPriority(final int ppri) {
+ priority = ppri;
}
- public int getPriority() { return priority; }
+ public int getPriority() {
+ return priority;
+ }
}
diff --git a/cmso-service/src/main/java/org/onap/optf/cmso/aaf/ResponseFormatter.java b/cmso-service/src/main/java/org/onap/optf/cmso/aaf/ResponseFormatter.java
index 769262b..e7ddcdf 100644
--- a/cmso-service/src/main/java/org/onap/optf/cmso/aaf/ResponseFormatter.java
+++ b/cmso-service/src/main/java/org/onap/optf/cmso/aaf/ResponseFormatter.java
@@ -1,38 +1,45 @@
-/**
- * ============LICENSE_START=======================================================
- * org.onap.optf.cmso
- * ================================================================================
- * Copyright © 2019 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
+/*******************************************************************************
+ * Copyright © 2019 AT&T Intellectual Property.
+ *
* 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
+ * 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=========================================================
- */
+ *
+ *
+ * Unless otherwise specified, all documentation contained herein is licensed
+ * under the Creative Commons License, Attribution 4.0 Intl. (the "License");
+ * you may not use this documentation except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://creativecommons.org/licenses/by/4.0/
+ *
+ * Unless required by applicable law or agreed to in writing, documentation
+ * 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.
+ ******************************************************************************/
+
package org.onap.optf.cmso.aaf;
import java.io.IOException;
-
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
-import javax.ws.rs.core.MediaType;
-
import org.onap.optf.cmso.common.exceptions.CMSException;
class ResponseFormatter {
- private static final String ACCEPT_HEADER = "accept";
- static void errorResponse(HttpServletRequest request, HttpServletResponse response, CMSException error) throws IOException {
- String accept = request.getHeader(ACCEPT_HEADER) == null ? MediaType.APPLICATION_JSON : request.getHeader(ACCEPT_HEADER);
+ static void errorResponse(HttpServletRequest request, HttpServletResponse response, CMSException error)
+ throws IOException {
response.setStatus(error.getStatus().getStatusCode());
response.getWriter().write(error.getRequestError().toString());
response.getWriter().flush();
diff --git a/cmso-service/src/main/java/org/onap/optf/cmso/common/ApprovalStatusEnum.java b/cmso-service/src/main/java/org/onap/optf/cmso/common/ApprovalStatusEnum.java
index 0069f26..db48437 100644
--- a/cmso-service/src/main/java/org/onap/optf/cmso/common/ApprovalStatusEnum.java
+++ b/cmso-service/src/main/java/org/onap/optf/cmso/common/ApprovalStatusEnum.java
@@ -1,36 +1,34 @@
/*
- * Copyright © 2017-2018 AT&T Intellectual Property.
- * Modifications Copyright © 2018 IBM.
- *
- * 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
+ * Copyright � 2017-2018 AT&T Intellectual Property. Modifications Copyright � 2018 IBM.
+ *
+ * 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.
+ *
+ *
+ * Unless otherwise specified, all documentation contained herein is licensed under the Creative
+ * Commons License, Attribution 4.0 Intl. (the "License"); you may not use this documentation except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * https://creativecommons.org/licenses/by/4.0/
+ *
+ * Unless required by applicable law or agreed to in writing, documentation 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.
- *
- *
- * Unless otherwise specified, all documentation contained herein is licensed
- * under the Creative Commons License, Attribution 4.0 Intl. (the "License");
- * you may not use this documentation except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://creativecommons.org/licenses/by/4.0/
- *
- * Unless required by applicable law or agreed to in writing, documentation
- * 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.
-*/
+ */
package org.onap.optf.cmso.common;
+/**
+ * The Enum ApprovalStatusEnum.
+ */
public enum ApprovalStatusEnum {
Accepted("Accepted"), Rejected("Rejected"),;
@@ -40,6 +38,12 @@ public enum ApprovalStatusEnum {
this.text = text;
}
+ /**
+ * To string.
+ *
+ * @return the string
+ */
+ @Override
public String toString() {
return text;
}
diff --git a/cmso-service/src/main/java/org/onap/optf/cmso/common/ApprovalTypesEnum.java b/cmso-service/src/main/java/org/onap/optf/cmso/common/ApprovalTypesEnum.java
index 927dbf1..97e33d5 100644
--- a/cmso-service/src/main/java/org/onap/optf/cmso/common/ApprovalTypesEnum.java
+++ b/cmso-service/src/main/java/org/onap/optf/cmso/common/ApprovalTypesEnum.java
@@ -1,33 +1,28 @@
/*
- * Copyright © 2017-2018 AT&T Intellectual Property.
- * Modifications Copyright © 2018 IBM.
- *
- * 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
+ * Copyright � 2017-2018 AT&T Intellectual Property. Modifications Copyright � 2018 IBM.
+ *
+ * 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.
+ *
+ *
+ * Unless otherwise specified, all documentation contained herein is licensed under the Creative
+ * Commons License, Attribution 4.0 Intl. (the "License"); you may not use this documentation except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * https://creativecommons.org/licenses/by/4.0/
+ *
+ * Unless required by applicable law or agreed to in writing, documentation 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.
- *
- *
- * Unless otherwise specified, all documentation contained herein is licensed
- * under the Creative Commons License, Attribution 4.0 Intl. (the "License");
- * you may not use this documentation except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://creativecommons.org/licenses/by/4.0/
- *
- * Unless required by applicable law or agreed to in writing, documentation
- * 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.
-*/
+ */
package org.onap.optf.cmso.common;
@@ -40,6 +35,7 @@ public enum ApprovalTypesEnum {
this.text = text;
}
+ @Override
public String toString() {
return text;
}
diff --git a/cmso-service/src/main/java/org/onap/optf/cmso/common/CMSStatusEnum.java b/cmso-service/src/main/java/org/onap/optf/cmso/common/CMSStatusEnum.java
index de1e701..5b0a539 100644
--- a/cmso-service/src/main/java/org/onap/optf/cmso/common/CMSStatusEnum.java
+++ b/cmso-service/src/main/java/org/onap/optf/cmso/common/CMSStatusEnum.java
@@ -1,102 +1,95 @@
/*
- * Copyright © 2017-2018 AT&T Intellectual Property.
- * Modifications Copyright © 2018 IBM.
- *
+ * Copyright © 2017-2018 AT&T Intellectual Property.
+ * Modifications Copyright © 2018 IBM.
+ *
* 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.
- *
- *
+ *
+ *
* Unless otherwise specified, all documentation contained herein is licensed
* under the Creative Commons License, Attribution 4.0 Intl. (the "License");
* you may not use this documentation except in compliance with the License.
* You may obtain a copy of the License at
- *
+ *
* https://creativecommons.org/licenses/by/4.0/
- *
+ *
* Unless required by applicable law or agreed to in writing, documentation
* 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.
-*/
+ */
package org.onap.optf.cmso.common;
public enum CMSStatusEnum {
- PendingSchedule("Pending Schedule",
- "Schedule request as been accepted. Pending determination of recommended schedule."), SchedulingFailed(
- "Scheduling Failed", "Failed to determine recommended schedule."), ScheduleFailed("Schedule Failed",
- "Determination of recommended schedule failed."), OptimizationInProgress(
- "Optimization In Progress",
- "Determination of recommended schedule is in progress."), PendingApproval(
- "Pending Approval",
- "Pending approval of the recommended schedule."), OptimizationFailed(
- "Optimization Failed",
- "Unable to determine recommended schedule."), Accepted("Accepted",
- "Recommended schedule has been accepted."), Scheduled(
- "Scheduled",
- "All approvals received. Recommended schedule is pending execution."), ScheduledImmediate(
- "Scheduled Immediate",
- "All approvals received. Event is scheduled for immediate execution."), Triggered(
- "Triggered",
- "Scheduled event has been triggered."), ApprovalRejected(
- "Approval Rejected",
- "Recommended schedule has been rejected."), PastDue(
- "Past due",
- "Scheduled event time has passed. Queued event was not dispatched."), Error(
- "Error",
- "Attempt to displatch event failed."), Failed(
- "Failed",
- "Triggered event reported a failure."), Rejected(
- "Rejected",
- "Recommended schedule has been rejected."), NotificationsInitiated(
- "Notifications Initiated",
- "Notifications of scheduled events has been initiated."), Completed(
- "Completed",
- "Notification of all scheduled events have been sent."), CompletedWithError(
- "Completed with error(s)",
- "All scheduled events have completed, some with errors."), Deleted(
- "Deleted",
- "Schedule deleted prior to acceptance or after execution."), Cancelled(
- "Cancelled",
- "Scheduled event cancelled before execution."),;
+ PendingSchedule(
+ "Pending Schedule",
+ "Schedule request as been accepted. Pending determination of recommended schedule."),
+ SchedulingFailed("Scheduling Failed", "Failed to determine recommended schedule."),
+ ScheduleFailed("Schedule Failed", "Determination of recommended schedule failed."),
+ OptimizationInProgress(
+ "Optimization In Progress", "Determination of recommended schedule is in progress."),
+ PendingApproval("Pending Approval", "Pending approval of the recommended schedule."),
+ OptimizationFailed("Optimization Failed", "Unable to determine recommended schedule."),
+ Accepted("Accepted", "Recommended schedule has been accepted."),
+ Scheduled("Scheduled", "All approvals received. Recommended schedule is pending execution."),
+ ScheduledImmediate(
+ "Scheduled Immediate", "All approvals received. Event is scheduled for immediate execution."),
+ Triggered("Triggered", "Scheduled event has been triggered."),
+ ApprovalRejected("Approval Rejected", "Recommended schedule has been rejected."),
+ PastDue("Past due", "Scheduled event time has passed. Queued event was not dispatched."),
+ Error("Error", "Attempt to displatch event failed."),
+ Failed("Failed", "Triggered event reported a failure."),
+ Rejected("Rejected", "Recommended schedule has been rejected."),
+ NotificationsInitiated(
+ "Notifications Initiated", "Notifications of scheduled events has been initiated."),
+ Completed("Completed", "Notification of all scheduled events have been sent."),
+ CompletedWithError(
+ "Completed with error(s)", "All scheduled events have completed, some with errors."),
+ Deleted("Deleted", "Schedule deleted prior to acceptance or after execution."),
+ Cancelled("Cancelled", "Scheduled event cancelled before execution."),
+ NotScheduled("Not scheduled by optimizer", "Element not included in the schedule by optimizer."),
+ ;
- private final String text;
- private final String description;
+ private final String text;
+ private final String description;
- private CMSStatusEnum(String text, String description) {
- this.text = text;
- this.description = description;
- }
+ private CMSStatusEnum(String text, String description) {
+ this.text = text;
+ this.description = description;
+ }
- public String toString() {
- return text;
- }
+ @Override
+ public String toString() {
+ return text;
+ }
- public CMSStatusEnum fromString(String text) {
- for (CMSStatusEnum e : CMSStatusEnum.values())
- if (e.text.equals(text))
- return e;
- return null;
- }
-
- // To include in the AID.
- public static void main(String argv[]) {
- StringBuilder sb = new StringBuilder();
- sb.append("<html><body><table border=\"1\">\n");
- for (CMSStatusEnum v : CMSStatusEnum.values())
- sb.append("<tr><td>").append(v.text).append("</td><td>").append(v.description).append("</td></tr>\n");
- sb.append("</table></body></html>\n");
- System.out.println(sb.toString());
- }
+ public CMSStatusEnum fromString(String text) {
+ for (CMSStatusEnum e : CMSStatusEnum.values()) if (e.text.equals(text)) return e;
+ return null;
+ }
+ // To include in the AID.
+ public static void main(String argv[]) {
+ StringBuilder sb = new StringBuilder();
+ sb.append("<html><body><table border=\"1\">\n");
+ for (CMSStatusEnum v : CMSStatusEnum.values())
+ sb.append("<tr><td>")
+ .append(v.text)
+ .append("</td><td>")
+ .append(v.description)
+ .append("</td></tr>\n");
+ sb.append("</table></body></html>\n");
+ System.out.println(sb.toString());
+ }
}