7777import org .osgi .service .packageadmin .PackageAdmin ;
7878import org .osgi .util .tracker .ServiceTracker ;
7979import org .osgi .util .tracker .ServiceTrackerCustomizer ;
80+ import org .owasp .encoder .Encode ;
8081
8182import jakarta .servlet .ServletException ;
8283import 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