Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
   *
   * Copyright (c) 2012 Oracle and/or its affiliates. All rights reserved.
   *
   * The contents of this file are subject to the terms of either the GNU
   * General Public License Version 2 only ("GPL") or the Common Development
   * and Distribution License("CDDL") (collectively, the "License").  You
   * may not use this file except in compliance with the License.  You can
  * obtain a copy of the License at
  * http://glassfish.java.net/public/CDDL+GPL_1_1.html
  * or packager/legal/LICENSE.txt.  See the License for the specific
  * language governing permissions and limitations under the License.
  *
  * When distributing the software, include this License Header Notice in each
  * file and include the License file at packager/legal/LICENSE.txt.
  *
  * GPL Classpath Exception:
  * Oracle designates this particular file as subject to the "Classpath"
  * exception as provided by Oracle in the GPL Version 2 section of the License
  * file that accompanied this code.
  *
  * Modifications:
  * If applicable, add the following below the License Header, with the fields
  * enclosed by brackets [] replaced by your own identifying information:
  * "Portions Copyright [year] [name of copyright owner]"
  *
  * Contributor(s):
  * If you wish your version of this file to be governed by only the CDDL or
  * only the GPL Version 2, indicate your decision by adding "[Contributor]
  * elects to include this software in this distribution under the [CDDL or GPL
  * Version 2] license."  If you don't indicate a single choice of license, a
  * recipient has the option to distribute your version of this file under
  * either the CDDL, the GPL Version 2 or to extend the choice of license to
  * its licensees as provided above.  However, if you add GPL Version 2 code
  * and therefore, elected the GPL Version 2 license, then the option applies
  * only if the new code is made subject to such option by the copyright
  * holder.
  */
 
 /*
  * Portions contributed by Joseph Walton (Atlassian)
  */
 
 package com.sun.jersey.core.impl.provider.xml;
 
 import java.io.File;
 
 
 

Author(s):
Martin Matula (martin.matula at oracle.com)
Michal Gajdos (michal.gajdos at oracle.com)
 
 final class SecureSAXParserFactory extends SAXParserFactory {
     private static final Logger LOGGER = Logger.getLogger(SecureSAXParserFactory.class.getName());
     private static final EntityResolver EMPTY_ENTITY_RESOLVER = new EntityResolver() {
         public InputSource resolveEntity(String publicIdString systemId) {
             return new InputSource(new ByteArrayInputStream(new byte[0]));
         }
     };
 
     private final SAXParserFactory spf;
 
         this. = spf;
 
         if (SaxHelper.isXdkParserFactory(spf)) {
             .log(., ImplMessages.SAX_XDK_NO_SECURITY_FEATURES());
         } else {
             try {
                 spf.setFeature("http://xml.org/sax/features/external-general-entities".);
                 spf.setFeature("http://xml.org/sax/features/external-parameter-entities".);
             } catch (Exception ex) {
                 throw new RuntimeException(ImplMessages.SAX_CANNOT_ENABLE_SECURITY_FEATURES(),  ex);
             }
 
            try {
                spf.setFeature(..);
            } catch (Exception ex) {
                .log(., ImplMessages.SAX_CANNOT_ENABLE_SECURE_PROCESSING_FEATURE(), ex);
            }
        }
    }
    @Override
    public void setNamespaceAware(boolean b) {
        .setNamespaceAware(b);
    }
    @Override
    public void setValidating(boolean b) {
        .setValidating(b);
    }
    @Override
    public boolean isNamespaceAware() {
        return .isNamespaceAware();
    }
    @Override
    public boolean isValidating() {
        return .isValidating();
    }
    @Override
    public Schema getSchema() {
        return .getSchema();
    }
    @Override
    public void setSchema(Schema schema) {
        .setSchema(schema);
    }
    @Override
    public void setXIncludeAware(boolean b) {
        .setXIncludeAware(b);
    }
    @Override
    public boolean isXIncludeAware() {
        return .isXIncludeAware();
    }
    @Override
        return new WrappingSAXParser(.newSAXParser());
    }
    @Override
        .setFeature(sb);
    }
    @Override
        return .getFeature(s);
    }
    private static final class WrappingSAXParser extends SAXParser {
        private final SAXParser sp;
        protected WrappingSAXParser(SAXParser sp) {
            this. = sp;
        }
        @Override
        public void reset() {
            .reset();
        }
        @Override
        public void parse(InputStream inputStreamHandlerBase handlerBasethrows SAXExceptionIOException {
            .parse(inputStreamhandlerBase);
        }
        @Override
        public void parse(InputStream inputStreamHandlerBase handlerBaseString sthrows SAXExceptionIOException {
            .parse(inputStreamhandlerBases);
        }
        @Override
        public void parse(InputStream inputStreamDefaultHandler defaultHandlerthrows SAXExceptionIOException {
            .parse(inputStreamdefaultHandler);
        }
        @Override
        public void parse(InputStream inputStreamDefaultHandler defaultHandlerString sthrows SAXExceptionIOException {
            .parse(inputStreamdefaultHandlers);
        }
        @Override
        public void parse(String sHandlerBase handlerBasethrows SAXExceptionIOException {
            .parse(shandlerBase);
        }
        @Override
        public void parse(String sDefaultHandler defaultHandlerthrows SAXExceptionIOException {
            .parse(sdefaultHandler);
        }
        @Override
        public void parse(File fileHandlerBase handlerBasethrows SAXExceptionIOException {
            .parse(filehandlerBase);
        }
        @Override
        public void parse(File fileDefaultHandler defaultHandlerthrows SAXExceptionIOException {
            .parse(filedefaultHandler);
        }
        @Override
        public void parse(InputSource inputSourceHandlerBase handlerBasethrows SAXExceptionIOException {
            .parse(inputSourcehandlerBase);
        }
        @Override
        public void parse(InputSource inputSourceDefaultHandler defaultHandlerthrows SAXExceptionIOException {
            .parse(inputSourcedefaultHandler);
        }
        @Override
        public Parser getParser() throws SAXException {
            return .getParser();
        }
        @Override
        public XMLReader getXMLReader() throws SAXException {
            XMLReader r = .getXMLReader();
            r.setEntityResolver();
            return r;
        }
        @Override
        public boolean isNamespaceAware() {
            return .isNamespaceAware();
        }
        @Override
        public boolean isValidating() {
            return .isValidating();
        }
        @Override
        public void setProperty(String sObject othrows SAXNotRecognizedExceptionSAXNotSupportedException {
            .setProperty(so);
        }
        @Override
            return .getProperty(s);
        }
        @Override
        public Schema getSchema() {
            return .getSchema();
        }
        @Override
        public boolean isXIncludeAware() {
            return .isXIncludeAware();
        }
    }
New to GrepCode? Check out our FAQ X