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:="(&(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);
}