Author: cziegeler
Date: Tue Aug  2 12:19:00 2016
New Revision: 1754896

URL: http://svn.apache.org/viewvc?rev=1754896&view=rev
Log:
SLING-5942 : Use http whiteboard for filter registration

Modified:
    sling/trunk/contrib/extensions/security/pom.xml
    
sling/trunk/contrib/extensions/security/src/main/java/org/apache/sling/security/impl/ReferrerFilter.java

Modified: sling/trunk/contrib/extensions/security/pom.xml
URL: 
http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/security/pom.xml?rev=1754896&r1=1754895&r2=1754896&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/security/pom.xml (original)
+++ sling/trunk/contrib/extensions/security/pom.xml Tue Aug  2 12:19:00 2016
@@ -65,6 +65,9 @@
                         <Private-Package>
                             org.apache.sling.security.impl
                         </Private-Package>
+                        <Require-Capability>
+                            
osgi.implementation;filter:="(&amp;(osgi.implementation=osgi.http)(version=1.0))"
+                        </Require-Capability>
                     </instructions>
                 </configuration>
             </plugin>
@@ -73,6 +76,20 @@
 
     <dependencies>
         <dependency>
+            <groupId>javax.servlet</groupId>
+            <artifactId>javax.servlet-api</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.osgi</groupId>
+            <artifactId>osgi.core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.osgi</groupId>
+            <artifactId>org.osgi.service.http.whiteboard</artifactId>
+            <version>1.0.0</version>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
             <groupId>org.apache.sling</groupId>
             <artifactId>org.apache.sling.api</artifactId>
             <version>2.1.0</version>
@@ -85,14 +102,6 @@
             <scope>provided</scope>
         </dependency>
         <dependency>
-            <groupId>javax.servlet</groupId>
-            <artifactId>javax.servlet-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.osgi</groupId>
-            <artifactId>osgi.core</artifactId>
-        </dependency>
-        <dependency>
             <groupId>org.slf4j</groupId>
             <artifactId>slf4j-api</artifactId>
         </dependency>

Modified: 
sling/trunk/contrib/extensions/security/src/main/java/org/apache/sling/security/impl/ReferrerFilter.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/security/src/main/java/org/apache/sling/security/impl/ReferrerFilter.java?rev=1754896&r1=1754895&r2=1754896&view=diff
==============================================================================
--- 
sling/trunk/contrib/extensions/security/src/main/java/org/apache/sling/security/impl/ReferrerFilter.java
 (original)
+++ 
sling/trunk/contrib/extensions/security/src/main/java/org/apache/sling/security/impl/ReferrerFilter.java
 Tue Aug  2 12:19:00 2016
@@ -48,6 +48,7 @@ import javax.servlet.http.HttpServletRes
 import org.apache.felix.scr.annotations.Activate;
 import org.apache.felix.scr.annotations.Component;
 import org.apache.felix.scr.annotations.Deactivate;
+import org.apache.felix.scr.annotations.Properties;
 import org.apache.felix.scr.annotations.Property;
 import org.apache.felix.scr.annotations.PropertyUnbounded;
 import org.apache.felix.scr.annotations.Service;
@@ -55,12 +56,17 @@ import org.apache.sling.commons.osgi.Pro
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.Constants;
 import org.osgi.framework.ServiceRegistration;
+import org.osgi.service.http.whiteboard.HttpWhiteboardConstants;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @Component(metatype=true, description="%referrer.description",
         label="%referrer.name")
-@Property(name="pattern", value="/.*", propertyPrivate=true)
+@Properties({
+    @Property(name=HttpWhiteboardConstants.HTTP_WHITEBOARD_FILTER_PATTERN, 
value="/", propertyPrivate=true),
+    @Property(name=HttpWhiteboardConstants.HTTP_WHITEBOARD_CONTEXT_SELECT,
+              value="(" + HttpWhiteboardConstants.HTTP_WHITEBOARD_CONTEXT_NAME 
+ "=org.apache.sling)", propertyPrivate=true)
+})
 @Service(value=Filter.class)
 public class ReferrerFilter implements Filter {
 
@@ -123,7 +129,7 @@ public class ReferrerFilter implements F
     /** Methods to be filtered. */
     private String[] filterMethods;
 
-    private ServiceRegistration configPrinterRegistration;
+    private ServiceRegistration<Object> configPrinterRegistration;
 
     /**
      * Create a default list of referrers
@@ -201,7 +207,7 @@ public class ReferrerFilter implements F
                 final Pattern pattern  = Pattern.compile(regexp);
                 patterns.add(pattern);
             } catch (final Exception e) {
-                logger.warn("Unable to create Pattern from {} : {}", new 
String[]{regexp, e.getMessage()});
+                logger.warn("Unable to create Pattern from {} : {}", new 
Object[]{regexp, e.getMessage()});
             }
         }
         return patterns.toArray(new Pattern[patterns.size()]);
@@ -241,7 +247,7 @@ public class ReferrerFilter implements F
         this.configPrinterRegistration.unregister();
     }
 
-    private ServiceRegistration registerConfigPrinter(BundleContext 
bundleContext) {
+    private ServiceRegistration<Object> registerConfigPrinter(BundleContext 
bundleContext) {
         final ConfigurationPrinter cfgPrinter = new ConfigurationPrinter();
         final Dictionary<String, String> serviceProps = new Hashtable<String, 
String>();
         serviceProps.put(Constants.SERVICE_DESCRIPTION,
@@ -251,7 +257,7 @@ public class ReferrerFilter implements F
         serviceProps.put("felix.webconsole.title", "Sling Referrer Filter");
         serviceProps.put("felix.webconsole.configprinter.modes", "always");
 
-       return bundleContext.registerService(Object.class.getName(),
+       return bundleContext.registerService(Object.class,
                 cfgPrinter, serviceProps);
     }
 


Reply via email to