Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * 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.engine.impl.parameters;
 
 import java.io.File;
 
 import  org.osgi.service.component.ComponentContext;
 
         metatype = true,
         name = .,
         label = "Apache Sling Request Parameter Handling",
         description = "Configures Sling's request parameter handling.")
         name = "SlingSetting",
         referenceInterface = SlingSettingsService.class,
         policy = .,
         strategy = .)
 
     static final String PID = "org.apache.sling.engine.parameters";

    
default log
 
     private final Logger log = LoggerFactory.getLogger();
 
     @Property(
             value = .,
             label = "Default Parameter Encoding",
             description = "The default request parameter encoding used to decode request "
                 + "parameters into strings. If this property is not set the default encoding "
                 + "is 'ISO-8859-1' as mandated by the Servlet API spec. This default encoding "
                 + "is used if the '_charset_' request parameter is not set to another "
                 + "(supported) character encoding. Applications being sure to always use the "
                 + "same encoding (e.g. UTF-8) can set this default here and may omit the "
                 + "'_charset_' request parameter")
     private static final String PROP_FIX_ENCODING = "sling.default.parameter.encoding";
 
     @Property(
             intValue = .,
             label = "Maximum POST Parameters",
             description = "The maximum number of parameters supported. To prevent a DOS-style attack with an "
                 + "overrunning number of parameters the number of parameters supported can be limited. This "
                 + "includes all of the query string as well as application/x-www-form-urlencoded and "
                 + "multipart/form-data parameters. The default value is " + . + ".")
     private static final String PROP_MAX_PARAMS = "sling.default.max.parameters";
 
     @Property(
             label = "Temporary File Location",
             description = "The size threshold after which the file will be written to disk. The default is "
                 + "null, which means the directory given by the 'java.io.tmpdir' system property.")
     private static final String PROP_FILE_LOCATION = "file.location";
 
     @Property(
             longValue = 256000,
             label = "File Save Threshold",
             description = "The size threshold after which the file will be written to disk. The default is 256KB.")
     private static final String PROP_FILE_SIZE_THRESHOLD = "file.threshold";
 
     @Property(
             longValue = -1,
             label = "Maximum File Size",
             description = "The maximum size allowed for uploaded files. The default is -1, which means unlimited.")
     private static final String PROP_FILE_SIZE_MAX = "file.max";
 
     @Property(
             longValue = -1,
             label = "Maximum Request Size",
             description = "The maximum size allowed for multipart/form-data requests. The default is -1, which means unlimited.")
     private static final String PROP_MAX_REQUEST_SIZE = "request.max";
 
     @Activate
    @Deactivate
    private void configure(ComponentContext context) {
        @SuppressWarnings("unchecked")
        Dictionary<StringObjectprops = context.getProperties();
        final String fixEncoding = PropertiesUtil.toString(props.get(), .);
        final int maxParams = PropertiesUtil.toInteger(props.get(), .);
        final long maxRequestSize = PropertiesUtil.toLong(props.get(), -1);
        final String fileLocation = getFileLocation(context,
            PropertiesUtil.toString(props.get(), null));
        final long maxFileSize = PropertiesUtil.toLong(props.get(), -1);
        final int fileSizeThreshold = PropertiesUtil.toInteger(props.get(), -1);
        if (.isInfoEnabled()) {
            .info("Default Character Encoding: {}"fixEncoding);
            .info("Parameter Number Limit: {}", (maxParams < 0) ? "unlimited" : maxParams);
            .info("Maximum Request Size: {}", (maxParams < 0) ? "unlimited" : maxRequestSize);
            .info("Temporary File Location: {}"fileLocation);
            .info("Maximum File Size: {}"maxFileSize);
            .info("Tempory File Creation Threshold: {}"fileSizeThreshold);
        }
        Util.setDefaultFixEncoding(fixEncoding);
        ParameterMap.setMaxParameters(maxParams);
        ParameterSupport.configure(maxRequestSizefileLocationmaxFileSizefileSizeThreshold);
    }
    private String getFileLocation(final ComponentContext contextString fileLocation) {
        if (fileLocation != null) {
            File file = new File(fileLocation);
            if (!file.isAbsolute()) {
                final SlingSettingsService settings = (SlingSettingsServicecontext.locateService("SlingSettings");
                file = new File(settings.getSlingHomePath(), fileLocation);
                fileLocation = file.getAbsolutePath();
            }
            if (file.exists()) {
                if (!file.isDirectory()) {
                    .error(
                        "Configured temporary file location {} exists but is not a directory; using java.io.tmpdir instead",
                        fileLocation);
                    fileLocation = null;
                }
            } else {
                if (!file.mkdirs()) {
                    .error("Cannot create temporary file directory {}; using java.io.tmpdir instead"fileLocation);
                    fileLocation = null;
                }
            }
        }
        return fileLocation;
    }
New to GrepCode? Check out our FAQ X