This is an automated email from the ASF dual-hosted git repository. rombert pushed a commit to annotated tag org.apache.sling.featureflags-1.0.0 in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-featureflags.git
commit 6bc6971bcab0e32d380915bb6f01789cc2567b8b Author: Carsten Ziegeler <[email protected]> AuthorDate: Mon Mar 10 14:31:48 2014 +0000 FELIX-3444 : Provide a switch to enable feature flags for the resource resolver git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/bundles/extensions/feature-flags@1575951 13f79535-47bb-0310-9956-ffa450edef68 --- .../sling/featureflags/FeatureConstants.java | 31 +++++++++++++ .../FeatureAuthenticationInfoPostProcessor.java | 52 ++++++++++++++++++++++ 2 files changed, 83 insertions(+) diff --git a/src/main/java/org/apache/sling/featureflags/FeatureConstants.java b/src/main/java/org/apache/sling/featureflags/FeatureConstants.java new file mode 100644 index 0000000..47b1f8b --- /dev/null +++ b/src/main/java/org/apache/sling/featureflags/FeatureConstants.java @@ -0,0 +1,31 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.sling.featureflags; + + +public abstract class FeatureConstants { + + /** + * The name of the resource resolver attribute which is set if the + * feature flag support should be enabled in the resource resolver. + * The value of this property should be of type Boolean. The default + * is <code>false</code> + */ + public static final String RESOLVER_ATTR_FEATURES_ENABLED = "sling.resourceresolver.feature"; +} diff --git a/src/main/java/org/apache/sling/featureflags/impl/FeatureAuthenticationInfoPostProcessor.java b/src/main/java/org/apache/sling/featureflags/impl/FeatureAuthenticationInfoPostProcessor.java new file mode 100644 index 0000000..ab2f30c --- /dev/null +++ b/src/main/java/org/apache/sling/featureflags/impl/FeatureAuthenticationInfoPostProcessor.java @@ -0,0 +1,52 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.sling.featureflags.impl; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.felix.scr.annotations.Component; +import org.apache.felix.scr.annotations.Service; +import org.apache.sling.api.resource.LoginException; +import org.apache.sling.auth.core.spi.AuthenticationInfo; +import org.apache.sling.auth.core.spi.AuthenticationInfoPostProcessor; +import org.apache.sling.featureflags.FeatureConstants; + +/** + * This authentication info post processor enables the feature flag support + * in the resource resolver for GET and HEAD requests. + */ +@Component +@Service(value=AuthenticationInfoPostProcessor.class) +public class FeatureAuthenticationInfoPostProcessor implements AuthenticationInfoPostProcessor { + + /** + * @see org.apache.sling.auth.core.spi.AuthenticationInfoPostProcessor#postProcess(org.apache.sling.auth.core.spi.AuthenticationInfo, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) + */ + @Override + public void postProcess(final AuthenticationInfo info, + final HttpServletRequest request, + final HttpServletResponse response) + throws LoginException { + if ( "GET".equals(request.getMethod()) || "HEAD".equals(request.getMethod()) ) { + info.put(FeatureConstants.RESOLVER_ATTR_FEATURES_ENABLED, Boolean.TRUE); + } + } + +} -- To stop receiving notification emails like this one, please contact "[email protected]" <[email protected]>.
