Slices, an extension script for CostaPy
This commit is contained in:
		
							parent
							
								
									8fa748fd62
								
							
						
					
					
						commit
						a2df8314dc
					
				
							
								
								
									
										0
									
								
								slices/__init__.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								slices/__init__.py
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										13
									
								
								slices/bodyfetcher.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								slices/bodyfetcher.py
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,13 @@
 | 
			
		||||
import cherrypy
 | 
			
		||||
import cherrypy_cors
 | 
			
		||||
import json
 | 
			
		||||
 | 
			
		||||
def body_json():
 | 
			
		||||
    result = None
 | 
			
		||||
    if cherrypy.request.method == 'OPTIONS':
 | 
			
		||||
        cherrypy_cors.preflight(allowed_methods=['GET', 'POST'])
 | 
			
		||||
    if cherrypy.request.method == 'POST':
 | 
			
		||||
        cherrypy.serving.response.headers['Content-Type'] = 'application/json'
 | 
			
		||||
        body_request = cherrypy.request.body.read()
 | 
			
		||||
        result = json.loads(body_request.decode())
 | 
			
		||||
    return result
 | 
			
		||||
							
								
								
									
										23
									
								
								slices/tokenguard.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								slices/tokenguard.py
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,23 @@
 | 
			
		||||
from cryptography.hazmat.primitives import serialization
 | 
			
		||||
import jwt
 | 
			
		||||
 | 
			
		||||
def encode(payload, id_rsa, passphrase):
 | 
			
		||||
    private_key = open(id_rsa, 'r').read()
 | 
			
		||||
    key         = serialization.load_ssh_private_key(private_key.encode(), password=passphrase)
 | 
			
		||||
    token       = jwt.encode(
 | 
			
		||||
        payload     = payload,
 | 
			
		||||
        key         = key,
 | 
			
		||||
        algorithm   = 'RS256'
 | 
			
		||||
    )
 | 
			
		||||
    return token
 | 
			
		||||
 | 
			
		||||
def decode(token, id_rsa):
 | 
			
		||||
    public_key  = open(id_rsa, 'r').read()
 | 
			
		||||
    key         = serialization.load_ssh_public_key(public_key.encode())
 | 
			
		||||
    header      = jwt.get_unverified_header(token)
 | 
			
		||||
    payload     = jwt.decode(
 | 
			
		||||
        jwt         = token,
 | 
			
		||||
        key         = key,
 | 
			
		||||
        algorithms  = [header['alg'], ]
 | 
			
		||||
    )
 | 
			
		||||
    return payload
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user