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 {