예제 #1
0
 def get(self):
   session_id = get_session_id(session, request)
   dao = ThreatDAO(session_id)
   objts = dao.get_threats_summary()
   dao.close()
   resp = make_response(json_serialize(objts, session_id=session_id))
   resp.headers['Content-Type'] = "application/json"
   return resp
예제 #2
0
 def get(self,environment_name):
   session_id = get_session_id(session, request)
   dao = ThreatDAO(session_id)
   model = dao.get_threat_model(environment_name)
   dao.close()
   resp = make_response(json_serialize(model, session_id=session_id), OK)
   resp.contenttype = 'application/json'
   return resp
예제 #3
0
  def get(self, name):
    session_id = get_session_id(session, request)

    dao = ThreatDAO(session_id)
    threat = dao.get_threat_by_name(name=name)
    dao.close()

    resp = make_response(json_serialize(threat, session_id=session_id), OK)
    resp.headers['Content-type'] = 'application/json'
    return resp
예제 #4
0
  def delete(self, name):
    session_id = get_session_id(session, request)

    dao = ThreatDAO(session_id)
    dao.delete_threat(name=name)
    dao.close()

    resp_dict = {'message': 'Threat successfully deleted'}
    resp = make_response(json_serialize(resp_dict), OK)
    resp.headers['Content-type'] = 'application/json'
    return resp
예제 #5
0
  def get(self):
    session_id = get_session_id(session, request)
    constraint_id = request.args.get('constraint_id', -1)

    dao = ThreatDAO(session_id)
    threats = dao.get_threats(constraint_id=constraint_id)
    dao.close()

    resp = make_response(json_serialize(threats, session_id=session_id), OK)
    resp.contenttype = 'application/json'
    return resp
예제 #6
0
  def get(self):
    session_id = get_session_id(session, request)
    environment_name = request.args.get('environment', '')

    dao = ThreatDAO(session_id)
    threats = dao.get_threat_types(environment_name=environment_name)
    dao.close()

    resp = make_response(json_serialize(threats, session_id=session_id), OK)
    resp.contenttype = 'application/json'
    return resp
예제 #7
0
  def get(self, name):
    session_id = get_session_id(session, request)
    environment_name = request.args.get('environment', '')

    dao = ThreatDAO(session_id)
    threat_type = dao.get_threat_type_by_name(name=name, environment_name=environment_name)
    dao.close()

    resp = make_response(json_serialize(threat_type, session_id=session_id), OK)
    resp.headers['Content-type'] = 'application/json'
    return resp
예제 #8
0
  def delete(self, name):
    session_id = get_session_id(session, request)
    environment_name = request.args.get('environment', '')

    dao = ThreatDAO(session_id)
    dao.delete_threat_type(name=name, environment_name=environment_name)
    dao.close()

    resp_dict = {'message': 'Threat type successfully deleted'}
    resp = make_response(json_serialize(resp_dict), OK)
    resp.headers['Content-type'] = 'application/json'
    return resp
예제 #9
0
    def post(self):
        session_id = get_session_id(session, request)

        dao = ThreatDAO(session_id)
        new_threat = dao.from_json(request)
        threat_id = dao.add_threat(new_threat)
        dao.close()

        resp_dict = {'message': 'Threat successfully added', 'threat_id': threat_id}
        resp = make_response(json_serialize(resp_dict), httplib.OK)
        resp.contenttype = 'application/json'
        return resp
예제 #10
0
    def post(self):
        session_id = get_session_id(session, request)
        environment_name = request.args.get('environment', '')

        dao = ThreatDAO(session_id)
        new_value_type = dao.type_from_json(request)
        threat_type_id = dao.add_threat_type(new_value_type, environment_name=environment_name)
        dao.close()

        resp_dict = {'message': 'Threat type successfully added', 'threat_type_id': threat_type_id}
        resp = make_response(json_serialize(resp_dict), httplib.OK)
        resp.contenttype = 'application/json'
        return resp
예제 #11
0
    def get_threatened_assets(self, threat_name, environment_name):
        """
        :type threat_name: str
        :type environment_name: str
        :rtype: list[Asset]
        """
        threat_dao = ThreatDAO(self.session_id)

        try:
            found_threat = threat_dao.get_threat_by_name(threat_name)
            threat_id = found_threat.theId
        except ObjectNotFoundHTTPError as ex:
            self.close()
            raise ex
        except ARMHTTPError as ex:
            self.close()
            raise ex

        environment_dao = EnvironmentDAO(self.session_id)
        try:
            found_environment = environment_dao.get_environment_by_name(environment_name)
            environment_id = found_environment.theId
        except ObjectNotFoundHTTPError as ex:
            self.close()
            raise ex
        except ARMHTTPError as ex:
            self.close()
            raise ex

        try:
            threatened_assets = self.db_proxy.threatenedAssets(threat_id, environment_id)
        except DatabaseProxyException as ex:
            self.close()
            raise ARMHTTPError(ex)
        except ARMException as ex:
            self.close()
            raise ARMHTTPError(ex)

        return threatened_assets
예제 #12
0
    def put(self, name):
        session_id = get_session_id(session, request)

        dao = ThreatDAO(session_id)
        req = dao.from_json(request)
        dao.update_threat(req, name=name)
        dao.close()

        resp_dict = {'message': 'Threat successfully updated'}
        resp = make_response(json_serialize(resp_dict), httplib.OK)
        resp.headers['Content-type'] = 'application/json'
        return resp
예제 #13
0
    def put(self, name):
        session_id = get_session_id(session, request)
        environment_name = request.args.get('environment', '')

        dao = ThreatDAO(session_id)
        threat_type = dao.type_from_json(request)
        dao.update_threat_type(threat_type, name=name, environment_name=environment_name)
        dao.close()

        resp_dict = {'message': 'Threat type successfully updated'}
        resp = make_response(json_serialize(resp_dict), httplib.OK)
        resp.headers['Content-type'] = 'application/json'
        return resp
예제 #14
0
    def post(self):
        session_id = get_session_id(session, request)

        dao = ThreatDAO(session_id)
        new_threat = dao.from_json(request)
        threat_id = dao.add_threat(new_threat)
        dao.close()

        resp_dict = {
            'message': 'Threat successfully added',
            'threat_id': threat_id
        }
        resp = make_response(json_serialize(resp_dict), OK)
        resp.contenttype = 'application/json'
        return resp
예제 #15
0
    def post(self):
        session_id = get_session_id(session, request)
        environment_name = request.args.get('environment', '')

        dao = ThreatDAO(session_id)
        new_value_type = dao.type_from_json(request)
        threat_type_id = dao.add_threat_type(new_value_type,
                                             environment_name=environment_name)
        dao.close()

        resp_dict = {
            'message': 'Threat type successfully added',
            'threat_type_id': threat_type_id
        }
        resp = make_response(json_serialize(resp_dict), OK)
        resp.contenttype = 'application/json'
        return resp