Author: cziegeler Date: Mon Oct 2 14:21:01 2017 New Revision: 1810359 URL: http://svn.apache.org/viewvc?rev=1810359&view=rev Log: Fix permission checking
Modified: felix/trunk/osgi-r7/http/base/src/main/java/org/apache/felix/http/base/internal/handler/WhiteboardServletHandler.java felix/trunk/osgi-r7/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/ServletContextHelperInfo.java felix/trunk/osgi-r7/http/base/src/main/java/org/apache/felix/http/base/internal/whiteboard/WhiteboardManager.java Modified: felix/trunk/osgi-r7/http/base/src/main/java/org/apache/felix/http/base/internal/handler/WhiteboardServletHandler.java URL: http://svn.apache.org/viewvc/felix/trunk/osgi-r7/http/base/src/main/java/org/apache/felix/http/base/internal/handler/WhiteboardServletHandler.java?rev=1810359&r1=1810358&r2=1810359&view=diff ============================================================================== --- felix/trunk/osgi-r7/http/base/src/main/java/org/apache/felix/http/base/internal/handler/WhiteboardServletHandler.java (original) +++ felix/trunk/osgi-r7/http/base/src/main/java/org/apache/felix/http/base/internal/handler/WhiteboardServletHandler.java Mon Oct 2 14:21:01 2017 @@ -42,11 +42,12 @@ public final class WhiteboardServletHand public WhiteboardServletHandler(final long contextServiceId, final ExtServletContext context, final ServletInfo servletInfo, - final BundleContext bundleContext, + final BundleContext contextBundleContext, + final Bundle registeringBundle, final Bundle httpWhiteboardBundle) { super(contextServiceId, context, servletInfo); - this.bundleContext = bundleContext; + this.bundleContext = contextBundleContext; int errorCode = -1; if ( this.getMultipartConfig() != null && System.getSecurityManager() != null ) { @@ -62,7 +63,7 @@ public final class WhiteboardServletHand else { final FilePermission readPerm = new FilePermission(this.getMultipartConfig().multipartLocation, "read"); - if ( !bundleContext.getBundle().hasPermission(readPerm) ) + if ( !registeringBundle.hasPermission(readPerm) ) { errorCode = DTOConstants.FAILURE_REASON_SERVLET_READ_FROM_DEFAULT_DENIED; } @@ -70,9 +71,9 @@ public final class WhiteboardServletHand } else { - multipartSecurityContext = bundleContext.getBundle(); + multipartSecurityContext = registeringBundle; // provided location - if ( !bundleContext.getBundle().hasPermission(writePerm) ) + if ( !registeringBundle.hasPermission(writePerm) ) { errorCode = DTOConstants.FAILURE_REASON_SERVLET_WRITE_TO_LOCATION_DENIED; } Modified: felix/trunk/osgi-r7/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/ServletContextHelperInfo.java URL: http://svn.apache.org/viewvc/felix/trunk/osgi-r7/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/ServletContextHelperInfo.java?rev=1810359&r1=1810358&r2=1810359&view=diff ============================================================================== --- felix/trunk/osgi-r7/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/ServletContextHelperInfo.java (original) +++ felix/trunk/osgi-r7/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/ServletContextHelperInfo.java Mon Oct 2 14:21:01 2017 @@ -33,11 +33,6 @@ import org.osgi.service.http.whiteboard. public final class ServletContextHelperInfo extends AbstractInfo<ServletContextHelper> { - /** - * Properties starting with this prefix are passed as context init parameters. - */ - private static final String CONTEXT_INIT_PREFIX = "context.init."; - private final String name; private final String path; @@ -52,7 +47,7 @@ public final class ServletContextHelperI super(ref); this.name = this.getStringProperty(ref, HttpWhiteboardConstants.HTTP_WHITEBOARD_CONTEXT_NAME); this.path = this.getStringProperty(ref, HttpWhiteboardConstants.HTTP_WHITEBOARD_CONTEXT_PATH); - this.initParams = getInitParams(ref, CONTEXT_INIT_PREFIX); + this.initParams = getInitParams(ref, HttpWhiteboardConstants.HTTP_WHITEBOARD_CONTEXT_INIT_PARAM_PREFIX); } public ServletContextHelperInfo(final int serviceRanking, Modified: felix/trunk/osgi-r7/http/base/src/main/java/org/apache/felix/http/base/internal/whiteboard/WhiteboardManager.java URL: http://svn.apache.org/viewvc/felix/trunk/osgi-r7/http/base/src/main/java/org/apache/felix/http/base/internal/whiteboard/WhiteboardManager.java?rev=1810359&r1=1810358&r2=1810359&view=diff ============================================================================== --- felix/trunk/osgi-r7/http/base/src/main/java/org/apache/felix/http/base/internal/whiteboard/WhiteboardManager.java (original) +++ felix/trunk/osgi-r7/http/base/src/main/java/org/apache/felix/http/base/internal/whiteboard/WhiteboardManager.java Mon Oct 2 14:21:01 2017 @@ -782,6 +782,7 @@ public final class WhiteboardManager servletContext, (ServletInfo)info, handler.getBundleContext(), + info.getServiceReference().getBundle(), this.httpBundleContext.getBundle()); handler.getRegistry().registerServlet(servletHandler); }