Skip to content

Commit 2d37b3c

Browse files
committed
FELIX-6757 : Properly encode bundle information
1 parent f0e7a0f commit 2d37b3c

1 file changed

Lines changed: 12 additions & 7 deletions

File tree

webconsole/src/main/java/org/apache/felix/webconsole/internal/core/BundlesServlet.java

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@
7777
import org.osgi.service.packageadmin.PackageAdmin;
7878
import org.osgi.util.tracker.ServiceTracker;
7979
import org.osgi.util.tracker.ServiceTrackerCustomizer;
80+
import org.owasp.encoder.Encode;
8081

8182
import jakarta.servlet.ServletException;
8283
import jakarta.servlet.http.HttpServletRequest;
@@ -137,14 +138,14 @@ public class BundlesServlet extends AbstractOsgiManagerPlugin implements Invento
137138
private ServiceRegistration<BundleInfoProvider> bipCapabilitiesRequired;
138139

139140
/**
140-
* Default constructor
141+
* Default constructor
141142
* @throws IOException If template can't be read
142143
*/
143144
public BundlesServlet() throws IOException {
144145
// load templates
145146
TEMPLATE_MAIN = readTemplateFile( "/templates/bundles.html" );
146147
}
147-
148+
148149
@Override
149150
protected String getCategory() {
150151
return CATEGORY_OSGI;
@@ -170,24 +171,24 @@ public void activate( BundleContext bundleContext ) {
170171
super.activate( bundleContext );
171172

172173
bundleInfoTracker = new ServiceTracker<>( bundleContext, BundleInfoProvider.class, new ServiceTrackerCustomizer<BundleInfoProvider,BundleInfoProvider>() {
173-
174+
174175
@Override
175176
public BundleInfoProvider addingService(ServiceReference<BundleInfoProvider> reference) {
176177
return bundleContext.getService(reference);
177178
}
178-
179+
179180
@Override
180181
public void modifiedService(ServiceReference<BundleInfoProvider> reference, BundleInfoProvider service) {
181182
// nothing to do
182183
}
183-
184+
184185
@Override
185186
public void removedService(ServiceReference<BundleInfoProvider> reference, BundleInfoProvider service) {
186187
try {
187188
bundleContext.ungetService(reference);
188189
} catch ( final IllegalStateException ise) {
189190
// might happen on shutdown, ignore
190-
}
191+
}
191192
}
192193
});
193194
bundleInfoTracker.open();
@@ -762,7 +763,11 @@ private void keyVal(final List<Map<String, Object>> props, final String key, fin
762763
{
763764
final Map<String, Object> obj = new LinkedHashMap<String, Object>();
764765
obj.put("key", key);
765-
obj.put("value", val);
766+
if ( val instanceof String ) {
767+
obj.put("value", Encode.forJavaScript((String)val));
768+
} else {
769+
obj.put("value", val);
770+
}
766771
props.add(obj);
767772
}
768773
}

0 commit comments

Comments
 (0)