aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/main/java/org/onap/clamp/clds/config/CldsSecurityConfigUsers.java48
-rw-r--r--src/main/java/org/onap/clamp/clds/exception/CldsUsersException.java61
2 files changed, 92 insertions, 17 deletions
diff --git a/src/main/java/org/onap/clamp/clds/config/CldsSecurityConfigUsers.java b/src/main/java/org/onap/clamp/clds/config/CldsSecurityConfigUsers.java
index a187ac556..09078f07d 100644
--- a/src/main/java/org/onap/clamp/clds/config/CldsSecurityConfigUsers.java
+++ b/src/main/java/org/onap/clamp/clds/config/CldsSecurityConfigUsers.java
@@ -23,6 +23,12 @@
package org.onap.clamp.clds.config;
+import com.att.eelf.configuration.EELFLogger;
+import com.att.eelf.configuration.EELFManager;
+
+import java.io.IOException;
+
+import org.onap.clamp.clds.exception.CldsUsersException;
import org.onap.clamp.clds.service.CldsUser;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
@@ -34,9 +40,6 @@ import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
-import com.att.eelf.configuration.EELFLogger;
-import com.att.eelf.configuration.EELFManager;
-
/**
* This class is used to enable the HTTP authentication to login. It requires a
* specific JSON file containing the user definition
@@ -68,9 +71,14 @@ public class CldsSecurityConfigUsers extends WebSecurityConfigurerAdapter {
* This method configures on which URL the authorization will be enabled.
*/
@Override
- protected void configure(HttpSecurity http) throws Exception {
- http.csrf().disable().httpBasic().and().authorizeRequests().antMatchers("/restservices/clds/v1/user/**")
- .authenticated().anyRequest().permitAll().and().logout();
+ protected void configure(HttpSecurity http) {
+ try {
+ http.csrf().disable().httpBasic().and().authorizeRequests().antMatchers("/restservices/clds/v1/user/**")
+ .authenticated().anyRequest().permitAll().and().logout();
+ } catch (Exception e) {
+ logger.error("Exception occurred during the setup of the Web users in memory", e);
+ throw new CldsUsersException("Exception occurred during the setup of the Web users in memory", e);
+ }
}
/**
@@ -82,18 +90,23 @@ public class CldsSecurityConfigUsers extends WebSecurityConfigurerAdapter {
* @throws Exception
*/
@Autowired
- public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
- CldsUser[] usersList = loadUsers();
+ public void configureGlobal(AuthenticationManagerBuilder auth) {
+ try {
+ CldsUser[] usersList = loadUsers();
- // no users defined
- if (null == usersList) {
- logger.warn("No users defined. Users should be defined under " + cldsUsersFile);
- return;
- }
+ // no users defined
+ if (null == usersList) {
+ logger.warn("No users defined. Users should be defined under " + cldsUsersFile);
+ return;
+ }
- for (CldsUser user : usersList) {
- auth.inMemoryAuthentication().withUser(user.getUser()).password(user.getPassword())
- .roles(user.getPermissionsString());
+ for (CldsUser user : usersList) {
+ auth.inMemoryAuthentication().withUser(user.getUser()).password(user.getPassword())
+ .roles(user.getPermissionsString());
+ }
+ } catch (Exception e) {
+ logger.error("Exception occurred during the setup of the Web users in memory", e);
+ throw new CldsUsersException("Exception occurred during the setup of the Web users in memory", e);
}
}
@@ -102,9 +115,10 @@ public class CldsSecurityConfigUsers extends WebSecurityConfigurerAdapter {
* CldsUser.
*
* @return The array of CldsUser
+ * @throws IOException
* @throws Exception
*/
- private CldsUser[] loadUsers() throws Exception {
+ private CldsUser[] loadUsers() throws IOException {
logger.info("Load from clds-users.properties");
return CldsUserJsonDecoder.decodeJson(appContext.getResource(cldsUsersFile).getInputStream());
}
diff --git a/src/main/java/org/onap/clamp/clds/exception/CldsUsersException.java b/src/main/java/org/onap/clamp/clds/exception/CldsUsersException.java
new file mode 100644
index 000000000..27945bf18
--- /dev/null
+++ b/src/main/java/org/onap/clamp/clds/exception/CldsUsersException.java
@@ -0,0 +1,61 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP CLAMP
+ * ================================================================================
+ * Copyright (C) 2017 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
+ *
+ * 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 is a trademark and service mark of AT&T Intellectual Property.
+ */
+
+package org.onap.clamp.clds.exception;
+
+/**
+ * New exception to CldsUser errors.
+ *
+ */
+public class CldsUsersException extends RuntimeException {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 933535057227505342L;
+
+ /**
+ * This constructor can be used to create a new CldsUsersException.
+ *
+ * @param message
+ * A string message detailing the problem
+ * @param e
+ * The exception sent by the code
+ */
+ public CldsUsersException(String message, Throwable e) {
+ super(message, e);
+ }
+
+ /**
+ * This constructor can be used to create a new CldsUsersException. Use this
+ * constructor only if you are creating a new exception stack, not if an
+ * exception was already raised by another code.
+ *
+ * @param message
+ * A string message detailing the problem
+ */
+ public CldsUsersException(String message) {
+ super(message);
+ }
+
+}