1+
2+
3+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5+
6+
7+ < html xmlns ="http://www.w3.org/1999/xhtml ">
8+ < head >
9+ < meta http-equiv ="Content-Type " content ="text/html; charset=utf-8 " />
10+
11+ < title > saml2.authn_request — OneLogin SAML Python library classes and methods</ title >
12+
13+ < link rel ="stylesheet " href ="../../_static/default.css " type ="text/css " />
14+ < link rel ="stylesheet " href ="../../_static/pygments.css " type ="text/css " />
15+
16+ < script type ="text/javascript ">
17+ var DOCUMENTATION_OPTIONS = {
18+ URL_ROOT : '../../' ,
19+ VERSION : '' ,
20+ COLLAPSE_INDEX : false ,
21+ FILE_SUFFIX : '.html' ,
22+ HAS_SOURCE : true
23+ } ;
24+ </ script >
25+ < script type ="text/javascript " src ="../../_static/jquery.js "> </ script >
26+ < script type ="text/javascript " src ="../../_static/underscore.js "> </ script >
27+ < script type ="text/javascript " src ="../../_static/doctools.js "> </ script >
28+ < link rel ="top " title ="OneLogin SAML Python library classes and methods " href ="../../index.html " />
29+ < link rel ="up " title ="Class code " href ="../index.html " />
30+ </ head >
31+ < body >
32+ < div class ="related ">
33+ < h3 > Navigation</ h3 >
34+ < ul >
35+ < li class ="right " style ="margin-right: 10px ">
36+ < a href ="../../genindex.html " title ="General Index "
37+ accesskey ="I "> index</ a > </ li >
38+ < li class ="right " >
39+ < a href ="../../py-modindex.html " title ="Python Class Index "
40+ > modules</ a > |</ li >
41+ < li > < a href ="../../index.html "> OneLogin SAML Python library classes and methods</ a > »</ li >
42+ < li > < a href ="../index.html " accesskey ="U "> Class code</ a > »</ li >
43+ </ ul >
44+ </ div >
45+
46+ < div class ="document ">
47+ < div class ="documentwrapper ">
48+ < div class ="bodywrapper ">
49+ < div class ="body ">
50+
51+ < h1 > Source code for saml2.authn_request</ h1 > < div class ="highlight "> < pre >
52+ < span class ="c "> # -*- coding: utf-8 -*-</ span >
53+
54+ < span class ="c "> # Copyright (c) 2014, OneLogin, Inc.</ span >
55+ < span class ="c "> # All rights reserved.</ span >
56+
57+ < span class ="kn "> from</ span > < span class ="nn "> base64</ span > < span class ="kn "> import</ span > < span class ="n "> b64encode</ span >
58+ < span class ="kn "> from</ span > < span class ="nn "> datetime</ span > < span class ="kn "> import</ span > < span class ="n "> datetime</ span >
59+ < span class ="kn "> from</ span > < span class ="nn "> zlib</ span > < span class ="kn "> import</ span > < span class ="n "> compress</ span >
60+
61+ < span class ="kn "> from</ span > < span class ="nn "> saml2.utils</ span > < span class ="kn "> import</ span > < span class ="n "> OneLogin_Saml2_Utils</ span >
62+ < span class ="kn "> from</ span > < span class ="nn "> saml2.constants</ span > < span class ="kn "> import</ span > < span class ="n "> OneLogin_Saml2_Constants</ span >
63+
64+
65+ < div class ="viewcode-block " id ="OneLogin_Saml2_Authn_Request "> < a class ="viewcode-back " href ="../../saml2.html#saml2.authn_request.OneLogin_Saml2_Authn_Request "> [docs]</ a > < span class ="k "> class</ span > < span class ="nc "> OneLogin_Saml2_Authn_Request</ span > < span class ="p "> :</ span >
66+
67+ < span class ="k "> def</ span > < span class ="nf "> __init__</ span > < span class ="p "> (</ span > < span class ="bp "> self</ span > < span class ="p "> ,</ span > < span class ="n "> settings</ span > < span class ="p "> ):</ span >
68+ < span class ="sd "> """</ span >
69+ < span class ="sd "> Constructs the AuthnRequest object.</ span >
70+
71+ < span class ="sd "> Arguments are:</ span >
72+ < span class ="sd "> * (OneLogin_Saml2_Settings) settings. Setting data</ span >
73+ < span class ="sd "> """</ span >
74+ < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> __settings</ span > < span class ="o "> =</ span > < span class ="n "> settings</ span >
75+
76+ < span class ="n "> sp_data</ span > < span class ="o "> =</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> __settings</ span > < span class ="o "> .</ span > < span class ="n "> get_sp_data</ span > < span class ="p "> ()</ span >
77+ < span class ="n "> security</ span > < span class ="o "> =</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> __settings</ span > < span class ="o "> .</ span > < span class ="n "> get_security_data</ span > < span class ="p "> ()</ span >
78+
79+ < span class ="n "> uid</ span > < span class ="o "> =</ span > < span class ="n "> OneLogin_Saml2_Utils</ span > < span class ="o "> .</ span > < span class ="n "> generate_unique_id</ span > < span class ="p "> ()</ span >
80+ < span class ="n "> issue_instant</ span > < span class ="o "> =</ span > < span class ="n "> OneLogin_Saml2_Utils</ span > < span class ="o "> .</ span > < span class ="n "> parse_time_to_SAML</ span > < span class ="p "> (</ span >
81+ < span class ="nb "> int</ span > < span class ="p "> (</ span > < span class ="n "> datetime</ span > < span class ="o "> .</ span > < span class ="n "> now</ span > < span class ="p "> ()</ span > < span class ="o "> .</ span > < span class ="n "> strftime</ span > < span class ="p "> (</ span > < span class ="s "> "</ span > < span class ="si "> %s</ span > < span class ="s "> "</ span > < span class ="p "> ))</ span >
82+ < span class ="p "> )</ span >
83+
84+ < span class ="n "> name_id_policy_format</ span > < span class ="o "> =</ span > < span class ="n "> sp_data</ span > < span class ="p "> [</ span > < span class ="s "> 'NameIDFormat'</ span > < span class ="p "> ]</ span >
85+ < span class ="k "> if</ span > < span class ="s "> 'wantNameIdEncrypted'</ span > < span class ="ow "> in</ span > < span class ="n "> security</ span > < span class ="ow "> and</ span > < span class ="n "> security</ span > < span class ="p "> [</ span > < span class ="s "> 'wantNameIdEncrypted'</ span > < span class ="p "> ]:</ span >
86+ < span class ="n "> name_id_policy_format</ span > < span class ="o "> =</ span > < span class ="n "> OneLogin_Saml2_Constants</ span > < span class ="o "> .</ span > < span class ="n "> NAMEID_ENCRYPTED</ span >
87+
88+ < span class ="n "> provider_name_str</ span > < span class ="o "> =</ span > < span class ="s "> ''</ span >
89+ < span class ="n "> organization_data</ span > < span class ="o "> =</ span > < span class ="n "> settings</ span > < span class ="o "> .</ span > < span class ="n "> get_organization</ span > < span class ="p "> ()</ span >
90+ < span class ="k "> if</ span > < span class ="nb "> isinstance</ span > < span class ="p "> (</ span > < span class ="n "> organization_data</ span > < span class ="p "> ,</ span > < span class ="nb "> dict</ span > < span class ="p "> ):</ span >
91+ < span class ="n "> langs</ span > < span class ="o "> =</ span > < span class ="n "> organization_data</ span > < span class ="o "> .</ span > < span class ="n "> keys</ span > < span class ="p "> ()</ span >
92+ < span class ="k "> if</ span > < span class ="s "> 'en-US'</ span > < span class ="ow "> in</ span > < span class ="n "> langs</ span > < span class ="p "> :</ span >
93+ < span class ="n "> lang</ span > < span class ="o "> =</ span > < span class ="s "> 'en-US'</ span >
94+ < span class ="k "> else</ span > < span class ="p "> :</ span >
95+ < span class ="n "> lang</ span > < span class ="o "> =</ span > < span class ="n "> langs</ span > < span class ="p "> [</ span > < span class ="mi "> 0</ span > < span class ="p "> ]</ span >
96+ < span class ="k "> if</ span > < span class ="s "> 'displayname'</ span > < span class ="ow "> in</ span > < span class ="n "> organization_data</ span > < span class ="p "> [</ span > < span class ="n "> lang</ span > < span class ="p "> ]</ span > < span class ="ow "> and</ span > < span class ="n "> organization_data</ span > < span class ="p "> [</ span > < span class ="n "> lang</ span > < span class ="p "> ][</ span > < span class ="s "> 'displayname'</ span > < span class ="p "> ]</ span > < span class ="ow "> is</ span > < span class ="ow "> not</ span > < span class ="bp "> None</ span > < span class ="p "> :</ span >
97+ < span class ="n "> provider_name_str</ span > < span class ="o "> =</ span > < span class ="s "> 'ProviderName="</ span > < span class ="si "> %s</ span > < span class ="s "> "'</ span > < span class ="o "> %</ span > < span class ="n "> organization_data</ span > < span class ="p "> [</ span > < span class ="n "> lang</ span > < span class ="p "> ][</ span > < span class ="s "> 'displayname'</ span > < span class ="p "> ]</ span >
98+
99+ < span class ="n "> request</ span > < span class ="o "> =</ span > < span class ="s "> """<samlp:AuthnRequest</ span >
100+ < span class ="s "> xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"</ span >
101+ < span class ="s "> xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"</ span >
102+ < span class ="s "> ID="</ span > < span class ="si "> %(id)s</ span > < span class ="s "> "</ span >
103+ < span class ="s "> Version="2.0"</ span >
104+ < span class ="s "> </ span > < span class ="si "> %(provider_name)s</ span > < span class ="s "> </ span >
105+ < span class ="s "> IssueInstant="</ span > < span class ="si "> %(issue_instant)s</ span > < span class ="s "> "</ span >
106+ < span class ="s "> ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"</ span >
107+ < span class ="s "> AssertionConsumerServiceURL="</ span > < span class ="si "> %(assertion_url)s</ span > < span class ="s "> "></ span >
108+ < span class ="s "> <saml:Issuer></ span > < span class ="si "> %(entity_id)s</ span > < span class ="s "> </saml:Issuer></ span >
109+ < span class ="s "> <samlp:NameIDPolicy</ span >
110+ < span class ="s "> Format="</ span > < span class ="si "> %(name_id_policy)s</ span > < span class ="s "> "</ span >
111+ < span class ="s "> AllowCreate="true" /></ span >
112+ < span class ="s "> <samlp:RequestedAuthnContext Comparison="exact"></ span >
113+ < span class ="s "> <saml:AuthnContextMethodRef>urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport</saml:AuthnContextMethodRef></ span >
114+ < span class ="s "> </samlp:RequestedAuthnContext></ span >
115+ < span class ="s "> </samlp:AuthnRequest>"""</ span > < span class ="o "> %</ span > < span class ="p "> {</ span >
116+ < span class ="s "> 'id'</ span > < span class ="p "> :</ span > < span class ="n "> uid</ span > < span class ="p "> ,</ span >
117+ < span class ="s "> 'provider_name'</ span > < span class ="p "> :</ span > < span class ="n "> provider_name_str</ span > < span class ="p "> ,</ span >
118+ < span class ="s "> 'issue_instant'</ span > < span class ="p "> :</ span > < span class ="n "> issue_instant</ span > < span class ="p "> ,</ span >
119+ < span class ="s "> 'assertion_url'</ span > < span class ="p "> :</ span > < span class ="n "> sp_data</ span > < span class ="p "> [</ span > < span class ="s "> 'assertionConsumerService'</ span > < span class ="p "> ][</ span > < span class ="s "> 'url'</ span > < span class ="p "> ],</ span >
120+ < span class ="s "> 'entity_id'</ span > < span class ="p "> :</ span > < span class ="n "> sp_data</ span > < span class ="p "> [</ span > < span class ="s "> 'entityId'</ span > < span class ="p "> ],</ span >
121+ < span class ="s "> 'name_id_policy'</ span > < span class ="p "> :</ span > < span class ="n "> name_id_policy_format</ span > < span class ="p "> ,</ span >
122+ < span class ="p "> }</ span >
123+
124+ < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> __authn_request</ span > < span class ="o "> =</ span > < span class ="n "> request</ span >
125+
126+ < div class ="viewcode-block " id ="OneLogin_Saml2_Authn_Request.get_request "> < a class ="viewcode-back " href ="../../saml2.html#saml2.authn_request.OneLogin_Saml2_Authn_Request.get_request "> [docs]</ a > < span class ="k "> def</ span > < span class ="nf "> get_request</ span > < span class ="p "> (</ span > < span class ="bp "> self</ span > < span class ="p "> ):</ span >
127+ < span class ="sd "> """</ span >
128+ < span class ="sd "> Returns unsigned AuthnRequest.</ span >
129+ < span class ="sd "> :return: Unsigned AuthnRequest</ span >
130+ < span class ="sd "> :rtype: str object</ span >
131+ < span class ="sd "> """</ span >
132+ < span class ="n "> deflated_request</ span > < span class ="o "> =</ span > < span class ="n "> compress</ span > < span class ="p "> (</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> __authn_request</ span > < span class ="p "> )[</ span > < span class ="mi "> 2</ span > < span class ="p "> :</ span > < span class ="o "> -</ span > < span class ="mi "> 4</ span > < span class ="p "> ]</ span >
133+ < span class ="k "> return</ span > < span class ="n "> b64encode</ span > < span class ="p "> (</ span > < span class ="n "> deflated_request</ span > < span class ="p "> )</ span > </ div > </ div >
134+ </ pre > </ div >
135+
136+ </ div >
137+ </ div >
138+ </ div >
139+ < div class ="sphinxsidebar ">
140+ < div class ="sphinxsidebarwrapper ">
141+ < div id ="searchbox " style ="display: none ">
142+ < h3 > Quick search</ h3 >
143+ < form class ="search " action ="../../search.html " method ="get ">
144+ < input type ="text " name ="q " />
145+ < input type ="submit " value ="Go " />
146+ < input type ="hidden " name ="check_keywords " value ="yes " />
147+ < input type ="hidden " name ="area " value ="default " />
148+ </ form >
149+ < p class ="searchtip " style ="font-size: 90% ">
150+ Enter search terms or a module, class or function name.
151+ </ p >
152+ </ div >
153+ < script type ="text/javascript "> $ ( '#searchbox' ) . show ( 0 ) ; </ script >
154+ </ div >
155+ </ div >
156+ < div class ="clearer "> </ div >
157+ </ div >
158+ < div class ="related ">
159+ < h3 > Navigation</ h3 >
160+ < ul >
161+ < li class ="right " style ="margin-right: 10px ">
162+ < a href ="../../genindex.html " title ="General Index "
163+ > index</ a > </ li >
164+ < li class ="right " >
165+ < a href ="../../py-modindex.html " title ="Python Class Index "
166+ > modules</ a > |</ li >
167+ < li > < a href ="../../index.html "> OneLogin SAML Python library classes and methods</ a > »</ li >
168+ < li > < a href ="../index.html " > Class code</ a > »</ li >
169+ </ ul >
170+ </ div >
171+ < div class ="footer ">
172+ © Copyright 2014, OneLogin Inc..
173+ Created using < a href ="http://sphinx.pocoo.org/ "> Sphinx</ a > 1.1.3.
174+ </ div >
175+ </ body >
176+ </ html >
0 commit comments