View Javadoc
1   /*
2    * Logback: the reliable, generic, fast and flexible logging framework.
3    * Copyright (C) 1999-2023, QOS.ch. All rights reserved.
4    *
5    * This program and the accompanying materials are dual-licensed under
6    * either the terms of the Eclipse Public License v1.0 as published by
7    * the Eclipse Foundation
8    *
9    *   or (per the licensee's choosing)
10   *
11   * under the terms of the GNU Lesser General Public License version 2.1
12   * as published by the Free Software Foundation.
13   */
14  
15  package ch.qos.logback.classic.joran.serializedModel;
16  
17  import ch.qos.logback.core.model.Model;
18  import ch.qos.logback.core.net.HardenedObjectInputStream;
19  
20  import java.io.IOException;
21  import java.io.InputStream;
22  import java.util.ArrayList;
23  import java.util.List;
24  
25  public class HardenedModelInputStream extends HardenedObjectInputStream {
26  
27  
28      static public List<String> getWhilelist() {
29          List<String> whitelist = new ArrayList<String>();
30          whitelist.add(Model.class.getName());
31          whitelist.add(ch.qos.logback.core.model.Model.class.getName());
32          whitelist.add(ch.qos.logback.core.model.IncludeModel.class.getName());
33          whitelist.add(ch.qos.logback.core.model.InsertFromJNDIModel.class.getName());
34          whitelist.add(ch.qos.logback.classic.model.RootLoggerModel.class.getName());
35          whitelist.add(ch.qos.logback.core.model.ImportModel.class.getName());
36          whitelist.add(ch.qos.logback.core.model.AppenderRefModel.class.getName());
37          whitelist.add(ch.qos.logback.core.model.ComponentModel.class.getName());
38          whitelist.add(ch.qos.logback.core.model.StatusListenerModel.class.getName());
39          whitelist.add(ch.qos.logback.core.model.ShutdownHookModel.class.getName());
40          whitelist.add(ch.qos.logback.core.model.NamedComponentModel.class.getName());
41          whitelist.add(ch.qos.logback.core.model.AppenderModel.class.getName());
42          whitelist.add(ch.qos.logback.core.model.EventEvaluatorModel.class.getName());
43          whitelist.add(ch.qos.logback.core.model.DefineModel.class.getName());
44          whitelist.add(ch.qos.logback.core.model.SequenceNumberGeneratorModel.class.getName());
45          whitelist.add(ch.qos.logback.core.model.ImplicitModel.class.getName());
46          whitelist.add(ch.qos.logback.classic.model.ReceiverModel.class.getName());
47          whitelist.add(ch.qos.logback.classic.model.LoggerContextListenerModel.class.getName());
48          whitelist.add(ch.qos.logback.core.model.conditional.ThenModel.class.getName());
49          whitelist.add(ch.qos.logback.core.model.conditional.IfModel.class.getName());
50          whitelist.add(ch.qos.logback.core.model.NamedModel.class.getName());
51          whitelist.add(ch.qos.logback.classic.model.ContextNameModel.class.getName());
52          whitelist.add(ch.qos.logback.core.model.ParamModel.class.getName());
53          whitelist.add(ch.qos.logback.core.model.TimestampModel.class.getName());
54          whitelist.add(ch.qos.logback.core.model.PropertyModel.class.getName());
55          whitelist.add(ch.qos.logback.core.model.conditional.ElseModel.class.getName());
56          whitelist.add(ch.qos.logback.classic.model.ConfigurationModel.class.getName());
57          whitelist.add(ch.qos.logback.core.model.SiftModel.class.getName());
58          whitelist.add(ch.qos.logback.classic.model.LoggerModel.class.getName());
59          whitelist.add(ch.qos.logback.core.model.SerializeModelModel.class.getName());
60  
61  
62          return whitelist;
63      }
64      public HardenedModelInputStream(InputStream is) throws IOException {
65          super(is, getWhilelist());
66      }
67  }