Пример #1
0
    def test_saving_data_file(self):  # just for the memory backend
        new_bundle = copy.deepcopy(self.API_OBJECTS_2)
        new_id = "indicator--%s" % uuid.uuid4()
        new_bundle["objects"][0]["id"] = new_id

        post_header = copy.deepcopy(self.auth)
        post_header["Content-Type"] = MEDIA_TYPE_STIX_V20
        post_header["Accept"] = MEDIA_TYPE_TAXII_V20

        with tempfile.NamedTemporaryFile() as f:
            self.client.post(
                test.ADD_OBJECTS_EP,
                data=json.dumps(new_bundle),
                headers=post_header,
            )
            self.app.medallion_backend.save_data_to_file(f.name)
            assert os.path.isfile(f.name)

            configuration = copy.deepcopy(self.configuration)
            configuration["backend"]["filename"] = f.name

            set_config(self.app, "backend", configuration)

            r_get = self.client.get(
                test.GET_OBJECTS_EP + "?match[id]=%s" % new_id,
                headers=self.auth,
            )
            objs = self.load_json_response(r_get.data)
            assert objs["objects"][0]["id"] == new_id
Пример #2
0
 def setUp(self):
     self.app = application_instance
     self.app_context = application_instance.app_context()
     self.app_context.push()
     self.app.testing = True
     register_blueprints(self.app)
     self.configuration = {
         "backend": {
             "module": "medallion.backends.mongodb_backend",
             "module_class": "MongoBackend",
             "uri": "mongodb://localhost:27017/",
             "default_page_size": 20,
         },
         "users": {
             "admin": "Password0",
         },
         "taxii": {
             "max_page_size": 20,
         },
     }
     self.client = application_instance.test_client()
     set_config(self.app, "users", self.configuration)
     set_config(self.app, "taxii", self.configuration)
     encoded_auth = 'Basic ' + base64.b64encode(b"admin:Password0").decode(
         "ascii")
     self.auth = {'Authorization': encoded_auth}
Пример #3
0
def main():

    if len(sys.argv) < 2:
        raise ValueError("No config file")
    config_file_path = sys.argv[1]
    with open(config_file_path, 'r') as f:
        set_config(json.load(f))

    init_backend(get_config()['backend'])

    application_instance.run(host="0.0.0.0", debug=True)
Пример #4
0
def main():

    if len(sys.argv) < 2:
        raise ValueError("No config file")
    config_file_path = sys.argv[1]
    with open(config_file_path, 'r') as f:
        set_config(json.load(f))

    init_backend(get_config()['backend'])

    IP = '0.0.0.0'
    PORT = 9999
    if len(sys.argv) < 3:
        print "No port, use 9999 as default"
    else:
        PORT = int(sys.argv[2])
    application_instance.run(debug=True, host=IP, port=PORT)
Пример #5
0
def main():
    medallion_parser = _get_argparser()
    medallion_args = medallion_parser.parse_args()
    log.setLevel(medallion_args.log_level)

    with open(medallion_args.CONFIG_PATH, "r") as f:
        configuration = json.load(f)

    set_config(application_instance, configuration["users"])
    init_backend(application_instance, configuration["backend"])
    register_blueprints(application_instance)

    application_instance.run(
        host=medallion_args.host,
        port=medallion_args.port,
        debug=medallion_args.debug_mode
    )
 def setUp(self):
     self.app = application_instance
     self.app_context = application_instance.app_context()
     self.app_context.push()
     self.app.testing = True
     register_blueprints(self.app)
     self.configuration = {
         "backend": {
             "module": "medallion.backends.memory_backend",
             "module_class": "MemoryBackend",
             "filename": DATA_FILE
         },
         "users": {
             "admin": "Password0"
         }
     }
     init_backend(self.app, self.configuration["backend"])
     set_config(self.app, self.configuration["users"])
     self.client = application_instance.test_client()
     encoded_auth = 'Basic ' + base64.b64encode(b"admin:Password0").decode("ascii")
     self.auth = {'Authorization': encoded_auth}
Пример #7
0
def main():
    medallion_parser = _get_argparser()
    medallion_args = medallion_parser.parse_args()
    # Configuration checking sets up debug logging and does not run the app
    if medallion_args.conf_check:
        medallion_args.log_level = logging.DEBUG
    log.setLevel(medallion_args.log_level)

    configuration = medallion.config.load_config(
        medallion_args.CONFIG_PATH or medallion_args.conf_file,
        medallion_args.conf_dir if not medallion_args.no_conf_dir else None,
    )

    set_config(APPLICATION_INSTANCE, "users", configuration)
    set_config(APPLICATION_INSTANCE, "taxii", configuration)
    set_config(APPLICATION_INSTANCE, "backend", configuration)

    APPLICATION_INSTANCE.medallion_backend = connect_to_backend(
        get_application_instance_config_values(APPLICATION_INSTANCE,
                                               "backend"))
    if (not APPLICATION_INSTANCE.blueprints):
        register_blueprints(APPLICATION_INSTANCE)

    if not medallion_args.conf_check:
        APPLICATION_INSTANCE.run(
            host=medallion_args.host,
            port=medallion_args.port,
            debug=medallion_args.debug_mode,
        )
Пример #8
0
 def setUp(self):
     self.app = application_instance
     self.app_context = application_instance.app_context()
     self.app_context.push()
     self.app.testing = True
     register_blueprints(self.app)
     if self.type == "mongo":
         reset_db(self.mongodb_config["backend"]["uri"])
         self.configuration = self.mongodb_config
     elif self.type == "memory":
         self.configuration = self.memory_config
     elif self.type == "memory_no_config":
         self.configuration = self.no_config
     elif self.type == "no_taxii":
         self.configuration = self.config_no_taxii
     elif self.type == "no_auth":
         self.configuration = self.config_no_auth
     elif self.type == "no_backend":
         self.configuration = self.config_no_backend
     else:
         raise RuntimeError("Unknown backend!")
     set_config(self.app, "backend", self.configuration)
     set_config(self.app, "users", self.configuration)
     set_config(self.app, "taxii", self.configuration)
     self.client = application_instance.test_client()
     if self.type == "memory_no_config" or self.type == "no_auth":
         encoded_auth = "Basic " + \
             base64.b64encode(b"user:pass").decode("ascii")
     else:
         encoded_auth = "Basic " + \
             base64.b64encode(b"admin:Password0").decode("ascii")
     self.auth = {"Authorization": encoded_auth}
 def setUp(self):
     self.app = application_instance
     self.application_context = self.app.app_context()
     self.application_context.push()
     self.app.testing = True
     register_blueprints(self.app)
     reset_db()
     self.configuration = {
         "backend": {
             "module": "medallion.backends.mongodb_backend",
             "module_class": "MongoBackend",
             "url": "mongodb://localhost:27017/"
         },
         "users": {
             "admin": "Password0"
         }
     }
     init_backend(self.app, self.configuration["backend"])
     set_config(self.app, self.configuration["users"])
     self.client = application_instance.test_client()
     encoded_auth = 'Basic ' + base64.b64encode(b"admin:Password0").decode(
         "ascii")
     self.auth = {'Authorization': encoded_auth}
Пример #10
0
 def setUp(self, start_threads=True):
     self.__name__ = self.type
     self.app = APPLICATION_INSTANCE
     self.app_context = APPLICATION_INSTANCE.app_context()
     self.app_context.push()
     self.app.testing = True
     if not self.app.blueprints:
         register_blueprints(self.app)
     if self.type == "mongo":
         self.configuration = self.mongodb_config
     elif self.type == "memory":
         self.configuration = self.memory_config
     elif self.type == "memory_no_config":
         self.configuration = self.no_config
     elif self.type == "no_taxii":
         self.configuration = self.config_no_taxii
     elif self.type == "no_auth":
         self.configuration = self.config_no_auth
     elif self.type == "no_backend":
         self.configuration = self.config_no_backend
     else:
         raise RuntimeError("Unknown backend!")
     set_config(self.app, "backend", self.configuration)
     set_config(self.app, "users", self.configuration)
     set_config(self.app, "taxii", self.configuration)
     if not start_threads:
         self.app.backend_config["run_cleanup_threads"] = False
     APPLICATION_INSTANCE.medallion_backend = connect_to_backend(
         get_application_instance_config_values(APPLICATION_INSTANCE,
                                                "backend"),
         clear_db=True)
     self.client = APPLICATION_INSTANCE.test_client()
     if self.type == "memory_no_config" or self.type == "no_auth":
         encoded_auth = "Basic " + \
             base64.b64encode(b"user:pass").decode("ascii")
     elif self.type == "mongo":
         encoded_auth = "Basic " + \
             base64.b64encode(b"root:example").decode("ascii")
     else:
         encoded_auth = "Basic " + \
             base64.b64encode(b"admin:Password0").decode("ascii")
     self.headers = {
         "Accept": "application/taxii+json;version=2.1",
         "Authorization": encoded_auth
     }
     self.post_headers = {
         "Content-Type": "application/taxii+json;version=2.1",
         "Accept": "application/taxii+json;version=2.1",
         "Authorization": encoded_auth
     }