This is an automated email from the ASF dual-hosted git repository.

cziegeler pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/felix-dev.git


The following commit(s) were added to refs/heads/master by this push:
     new 79e56e2203 FELIX-6626 : Support jakarta servlet registration
79e56e2203 is described below

commit 79e56e2203b319f0e7f16841d4f03c28498573b5
Author: Carsten Ziegeler <[email protected]>
AuthorDate: Tue Aug 22 06:47:48 2023 +0200

    FELIX-6626 : Support jakarta servlet registration
---
 .../main/java/org/apache/felix/webconsole/User.java | 21 +++------------------
 .../webconsole/internal/servlet/OsgiManager.java    | 13 ++++++-------
 .../internal/servlet/OsgiManagerHttpContext.java    |  7 ++++---
 .../webconsole/internal/servlet/PluginHolder.java   |  4 +++-
 .../webconsole/servlet/RequestVariableResolver.java | 16 ----------------
 .../apache/felix/webconsole/{ => servlet}/User.java |  3 +--
 6 files changed, 17 insertions(+), 47 deletions(-)

diff --git a/webconsole/src/main/java/org/apache/felix/webconsole/User.java 
b/webconsole/src/main/java/org/apache/felix/webconsole/User.java
index 0e56790943..86205cfd25 100644
--- a/webconsole/src/main/java/org/apache/felix/webconsole/User.java
+++ b/webconsole/src/main/java/org/apache/felix/webconsole/User.java
@@ -24,30 +24,15 @@ import org.osgi.annotation.versioning.ProviderType;
  * Representation of a user.
  * The user object can be used by plugins to {@link #authorize(String)} the 
user.
  * @since 3.4.0
+ * @deprecated Use {@link org.apache.felix.webconsole.servlet.User} instead
  */
 @ProviderType
-public interface User {
+@Deprecated
+public interface User extends org.apache.felix.webconsole.servlet.User {
     
     /**
      * The name of the request attribute providing an object of this class
      */
     String USER_ATTRIBUTE = User.class.getName();
 
-    /**
-     * Return the user object.
-     * This method might return {@code null} if no web console security 
provider is configured and
-     * access to the console is allowed without authentication.
-     * This is the same value as the request attribute from {@link 
WebConsoleSecurityProvider2#USER_ATTRIBUTE}.
-     * @return The user object or {@code null}
-     */
-    Object getUserObject();
-
-
-    /**
-     * Checks whether the user has the given role permission.
-     *
-     * @param role The requested role
-     * @return {@code true} if the user is given permission for the given role.
-     */
-    boolean authorize( String role );
 }
diff --git 
a/webconsole/src/main/java/org/apache/felix/webconsole/internal/servlet/OsgiManager.java
 
b/webconsole/src/main/java/org/apache/felix/webconsole/internal/servlet/OsgiManager.java
index a9f7c92a87..374ba8d36b 100644
--- 
a/webconsole/src/main/java/org/apache/felix/webconsole/internal/servlet/OsgiManager.java
+++ 
b/webconsole/src/main/java/org/apache/felix/webconsole/internal/servlet/OsgiManager.java
@@ -52,7 +52,7 @@ import javax.servlet.http.HttpServletRequestWrapper;
 import javax.servlet.http.HttpServletResponse;
 
 import org.apache.felix.webconsole.AbstractWebConsolePlugin;
-import org.apache.felix.webconsole.User;
+import org.apache.felix.webconsole.servlet.User;
 import org.apache.felix.webconsole.WebConsoleConstants;
 import org.apache.felix.webconsole.WebConsoleSecurityProvider;
 import org.apache.felix.webconsole.WebConsoleSecurityProvider2;
@@ -113,7 +113,9 @@ public class OsgiManager extends GenericServlet {
     /**
      * The name of the (internal) request attribute providing the categorized
      * label map structure.
+     * @deprecated use {@link WebConsoleConstants#ATTR_LABEL_MAP_CATEGORIZED} 
instead
      */
+    @Deprecated
     public static final String ATTR_LABEL_MAP_CATEGORIZED = 
WebConsoleConstants.ATTR_LABEL_MAP + ".categorized";
 
     /**
@@ -484,13 +486,9 @@ public class OsgiManager extends GenericServlet {
 
     }
 
-    /**
-     * @see javax.servlet.GenericServlet#service(javax.servlet.ServletRequest, 
javax.servlet.ServletResponse)
-     */
     @Override
     public void service(final ServletRequest req, final ServletResponse res)
-        throws ServletException, IOException
-    {
+    throws ServletException, IOException {
         // don't really expect to be called within a non-HTTP environment
         try
         {
@@ -597,7 +595,7 @@ public class OsgiManager extends GenericServlet {
 
         @SuppressWarnings("rawtypes")
         final Map labelMap = holder.getLocalizedLabelMap( 
resourceBundleManager, locale, this.defaultCategory );
-        final Object flatLabelMap = labelMap.remove( 
WebConsoleConstants.ATTR_LABEL_MAP );
+        final Object flatLabelMap = labelMap.remove( 
PluginHolder.ATTR_FLAT_LABEL_MAP );
 
         // the official request attributes
         request.setAttribute(WebConsoleConstants.ATTR_LANG_MAP, getLangMap());
@@ -680,6 +678,7 @@ public class OsgiManager extends GenericServlet {
         request.removeAttribute(ServletContextHelper.AUTHORIZATION);
         request.removeAttribute(WebConsoleSecurityProvider2.USER_ATTRIBUTE);
         request.removeAttribute(User.USER_ATTRIBUTE);
+        
request.removeAttribute(org.apache.felix.webconsole.User.USER_ATTRIBUTE);
     }
 
     private final AbstractWebConsolePlugin getConsolePlugin(final String label)
diff --git 
a/webconsole/src/main/java/org/apache/felix/webconsole/internal/servlet/OsgiManagerHttpContext.java
 
b/webconsole/src/main/java/org/apache/felix/webconsole/internal/servlet/OsgiManagerHttpContext.java
index dfd430c7c8..b12c9793b9 100644
--- 
a/webconsole/src/main/java/org/apache/felix/webconsole/internal/servlet/OsgiManagerHttpContext.java
+++ 
b/webconsole/src/main/java/org/apache/felix/webconsole/internal/servlet/OsgiManagerHttpContext.java
@@ -28,7 +28,7 @@ import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletRequestWrapper;
 import javax.servlet.http.HttpServletResponse;
 
-import org.apache.felix.webconsole.User;
+import org.apache.felix.webconsole.servlet.User;
 import org.apache.felix.webconsole.WebConsoleSecurityProvider;
 import org.apache.felix.webconsole.WebConsoleSecurityProvider2;
 import org.osgi.framework.Bundle;
@@ -93,7 +93,7 @@ final class OsgiManagerHttpContext extends 
ServletContextHelper {
         }
 
         if ( result ) {
-            request.setAttribute(User.USER_ATTRIBUTE, new User(){
+            request.setAttribute(User.USER_ATTRIBUTE, new 
org.apache.felix.webconsole.User(){
 
                                @Override
                                public boolean authorize(String role) {
@@ -106,7 +106,7 @@ final class OsgiManagerHttpContext extends 
ServletContextHelper {
                         // no provider, allow (compatibility)
                         return true;
                     }
-                                       return 
provider.authorize(this.getUserObject(), role);
+                                       return provider.authorize(user, role);
                                }
 
                                @Override
@@ -115,6 +115,7 @@ final class OsgiManagerHttpContext extends 
ServletContextHelper {
                                }
                 
             });
+            
request.setAttribute(org.apache.felix.webconsole.User.USER_ATTRIBUTE, 
request.getAttribute(User.USER_ATTRIBUTE));
         }
         return result;
     }
diff --git 
a/webconsole/src/main/java/org/apache/felix/webconsole/internal/servlet/PluginHolder.java
 
b/webconsole/src/main/java/org/apache/felix/webconsole/internal/servlet/PluginHolder.java
index b6d241d85a..86c91930c3 100644
--- 
a/webconsole/src/main/java/org/apache/felix/webconsole/internal/servlet/PluginHolder.java
+++ 
b/webconsole/src/main/java/org/apache/felix/webconsole/internal/servlet/PluginHolder.java
@@ -53,6 +53,8 @@ import org.osgi.util.tracker.ServiceTrackerCustomizer;
  */
 class PluginHolder implements ServiceTrackerCustomizer<Servlet, Plugin> {
 
+    public static final String ATTR_FLAT_LABEL_MAP = 
PluginHolder.class.getName() + ".flatLabelMap";
+
     private final OsgiManager osgiManager;
 
     // The Web Console's bundle context to access the plugin services
@@ -265,7 +267,7 @@ class PluginHolder implements 
ServiceTrackerCustomizer<Servlet, Plugin> {
         }
 
         // flat map of labels to titles (FELIX-3833)
-        map.put( WebConsoleConstants.ATTR_LABEL_MAP, flatMap );
+        map.put( ATTR_FLAT_LABEL_MAP, flatMap );
 
         return map;
     }
diff --git 
a/webconsole/src/main/java/org/apache/felix/webconsole/servlet/RequestVariableResolver.java
 
b/webconsole/src/main/java/org/apache/felix/webconsole/servlet/RequestVariableResolver.java
index 7ced6500a3..e80dd8fb75 100644
--- 
a/webconsole/src/main/java/org/apache/felix/webconsole/servlet/RequestVariableResolver.java
+++ 
b/webconsole/src/main/java/org/apache/felix/webconsole/servlet/RequestVariableResolver.java
@@ -20,8 +20,6 @@ package org.apache.felix.webconsole.servlet;
 
 import java.util.HashMap;
 
-import jakarta.servlet.ServletRequest;
-
 /**
  * The <code>RequestVariableResolver</code> is a <code>HashMap</code> that
  * is used by the webconsole to process variables in the template.
@@ -74,18 +72,4 @@ public class RequestVariableResolver extends HashMap<String, 
Object> {
         }
         return null;
     }
-
-    /**
-     * Returns the {@link RequestVariableResolver} for the given request.
-     * <p>
-     * The resolver is added to the request attributes via the web console main
-     * servlet before it invokes any plugins.
-     * @param request The request
-     * @return The {@link RequestVariableResolver} for the given request.
-     * @see #KEY_APP_ROOT
-     * @see #KEY_PLUGIN_ROOT
-     */
-    public static RequestVariableResolver getRequestVariableResolver( final 
ServletRequest request) {
-        return (RequestVariableResolver) request.getAttribute( 
RequestVariableResolver.REQUEST_ATTRIBUTE );
-    }
 }
diff --git a/webconsole/src/main/java/org/apache/felix/webconsole/User.java 
b/webconsole/src/main/java/org/apache/felix/webconsole/servlet/User.java
similarity index 97%
copy from webconsole/src/main/java/org/apache/felix/webconsole/User.java
copy to webconsole/src/main/java/org/apache/felix/webconsole/servlet/User.java
index 0e56790943..cb7240a517 100644
--- a/webconsole/src/main/java/org/apache/felix/webconsole/User.java
+++ b/webconsole/src/main/java/org/apache/felix/webconsole/servlet/User.java
@@ -16,14 +16,13 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.felix.webconsole;
+package org.apache.felix.webconsole.servlet;
 
 import org.osgi.annotation.versioning.ProviderType;
 
 /**
  * Representation of a user.
  * The user object can be used by plugins to {@link #authorize(String)} the 
user.
- * @since 3.4.0
  */
 @ProviderType
 public interface User {

Reply via email to