diff --git a/Changes b/Changes
index 6910751..af50e78 100644
--- a/Changes
+++ b/Changes
@@ -1,5 +1,6 @@
 # version 0.73.3-SNAPSHOT
 
+- Unified ResourceFilters and SearchResourceFilters.
 - Remove corpusQuery param in the statistics web-service (close #758).
 - Moved NamedVCLoader to the init package.
 - Clean up Spring XML configs.
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 d69f3c6..9fa7e85 100644
--- a/src/main/java/de/ids_mannheim/korap/config/KustvaktConfiguration.java
+++ b/src/main/java/de/ids_mannheim/korap/config/KustvaktConfiguration.java
@@ -74,6 +74,10 @@
     private int validationStringLength;
     @Deprecated
     private int validationEmaillength;
+    
+    // EM: determine if search and match info services restricted 
+    // to logged in users. This replaces @SearchResourceFilters
+    private boolean isLoginRequired;
 
     private byte[] sharedSecret;
     private int longTokenTTL;
@@ -191,6 +195,9 @@
                 .getProperty("default.foundry.structure", "base");
 
         // security configuration
+        isLoginRequired = Boolean
+                .valueOf(properties.getProperty("login.required", "false"));
+
         inactiveTime = TimeUtils.convertTimeToSeconds(
                 properties.getProperty("security.idleTimeoutDuration", "10M"));
         allowMultiLogIn = Boolean
diff --git a/src/main/java/de/ids_mannheim/korap/core/web/controller/SearchController.java b/src/main/java/de/ids_mannheim/korap/core/web/controller/SearchController.java
index 1a8a09a..82e068e 100644
--- a/src/main/java/de/ids_mannheim/korap/core/web/controller/SearchController.java
+++ b/src/main/java/de/ids_mannheim/korap/core/web/controller/SearchController.java
@@ -28,7 +28,6 @@
 import de.ids_mannheim.korap.web.filter.AuthenticationFilter;
 import de.ids_mannheim.korap.web.filter.DemoUserFilter;
 import de.ids_mannheim.korap.web.utils.ResourceFilters;
-import de.ids_mannheim.korap.web.utils.SearchResourceFilters;
 import jakarta.servlet.ServletContext;
 import jakarta.servlet.http.HttpServletRequest;
 import jakarta.ws.rs.DefaultValue;
@@ -150,7 +149,7 @@
     @POST
     @Path("{version}/search")
     @Produces(MediaType.APPLICATION_JSON + ";charset=utf-8")
-    @SearchResourceFilters
+    //@SearchResourceFilters
     public Response searchPost (@Context SecurityContext context,
             @Context Locale locale, @Context HttpHeaders headers,
             String jsonld) {
@@ -210,7 +209,7 @@
     @GET
     @Path("{version}/search")
     @Produces(MediaType.APPLICATION_JSON + ";charset=utf-8")
-    @SearchResourceFilters
+    //@SearchResourceFilters
     public Response searchGet (@Context SecurityContext securityContext,
             @Context HttpServletRequest request, @Context HttpHeaders headers,
             @Context Locale locale, @QueryParam("q") String q,
@@ -246,12 +245,13 @@
         return Response.ok(result).build();
     }
 
+    // EM: unified resource filter and search resource filters
     // EM: legacy support
     @Deprecated
     @GET
     @Produces(MediaType.APPLICATION_JSON + ";charset=utf-8")
     @Path("{version}/corpus/{corpusId}/{docId}/{textId}/{matchId}/matchInfo")
-    @SearchResourceFilters
+    //@SearchResourceFilters
     public Response getMatchInfo (@Context SecurityContext ctx,
             @Context HttpHeaders headers, @Context Locale locale,
             @PathParam("corpusId") String corpusId,
@@ -310,7 +310,7 @@
     @GET
     @Produces(MediaType.APPLICATION_JSON + ";charset=utf-8")
     @Path("{version}/corpus/{corpusId}/{docId}/{textId}/{matchId}")
-    @SearchResourceFilters
+    //@SearchResourceFilters
     public Response retrieveMatchInfo (@Context SecurityContext ctx,
             @Context HttpHeaders headers, @Context Locale locale,
             @PathParam("corpusId") String corpusId,
diff --git a/src/main/java/de/ids_mannheim/korap/web/utils/ResourceFiltersFeature.java b/src/main/java/de/ids_mannheim/korap/web/utils/ResourceFiltersFeature.java
index 9e4a0ce..0485104 100644
--- a/src/main/java/de/ids_mannheim/korap/web/utils/ResourceFiltersFeature.java
+++ b/src/main/java/de/ids_mannheim/korap/web/utils/ResourceFiltersFeature.java
@@ -1,5 +1,13 @@
 package de.ids_mannheim.korap.web.utils;
 
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import org.springframework.beans.factory.annotation.Autowired;
+
+import de.ids_mannheim.korap.config.KustvaktConfiguration;
+import de.ids_mannheim.korap.web.filter.DemoUserFilter;
 import jakarta.ws.rs.container.DynamicFeature;
 import jakarta.ws.rs.container.ResourceInfo;
 import jakarta.ws.rs.core.FeatureContext;
@@ -14,6 +22,9 @@
 @Provider
 public class ResourceFiltersFeature implements DynamicFeature {
 
+    @Autowired
+    public KustvaktConfiguration config;
+    
     @Override
     public void configure (ResourceInfo resourceInfo, FeatureContext context) {
         ResourceFilters filtersAnnotation = resourceInfo.getResourceMethod()
@@ -21,10 +32,16 @@
         if (filtersAnnotation == null)
             filtersAnnotation = resourceInfo.getResourceClass()
                     .getAnnotation(ResourceFilters.class);
-
+        
         if (filtersAnnotation != null) {
-            for (Class<?> filter : filtersAnnotation.value())
+            Class<?>[] filterArray = filtersAnnotation.value();
+            List<Class<?>> filterList = new ArrayList<>(Arrays.asList(filterArray));
+            if (config.isLoginRequired()) {
+                filterList.remove(DemoUserFilter.class);
+            }
+            for (Class<?> filter : filterList) {
                 context.register(filter);
+            }
         }
     }
 }
diff --git a/src/main/java/de/ids_mannheim/korap/web/utils/SearchResourceFilters.java b/src/main/java/de/ids_mannheim/korap/web/utils/SearchResourceFilters.java
index 60b226a..249793b 100644
--- a/src/main/java/de/ids_mannheim/korap/web/utils/SearchResourceFilters.java
+++ b/src/main/java/de/ids_mannheim/korap/web/utils/SearchResourceFilters.java
@@ -21,6 +21,7 @@
  * overrides
  * the class value.
  */
+@Deprecated
 @Target({ ElementType.TYPE, ElementType.METHOD })
 @Retention(RetentionPolicy.RUNTIME)
 public @interface SearchResourceFilters {}
diff --git a/src/main/java/de/ids_mannheim/korap/web/utils/SearchResourceFiltersFeature.java b/src/main/java/de/ids_mannheim/korap/web/utils/SearchResourceFiltersFeature.java
index 6063aa0..341817e 100644
--- a/src/main/java/de/ids_mannheim/korap/web/utils/SearchResourceFiltersFeature.java
+++ b/src/main/java/de/ids_mannheim/korap/web/utils/SearchResourceFiltersFeature.java
@@ -8,8 +8,6 @@
 import org.springframework.stereotype.Component;
 
 import de.ids_mannheim.korap.web.filter.APIVersionFilter;
-import jakarta.annotation.PostConstruct;
-import jakarta.annotation.Priority;
 import jakarta.ws.rs.container.DynamicFeature;
 import jakarta.ws.rs.container.ResourceInfo;
 import jakarta.ws.rs.core.FeatureContext;
@@ -21,6 +19,7 @@
  * classes for a resource method annotated with
  * {@link ResourceFilters}.
  */
+@Deprecated
 @Provider
 @Component
 public class SearchResourceFiltersFeature implements DynamicFeature {
diff --git a/src/main/resources/kustvakt.conf b/src/main/resources/kustvakt.conf
index 1072e63..a45eb41 100644
--- a/src/main/resources/kustvakt.conf
+++ b/src/main/resources/kustvakt.conf
@@ -52,17 +52,6 @@
 availability.regex.public = ACA.*|QAO-NC
 availability.regex.all = QAO.*
 
-
-# Define resource filters for search and match info API
-# AuthenticationFilter activates authentication using OAuth2 tokens
-# DemoUserFilter allows access to API without login
-# 
-# Default values: AuthenticationFilter,DemoUserFilter
-#
-search.resource.filters=AuthenticationFilter,DemoUserFilter
-
-
-
 # options referring to the security module!
 
 # OAuth 
diff --git a/src/test/resources/kustvakt-dnb.conf b/src/test/resources/kustvakt-dnb.conf
index b23d474..c6dbdf1 100644
--- a/src/test/resources/kustvakt-dnb.conf
+++ b/src/test/resources/kustvakt-dnb.conf
@@ -68,15 +68,6 @@
 availability.regex.all = QAO.*
 
 
-# Define resource filters for search and match info API
-# AuthenticationFilter activates authentication using OAuth2 tokens
-# DemoUserFilter allows access to API without login
-# 
-# Default values: AuthenticationFilter,DemoUserFilter
-#
-search.resource.filters=AuthenticationFilter,DemoUserFilter
-
-
 # options referring to the security module!
 
 # OAuth
diff --git a/src/test/resources/kustvakt-icc.conf b/src/test/resources/kustvakt-icc.conf
index a87e3f0..965eb4c 100644
--- a/src/test/resources/kustvakt-icc.conf
+++ b/src/test/resources/kustvakt-icc.conf
@@ -60,7 +60,8 @@
 # 
 # Default values: AuthenticationFilter,DemoUserFilter
 #
-search.resource.filters=AuthenticationFilter
+#search.resource.filters=AuthenticationFilter
+login.required = true
 
 
 # options referring to the security module!
diff --git a/src/test/resources/kustvakt-test.conf b/src/test/resources/kustvakt-test.conf
index b9c8f74..eb94008 100644
--- a/src/test/resources/kustvakt-test.conf
+++ b/src/test/resources/kustvakt-test.conf
@@ -66,15 +66,6 @@
 availability.regex.all = QAO.*
 
 
-# Define resource filters for search and match info API
-# AuthenticationFilter activates authentication using OAuth2 tokens
-# DemoUserFilter allows access to API without login
-# 
-# Default values: AuthenticationFilter,DemoUserFilter
-#
-search.resource.filters=AuthenticationFilter,DemoUserFilter
-
-
 # options referring to the security module!
 
 # OAuth
