Fixed matchinfo response and test cases.
Change-Id: Ida7714c9593eccdfecd82215c66b2fc941336b5d
diff --git a/src/main/java/de/ids_mannheim/korap/config/KustvaktConfiguration.java b/src/main/java/de/ids_mannheim/korap/config/KustvaktConfiguration.java
index 1ad51dd..f6e85af 100644
--- a/src/main/java/de/ids_mannheim/korap/config/KustvaktConfiguration.java
+++ b/src/main/java/de/ids_mannheim/korap/config/KustvaktConfiguration.java
@@ -93,6 +93,8 @@
// deprec?!
private final BACKENDS DEFAULT_ENGINE = BACKENDS.LUCENE;
+ private String ldapConfig;
+
/**
* loading of the properties and mapping to parameter variables
@@ -163,6 +165,8 @@
passcodeSaltField = properties.getProperty("security.passcode.salt",
"accountCreation");
+ ldapConfig = properties.getProperty("ldap.config");
+
// freeLicenses = Arrays.asList(license.split("|"));
// publicLicenses = Arrays.asList(properties.getProperty("kustvakt.availability.public","").split("|"));
// allLicenses = Arrays.asList(properties.getProperty("kustvakt.availability.all","").split("|"));
diff --git a/src/main/java/de/ids_mannheim/korap/security/auth/BasicHttpAuth.java b/src/main/java/de/ids_mannheim/korap/security/auth/BasicHttpAuth.java
index 82e2fb3..0da09f1 100644
--- a/src/main/java/de/ids_mannheim/korap/security/auth/BasicHttpAuth.java
+++ b/src/main/java/de/ids_mannheim/korap/security/auth/BasicHttpAuth.java
@@ -86,7 +86,7 @@
if (values != null) {
TokenContext c = new TokenContext();
User user = dao.getAccount(values[0]);
- if (user instanceof KorAPUser) {
+ if (user instanceof KorAPUser && ((KorAPUser) user).getPassword() != null) {
boolean check = crypto.checkHash(values[1],
((KorAPUser) user).getPassword());
diff --git a/src/main/java/de/ids_mannheim/korap/security/auth/KustvaktAuthenticationManager.java b/src/main/java/de/ids_mannheim/korap/security/auth/KustvaktAuthenticationManager.java
index 7a87776..3fc69d1 100644
--- a/src/main/java/de/ids_mannheim/korap/security/auth/KustvaktAuthenticationManager.java
+++ b/src/main/java/de/ids_mannheim/korap/security/auth/KustvaktAuthenticationManager.java
@@ -404,7 +404,7 @@
// LDAP Access:
try {
// todo: unknown = ...
- int ret = LdapAuth3.login(username, password);
+ int ret = LdapAuth3.login(username, password, config.getLdapConfig());
System.out.printf("Debug: autenticationIdM: Ldap.login(%s) returns: %d.\n", username, ret);
if (ret != LdapAuth3.LDAP_AUTH_ROK) {
jlog.error("LdapAuth3.login(username='{}') returns '{}'='{}'!", username, ret,
diff --git a/src/main/java/de/ids_mannheim/korap/security/auth/LdapAuth3.java b/src/main/java/de/ids_mannheim/korap/security/auth/LdapAuth3.java
index c7f69fd..fe8e055 100644
--- a/src/main/java/de/ids_mannheim/korap/security/auth/LdapAuth3.java
+++ b/src/main/java/de/ids_mannheim/korap/security/auth/LdapAuth3.java
@@ -114,11 +114,10 @@
* 17.02.17/FB
*/
- static String loadProp() throws IOException
+ static String loadProp(String sConfFile) throws IOException
{
String sPwd = null;
- String sConfFile = System.getProperty("user.home") + "/.config/ldap.conf";
FileInputStream in;
Properties prop;
@@ -188,7 +187,7 @@
* idsStatus = 3 -> Nutzer ist LDAP-weit gesperrt
*/
- public static int login(String sUserDN, String sUserPwd) throws LDAPException
+ public static int login(String sUserDN, String sUserPwd, String ldapConfig) throws LDAPException
{
@@ -200,7 +199,7 @@
SearchResult srchRes = null;
try{
- sPwd = loadProp();
+ sPwd = loadProp(ldapConfig);
}
catch( IOException e )
{
diff --git a/src/main/java/de/ids_mannheim/korap/web/SearchKrill.java b/src/main/java/de/ids_mannheim/korap/web/SearchKrill.java
index 41c89ff..3953323 100644
--- a/src/main/java/de/ids_mannheim/korap/web/SearchKrill.java
+++ b/src/main/java/de/ids_mannheim/korap/web/SearchKrill.java
@@ -150,10 +150,10 @@
layers, includeSpans, includeHighlights,
sentenceExpansion);
String availability = km.getAvailability();
-// String availability = "QAO-NC";
if (availability != null){
Matcher m = licensePattern.matcher(availability);
if (!m.matches()){
+ km = new Match();
km.addError(StatusCodes.ACCESS_DENIED,
"Retrieving match info with ID "+id+" is not allowed.");
}
diff --git a/src/main/java/de/ids_mannheim/korap/web/service/full/ResourceService.java b/src/main/java/de/ids_mannheim/korap/web/service/full/ResourceService.java
index 575e4d2..11169d8 100644
--- a/src/main/java/de/ids_mannheim/korap/web/service/full/ResourceService.java
+++ b/src/main/java/de/ids_mannheim/korap/web/service/full/ResourceService.java
@@ -503,7 +503,7 @@
serializer.setQuery(q, ql, v);
if (cq != null)
serializer.setCollection(cq);
-
+ // combine cq with availability CQ according to corpusAccess
MetaQueryBuilder meta = createMetaQuery(pageIndex, pageInteger, ctx,
pageLength, cutoff);
serializer.setMeta(meta.raw());