27 lines
		
	
	
		
			742 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			27 lines
		
	
	
		
			742 B
		
	
	
	
		
			Python
		
	
	
	
	
	
"""Functions for creating XML output."""
 | 
						|
from structlog import get_logger
 | 
						|
 | 
						|
from passbook.lib.utils.template import render_to_string
 | 
						|
from passbook.providers.saml.utils.xml_signing import get_signature_xml
 | 
						|
 | 
						|
LOGGER = get_logger()
 | 
						|
 | 
						|
 | 
						|
def get_authnrequest_xml(parameters, signed=False):
 | 
						|
    """Get AuthN Request XML"""
 | 
						|
    # Reset signature.
 | 
						|
    params = {}
 | 
						|
    params.update(parameters)
 | 
						|
    params["AUTHN_REQUEST_SIGNATURE"] = ""
 | 
						|
 | 
						|
    unsigned = render_to_string("saml/sp/xml/authn_request.xml", params)
 | 
						|
    if not signed:
 | 
						|
        return unsigned
 | 
						|
 | 
						|
    # Sign it.
 | 
						|
    signature_xml = get_signature_xml()
 | 
						|
    params["AUTHN_REQUEST_SIGNATURE"] = signature_xml
 | 
						|
    signed = render_to_string("saml/sp/xml/authn_request.xml", params)
 | 
						|
 | 
						|
    return signed
 |