mirror of
				https://github.com/laurivosandi/certidude
				synced 2025-10-31 01:19:11 +00:00 
			
		
		
		
	api: Submit inner and outer IP address when updating lease
This commit is contained in:
		| @@ -63,7 +63,8 @@ class SessionResource(object): | ||||
|                 try: | ||||
|                     last_seen = datetime.strptime(xattr.getxattr(path, "user.lease.last_seen"), "%Y-%m-%dT%H:%M:%S.%fZ") | ||||
|                     lease = dict( | ||||
|                         address = xattr.getxattr(path, "user.lease.address"), | ||||
|                         inner_address = xattr.getxattr(path, "user.lease.inner_address"), | ||||
|                         outer_address = xattr.getxattr(path, "user.lease.outer_address"), | ||||
|                         last_seen = last_seen, | ||||
|                         age = datetime.utcnow() - last_seen | ||||
|                     ) | ||||
|   | ||||
| @@ -22,7 +22,7 @@ class AttributeResource(object): | ||||
|             raise falcon.HTTPNotFound() | ||||
|         else: | ||||
|             try: | ||||
|                 whitelist = ip_address(attribs.get("user").get("lease").get("address").decode("ascii")) | ||||
|                 whitelist = ip_address(attribs.get("user").get("lease").get("inner_address").decode("ascii")) | ||||
|             except AttributeError: # TODO: probably race condition | ||||
|                 raise falcon.HTTPForbidden("Forbidden", | ||||
|                     "Attributes only accessible to the machine") | ||||
|   | ||||
| @@ -20,8 +20,9 @@ class LeaseDetailResource(object): | ||||
|         try: | ||||
|             path, buf, cert = authority.get_signed(cn) | ||||
|             return dict( | ||||
|                 last_seen = xattr.getxattr(path, "user.lease.last_seen"), | ||||
|                 address = xattr.getxattr(path, "user.lease.address").decode("ascii") | ||||
|                 last_seen =     xattr.getxattr(path, "user.lease.last_seen"), | ||||
|                 inner_address = xattr.getxattr(path, "user.lease.inner_address").decode("ascii"), | ||||
|                 outer_address = xattr.getxattr(path, "user.lease.outer_address").decode("ascii") | ||||
|             ) | ||||
|         except EnvironmentError: # Certificate or attribute not found | ||||
|             raise falcon.HTTPNotFound() | ||||
| @@ -35,7 +36,8 @@ class LeaseResource(object): | ||||
|         if req.get_param("serial") and cert.serial != req.get_param_as_int("serial"): # OCSP-ish solution for OpenVPN, not exposed for StrongSwan | ||||
|             raise falcon.HTTPForbidden("Forbidden", "Invalid serial number supplied") | ||||
|  | ||||
|         xattr.setxattr(path, "user.lease.address", req.get_param("address", required=True).encode("ascii")) | ||||
|         xattr.setxattr(path, "user.lease.outer_address", req.get_param("outer_address", required=True).encode("ascii")) | ||||
|         xattr.setxattr(path, "user.lease.inner_address", req.get_param("inner_address", required=True).encode("ascii")) | ||||
|         xattr.setxattr(path, "user.lease.last_seen", datetime.utcnow().strftime("%Y-%m-%dT%H:%M:%S.%f")[:-3] + "Z") | ||||
|         push.publish("lease-update", common_name) | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user