Fix Sonar bugs 19/9419/1
authorDeterme, Sebastien (sd378r) <sd378r@intl.att.com>
Wed, 30 Aug 2017 12:53:07 +0000 (05:53 -0700)
committerDeterme, Sebastien (sd378r) <sd378r@intl.att.com>
Wed, 30 Aug 2017 12:53:07 +0000 (05:53 -0700)
In CldsSecurityConfigUsers.class Blocker issues fixed

Change-Id: I3eb90ff986786ab76c767158e5aae3f1bbe0bdeb
Issue-Id: CLAMP-43
Signed-off-by: Determe, Sebastien (sd378r) <sd378r@intl.att.com>
src/main/java/org/onap/clamp/clds/config/CldsSecurityConfigUsers.java
src/main/java/org/onap/clamp/clds/exception/CldsUsersException.java [new file with mode: 0644]

index a187ac5..09078f0 100644 (file)
 
 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 (file)
index 0000000..27945bf
--- /dev/null
@@ -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);
+    }
+
+}