Beispiel #1
0
    def get(file_in_json=None):

        print file_in_json
        #file_in_json = LoadJSON(str=).get_json()

        if file_in_json:
            user_labels = file_in_json['user_labels']
            object_labels = file_in_json['object_labels']
            policy = file_in_json['policy']

            conf = Configuration()
            u_ls = []
            o_ls = []
            for ul in user_labels:
                t = (str(ul['name']), [str(i) for i in ul['dominates']])
                u_ls += [t]

            for ol in object_labels:
                t = (str(ol['name']), [str(i) for i in ol['dominates']])
                o_ls += [t]

            read_policy = policy['read']
            r_p = []
            for p in read_policy:
                t = (str(p['object_label']), str(p['user_label']))
                r_p += [t]

            conf.object_label_hierarchy = o_ls
            conf.user_label_hierarchy = u_ls
            conf.add_policy("read", r_p)

            lbac = LBAC(conf)
            return lbac
Beispiel #2
0
def simple_test_case():
	conf = Configuration()

	user_hierarchy = [ ("manager",["employee"]), ("employee",["stuff"]) ]

	object_hierarchy = [ ("secret", ["public"]), ("confidential",["public"]) ]

	conf.object_label_hierarchy = object_hierarchy

	conf.user_label_hierarchy = user_hierarchy

	conf.add_policy("read",[ ("confidential","employee" ) ] )
	# create LaBAC class with this configuration
	lbac = LBAC(conf)
	# now check if 'employee' can read 'confidential'
	print lbac.request(user='******', object='confidential', action='read')
Beispiel #3
0
def complext_test():
	
	conf = Configuration()
	conf.object_label_hierarchy = [\
						("o1",["o2","o3"]),\
						("o2",["o4"]),\
						("o5",["o4","o6"])\
		
				      ]
	
	conf.user_label_hierarchy = [\
						("u1",["u2"]),\
						("u3",["u1"])\
				    ]

	#conf.policy = [ ("o5","u1") ]
	conf.add_policy("write", [ ("o5","u1") ] )
	conf.add_policy("read",[ ("o1","u3"), ("o5","u3")] )
	
	lbac = LBAC(conf)
	print lbac.acl
	print lbac.request(user="******",object="o6",action="read")