From 17574cc3393e5aa4d4dbd7a4a72cfb9b32708c52 Mon Sep 17 00:00:00 2001
From: wbars <wbs@kereval.com>
Date: Fri, 4 Sep 2020 11:14:57 +0200
Subject: [PATCH] IUAINFRA-53 | Fix sonar code smells

---
 .../business/AsymmetricSignature.java              |  4 ++--
 .../business/Credential.java                       |  2 +-
 .../accesstokenproviderapi/business/Password.java  |  6 +++---
 .../accesstokenproviderapi/business/PublicKey.java |  6 +++---
 .../business/testuser/TestUser.java                | 14 +++++---------
 5 files changed, 14 insertions(+), 18 deletions(-)

diff --git a/access-token-provider-api/src/main/java/net/ihe/gazelle/app/accesstokenproviderapi/business/AsymmetricSignature.java b/access-token-provider-api/src/main/java/net/ihe/gazelle/app/accesstokenproviderapi/business/AsymmetricSignature.java
index d3f3020..93cb4a3 100644
--- a/access-token-provider-api/src/main/java/net/ihe/gazelle/app/accesstokenproviderapi/business/AsymmetricSignature.java
+++ b/access-token-provider-api/src/main/java/net/ihe/gazelle/app/accesstokenproviderapi/business/AsymmetricSignature.java
@@ -15,7 +15,7 @@ public class AsymmetricSignature extends Signature {
      */
     public AsymmetricSignature(String algorithm, byte[] privateKey, String privateKeyPassword) {
         super(algorithm);
-        this.privateKey = privateKey;
+        this.privateKey = privateKey.clone();
         this.privateKeyPassword = privateKeyPassword;
     }
 
@@ -24,7 +24,7 @@ public class AsymmetricSignature extends Signature {
      * @return privateKey
      */
     public byte[] getPrivateKey() {
-        return privateKey;
+        return privateKey.clone();
     }
 
     /**
diff --git a/access-token-provider-api/src/main/java/net/ihe/gazelle/app/accesstokenproviderapi/business/Credential.java b/access-token-provider-api/src/main/java/net/ihe/gazelle/app/accesstokenproviderapi/business/Credential.java
index cb7789c..3e26d29 100644
--- a/access-token-provider-api/src/main/java/net/ihe/gazelle/app/accesstokenproviderapi/business/Credential.java
+++ b/access-token-provider-api/src/main/java/net/ihe/gazelle/app/accesstokenproviderapi/business/Credential.java
@@ -3,5 +3,5 @@ package net.ihe.gazelle.app.accesstokenproviderapi.business;
 /**
  * Credential for an audience
  */
-public abstract class Credential {
+public interface Credential {
 }
diff --git a/access-token-provider-api/src/main/java/net/ihe/gazelle/app/accesstokenproviderapi/business/Password.java b/access-token-provider-api/src/main/java/net/ihe/gazelle/app/accesstokenproviderapi/business/Password.java
index 7123a18..c0143af 100644
--- a/access-token-provider-api/src/main/java/net/ihe/gazelle/app/accesstokenproviderapi/business/Password.java
+++ b/access-token-provider-api/src/main/java/net/ihe/gazelle/app/accesstokenproviderapi/business/Password.java
@@ -5,7 +5,7 @@ import java.util.Arrays;
 /**
  * A password
  */
-public class Password extends Credential {
+public class Password implements Credential {
 
     private byte[] value;
 
@@ -13,7 +13,7 @@ public class Password extends Credential {
      * constructor
      */
     public Password(byte[] value) {
-        this.value = value;
+        this.value = value.clone();
     }
 
     /**
@@ -21,7 +21,7 @@ public class Password extends Credential {
      * @return value
      */
     public byte[] getValue() {
-        return value;
+        return value.clone();
     }
 
     @Override
diff --git a/access-token-provider-api/src/main/java/net/ihe/gazelle/app/accesstokenproviderapi/business/PublicKey.java b/access-token-provider-api/src/main/java/net/ihe/gazelle/app/accesstokenproviderapi/business/PublicKey.java
index 2803b5b..2ba2fe7 100644
--- a/access-token-provider-api/src/main/java/net/ihe/gazelle/app/accesstokenproviderapi/business/PublicKey.java
+++ b/access-token-provider-api/src/main/java/net/ihe/gazelle/app/accesstokenproviderapi/business/PublicKey.java
@@ -5,14 +5,14 @@ import java.util.Arrays;
 /**
  * A public key
  */
-public class PublicKey extends Credential {
+public class PublicKey implements Credential {
     private byte[] key;
 
     /**
      * constructor
      */
     public PublicKey(byte[] key) {
-        this.key = key;
+        this.key = key.clone();
     }
 
     /**
@@ -20,7 +20,7 @@ public class PublicKey extends Credential {
      * @return key
      */
     public byte[] getKey() {
-        return key;
+        return key.clone();
     }
 
     @Override
diff --git a/access-token-provider-api/src/main/java/net/ihe/gazelle/app/accesstokenproviderapi/business/testuser/TestUser.java b/access-token-provider-api/src/main/java/net/ihe/gazelle/app/accesstokenproviderapi/business/testuser/TestUser.java
index 321d4ea..2585df3 100644
--- a/access-token-provider-api/src/main/java/net/ihe/gazelle/app/accesstokenproviderapi/business/testuser/TestUser.java
+++ b/access-token-provider-api/src/main/java/net/ihe/gazelle/app/accesstokenproviderapi/business/testuser/TestUser.java
@@ -1,10 +1,6 @@
 package net.ihe.gazelle.app.accesstokenproviderapi.business.testuser;
 
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 /**
  * Test user used for authentication and token content
@@ -14,8 +10,8 @@ public class TestUser {
     private String userId;
     private List<String> givenNames = new ArrayList<>();
     private String lastName;
-    private Date birthDate; //fixme Date ?
-    private String gender; //fixme String ?
+    private Date birthDate;
+    private String gender;
     private Map<String, String> extensions = new HashMap<>();
 
     /**
@@ -56,7 +52,7 @@ public class TestUser {
      * @return birthDate
      */
     public Date getBirthDate() {
-        return birthDate;
+        return (Date) birthDate.clone();
     }
 
     /**
@@ -65,7 +61,7 @@ public class TestUser {
      * @param birthDate the birthDate
      */
     public void setBirthDate(Date birthDate) {
-        this.birthDate = birthDate;
+        this.birthDate = (Date) birthDate.clone();
     }
 
     /**
-- 
GitLab