Added more fixes for missing exceptions in JsonUtils.
Change-Id: I7c4bd43aa23b6041dbc837c9d025a3cf13b9de25
diff --git a/core/src/main/java/de/ids_mannheim/korap/config/ClientInfo.java b/core/src/main/java/de/ids_mannheim/korap/config/ClientInfo.java
index 5344b98..bf98fe9 100644
--- a/core/src/main/java/de/ids_mannheim/korap/config/ClientInfo.java
+++ b/core/src/main/java/de/ids_mannheim/korap/config/ClientInfo.java
@@ -1,6 +1,8 @@
package de.ids_mannheim.korap.config;
import com.fasterxml.jackson.databind.node.ObjectNode;
+
+import de.ids_mannheim.korap.exceptions.KustvaktException;
import de.ids_mannheim.korap.utils.JsonUtils;
import lombok.Data;
@@ -28,7 +30,7 @@
}
- public String toJSON () {
+ public String toJSON () throws KustvaktException {
ObjectNode node = JsonUtils.createObjectNode();
node.put("client_id", client_id);
node.put("client_secret", client_secret);
diff --git a/core/src/main/java/de/ids_mannheim/korap/config/KustvaktConfiguration.java b/core/src/main/java/de/ids_mannheim/korap/config/KustvaktConfiguration.java
index 7c3a1cf..7b75f37 100644
--- a/core/src/main/java/de/ids_mannheim/korap/config/KustvaktConfiguration.java
+++ b/core/src/main/java/de/ids_mannheim/korap/config/KustvaktConfiguration.java
@@ -96,6 +96,12 @@
private String ldapConfig;
+ private String freeOnlyRegex;
+
+ private String publicOnlyRegex;
+
+ private String allOnlyRegex;
+
public KustvaktConfiguration (Properties properties) throws IOException {
load(properties);
}
@@ -172,25 +178,16 @@
ldapConfig = properties.getProperty("ldap.config");
- // EM: regex for matching availability in Krill matches
- freeLicensePattern = compilePattern(properties.getProperty("kustvakt.regex.free",""));
- publicLicensePattern = compilePattern(properties.getProperty("kustvakt.regex.public",""));
- allLicensePattern = compilePattern(properties.getProperty("kustvakt.regex.all",""));
+ // EM: regex used for storing vc
+ freeOnlyRegex = properties.getProperty("kustvakt.regex.free","");
+ publicOnlyRegex = properties.getProperty("kustvakt.regex.public","");
+ allOnlyRegex = properties.getProperty("kustvakt.regex.all","");
- // EM: not use in the future
- //policyConfig = properties.getProperty("policies.config");
- //setFoundriesAndLayers(policyConfig);
+ // EM: pattern for matching availability in Krill matches
+ freeLicensePattern = compilePattern(freeOnlyRegex);
+ publicLicensePattern = compilePattern(freeOnlyRegex + "|" + publicOnlyRegex);
+ allLicensePattern = compilePattern(freeOnlyRegex + "|" + publicOnlyRegex + "|"+allOnlyRegex);
-// KUSTVAKT_USER.put(Attributes.ID, Integer.parseInt(properties.getProperty("kustvakt.init.user.id")));
-// KUSTVAKT_USER.put(Attributes.USERNAME, properties.getProperty("kustvakt.init.user.username"));
-// KUSTVAKT_USER.put(Attributes.PASSWORD, properties.getProperty("kustvakt.init.user.password"));
-// KUSTVAKT_USER.put(Attributes.EMAIL, properties.getProperty("kustvakt.init.user.email"));
-// KUSTVAKT_USER.put(Attributes.COUNTRY, properties.getProperty("kustvakt.init.user.country"));
-// KUSTVAKT_USER.put(Attributes.ADDRESS, properties.getProperty("kustvakt.init.user.address"));
-// KUSTVAKT_USER.put(Attributes.FIRSTNAME, properties.getProperty("kustvakt.init.user.firstname"));
-// KUSTVAKT_USER.put(Attributes.LASTNAME, properties.getProperty("kustvakt.init.user.lastname"));
-// KUSTVAKT_USER.put(Attributes.INSTITUTION, properties.getProperty("kustvakt.init.user.institution"));
-// KUSTVAKT_USER.put(Attributes.IS_ADMIN, properties.getProperty("kustvakt.init.user.admin"));
return properties;
}
diff --git a/core/src/main/java/de/ids_mannheim/korap/config/Scopes.java b/core/src/main/java/de/ids_mannheim/korap/config/Scopes.java
index 0262cc2..1cc07cf 100644
--- a/core/src/main/java/de/ids_mannheim/korap/config/Scopes.java
+++ b/core/src/main/java/de/ids_mannheim/korap/config/Scopes.java
@@ -1,5 +1,6 @@
package de.ids_mannheim.korap.config;
+import de.ids_mannheim.korap.exceptions.KustvaktException;
import de.ids_mannheim.korap.user.Userdata;
import de.ids_mannheim.korap.utils.JsonUtils;
@@ -80,7 +81,7 @@
}
- public String toEntity () {
+ public String toEntity () throws KustvaktException {
if (this.values.isEmpty())
return "";
return JsonUtils.toJSON(this.values);
diff --git a/core/src/main/java/de/ids_mannheim/korap/exceptions/KustvaktException.java b/core/src/main/java/de/ids_mannheim/korap/exceptions/KustvaktException.java
index e435b5b..2352b57 100644
--- a/core/src/main/java/de/ids_mannheim/korap/exceptions/KustvaktException.java
+++ b/core/src/main/java/de/ids_mannheim/korap/exceptions/KustvaktException.java
@@ -81,6 +81,11 @@
this.statusCode = status;
this.entity = entity;
}
+
+ public KustvaktException (int status, String message, Exception e) {
+ super(message, e);
+ this.statusCode = status;
+ }
public KustvaktException (Throwable cause, int status) {
diff --git a/core/src/main/java/de/ids_mannheim/korap/resource/rewrite/CollectionRewrite.java b/core/src/main/java/de/ids_mannheim/korap/resource/rewrite/CollectionRewrite.java
index 189cdd5..e2e6318 100644
--- a/core/src/main/java/de/ids_mannheim/korap/resource/rewrite/CollectionRewrite.java
+++ b/core/src/main/java/de/ids_mannheim/korap/resource/rewrite/CollectionRewrite.java
@@ -22,6 +22,7 @@
/**
* @author margaretha
* @date 2 June 2017
+ * @last 9 Nov 2017
*/
public class CollectionRewrite implements RewriteTask.RewriteQuery {
@@ -63,21 +64,21 @@
List<String> userAvailabilities = new ArrayList<String>();
switch (user.getCorpusAccess()) {
case PUB:
- userAvailabilities.add("CC-BY.*");
- userAvailabilities.add("ACA.*");
+ userAvailabilities.add(config.getFreeOnlyRegex());
+ userAvailabilities.add(config.getPublicOnlyRegex());
// builder.with(
// "availability = /CC-BY.*/ | availability = /ACA.*/");
break;
case ALL:
- userAvailabilities.add("CC-BY.*");
- userAvailabilities.add("ACA.*");
- userAvailabilities.add("QAO.*");
+ userAvailabilities.add(config.getFreeOnlyRegex());
+ userAvailabilities.add(config.getPublicOnlyRegex());
+ userAvailabilities.add(config.getAllOnlyRegex());
// builder.with("availability = /QAO.*/ | availability = /ACA.*/ |"
// + " availability = /CC-BY.*/");
break;
case FREE:
- userAvailabilities.add("CC-BY.*");
+ userAvailabilities.add(config.getFreeOnlyRegex());
// builder.with("availability = /CC-BY.*/");
break;
}
diff --git a/core/src/main/java/de/ids_mannheim/korap/resources/KustvaktResource.java b/core/src/main/java/de/ids_mannheim/korap/resources/KustvaktResource.java
index 20908ad..6412835 100644
--- a/core/src/main/java/de/ids_mannheim/korap/resources/KustvaktResource.java
+++ b/core/src/main/java/de/ids_mannheim/korap/resources/KustvaktResource.java
@@ -112,7 +112,7 @@
}
- public String getStringData () {
+ public String getStringData () throws KustvaktException {
return JsonUtils.toJSON(this.fields);
}
diff --git a/core/src/main/java/de/ids_mannheim/korap/resources/ResourceFactory.java b/core/src/main/java/de/ids_mannheim/korap/resources/ResourceFactory.java
index 76cc144..7d2b770 100644
--- a/core/src/main/java/de/ids_mannheim/korap/resources/ResourceFactory.java
+++ b/core/src/main/java/de/ids_mannheim/korap/resources/ResourceFactory.java
@@ -66,7 +66,7 @@
}
- public static <T extends KustvaktResource> T createID (T resource) {
+ public static <T extends KustvaktResource> T createID (T resource) throws KustvaktException {
if (resource.getData() != null && !resource.getStringData().isEmpty()){
resource.setPersistentID(DigestUtils.sha1Hex(JsonUtils.toJSON(resource)));
}
@@ -110,7 +110,7 @@
public static VirtualCollection getPermanentCollection (
- VirtualCollection mergable, String corpusName, String description) {
+ VirtualCollection mergable, String corpusName, String description) throws KustvaktException {
VirtualCollection v = new VirtualCollection();
v.merge(mergable);
v.setName(corpusName);
diff --git a/core/src/main/java/de/ids_mannheim/korap/security/auth/BasicHttpAuth.java b/core/src/main/java/de/ids_mannheim/korap/security/auth/BasicHttpAuth.java
index 0da09f1..ba1a26c 100644
--- a/core/src/main/java/de/ids_mannheim/korap/security/auth/BasicHttpAuth.java
+++ b/core/src/main/java/de/ids_mannheim/korap/security/auth/BasicHttpAuth.java
@@ -1,6 +1,11 @@
package de.ids_mannheim.korap.security.auth;
-import com.sun.org.apache.xpath.internal.SourceTree;
+import java.util.Map;
+
+import org.apache.commons.codec.binary.Base64;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import de.ids_mannheim.korap.config.Attributes;
import de.ids_mannheim.korap.config.BeansFactory;
import de.ids_mannheim.korap.config.KustvaktConfiguration;
import de.ids_mannheim.korap.config.Scopes;
@@ -9,18 +14,11 @@
import de.ids_mannheim.korap.interfaces.AuthenticationIface;
import de.ids_mannheim.korap.interfaces.EncryptionIface;
import de.ids_mannheim.korap.interfaces.db.EntityHandlerIface;
-import de.ids_mannheim.korap.config.Attributes;
import de.ids_mannheim.korap.user.KorAPUser;
import de.ids_mannheim.korap.user.TokenContext;
import de.ids_mannheim.korap.user.User;
-import de.ids_mannheim.korap.utils.NamingUtils;
import de.ids_mannheim.korap.utils.StringUtils;
import de.ids_mannheim.korap.utils.TimeUtils;
-import org.apache.commons.codec.binary.Base64;
-import org.apache.oltu.oauth2.common.utils.OAuthUtils;
-
-import java.beans.Beans;
-import java.util.Map;
/**
* @author hanl
@@ -29,8 +27,13 @@
// todo: bean injection!
public class BasicHttpAuth implements AuthenticationIface {
+ @Autowired
private KustvaktConfiguration config;
-
+ @Autowired
+ private EncryptionIface crypto;
+ @Autowired
+ private EntityHandlerIface dao;
+
public BasicHttpAuth() {
}
@@ -77,11 +80,6 @@
public TokenContext getTokenContext(String authToken)
throws KustvaktException {
//fixme: handle via constructor
- this.config = BeansFactory.getKustvaktContext().getConfiguration();
- EncryptionIface crypto = BeansFactory.getKustvaktContext()
- .getEncryption();
- EntityHandlerIface dao = BeansFactory.getKustvaktContext()
- .getUserDBHandler();
String[] values = decode(authToken);
if (values != null) {
TokenContext c = new TokenContext();
diff --git a/core/src/main/java/de/ids_mannheim/korap/user/DataFactory.java b/core/src/main/java/de/ids_mannheim/korap/user/DataFactory.java
index e9b1387..4b14b42 100644
--- a/core/src/main/java/de/ids_mannheim/korap/user/DataFactory.java
+++ b/core/src/main/java/de/ids_mannheim/korap/user/DataFactory.java
@@ -65,7 +65,7 @@
public abstract boolean removeValue (Object data, String field);
- public abstract String toStringValue (Object data);
+ public abstract String toStringValue (Object data) throws KustvaktException;
public abstract Object filter(Object data, String ... keys);
@@ -210,7 +210,7 @@
@Override
- public String toStringValue (Object data) {
+ public String toStringValue (Object data) throws KustvaktException {
if (data instanceof JsonNode)
return JsonUtils.toJSON(data);
return data.toString();
diff --git a/core/src/main/java/de/ids_mannheim/korap/user/TokenContext.java b/core/src/main/java/de/ids_mannheim/korap/user/TokenContext.java
index d3b1944..9748861 100644
--- a/core/src/main/java/de/ids_mannheim/korap/user/TokenContext.java
+++ b/core/src/main/java/de/ids_mannheim/korap/user/TokenContext.java
@@ -137,7 +137,7 @@
}
- public String toJson() {
+ public String toJson() throws KustvaktException {
return JsonUtils.toJSON(this.statusMap());
}
diff --git a/core/src/main/java/de/ids_mannheim/korap/utils/JsonUtils.java b/core/src/main/java/de/ids_mannheim/korap/utils/JsonUtils.java
index d011ba7..b018688 100644
--- a/core/src/main/java/de/ids_mannheim/korap/utils/JsonUtils.java
+++ b/core/src/main/java/de/ids_mannheim/korap/utils/JsonUtils.java
@@ -26,12 +26,13 @@
private JsonUtils () {}
- public static String toJSON (Object values) {
+ public static String toJSON (Object values) throws KustvaktException {
try {
return mapper.writeValueAsString(values);
}
catch (JsonProcessingException e) {
- return e.getMessage();
+ throw new KustvaktException(StatusCodes.SERIALIZATION_FAILED,
+ "Failed serializing object in json", e);
}
}
@@ -90,7 +91,7 @@
}
catch (IOException e) {
throw new KustvaktException(StatusCodes.DESERIALIZATION_FAILED,
- "Failed deserializing json object: " + json, json, e);
+ e.getMessage(), json, e);
}
return t;
}
diff --git a/core/src/main/java/de/ids_mannheim/korap/utils/KoralCollectionQueryBuilder.java b/core/src/main/java/de/ids_mannheim/korap/utils/KoralCollectionQueryBuilder.java
index 361ab2b..71b8d57 100644
--- a/core/src/main/java/de/ids_mannheim/korap/utils/KoralCollectionQueryBuilder.java
+++ b/core/src/main/java/de/ids_mannheim/korap/utils/KoralCollectionQueryBuilder.java
@@ -2,8 +2,6 @@
import java.util.List;
-import javax.ws.rs.WebApplicationException;
-
import org.springframework.beans.factory.annotation.Autowired;
import com.fasterxml.jackson.databind.JsonNode;