66 < head >
77 < meta http-equiv ="Content-Type " content ="text/html; charset=utf-8 " />
88
9- < title > cassandra.auth — Cassandra Driver 2.1.3 documentation</ title >
9+ < title > cassandra.auth — Cassandra Driver 2.1.4 documentation</ title >
1010
1111 < link rel ="stylesheet " href ="../../_static/custom.css " type ="text/css " />
1212 < link rel ="stylesheet " href ="../../_static/pygments.css " type ="text/css " />
1313
1414 < script type ="text/javascript ">
1515 var DOCUMENTATION_OPTIONS = {
1616 URL_ROOT : '../../' ,
17- VERSION : '2.1.3 ' ,
17+ VERSION : '2.1.4 ' ,
1818 COLLAPSE_INDEX : false ,
1919 FILE_SUFFIX : '.html' ,
2020 HAS_SOURCE : true
2323 < script type ="text/javascript " src ="../../_static/jquery.js "> </ script >
2424 < script type ="text/javascript " src ="../../_static/underscore.js "> </ script >
2525 < script type ="text/javascript " src ="../../_static/doctools.js "> </ script >
26- < link rel ="top " title ="Cassandra Driver 2.1.3 documentation " href ="../../index.html " />
26+ < link rel ="top " title ="Cassandra Driver 2.1.4 documentation " href ="../../index.html " />
2727 < link rel ="up " title ="cassandra " href ="../cassandra.html " />
2828 </ head >
2929 < body >
@@ -36,7 +36,7 @@ <h3>Navigation</h3>
3636 < li class ="right " >
3737 < a href ="../../py-modindex.html " title ="Python Module Index "
3838 > modules</ a > |</ li >
39- < li > < a href ="../../index.html "> Cassandra Driver 2.1.3 documentation</ a > »</ li >
39+ < li > < a href ="../../index.html "> Cassandra Driver 2.1.4 documentation</ a > »</ li >
4040 < li > < a href ="../index.html " > Module code</ a > »</ li >
4141 < li > < a href ="../cassandra.html " accesskey ="U "> cassandra</ a > »</ li >
4242 </ ul >
@@ -77,7 +77,10 @@ <h1>Source code for cassandra.auth</h1><div class="highlight"><pre>
7777< span class ="c "> # distributed under the License is distributed on an "AS IS" BASIS,</ span >
7878< span class ="c "> # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</ span >
7979< span class ="c "> # See the License for the specific language governing permissions and</ span >
80-
80+ < span class ="k "> try</ span > < span class ="p "> :</ span >
81+ < span class ="kn "> from</ span > < span class ="nn "> puresasl.client</ span > < span class ="kn "> import</ span > < span class ="n "> SASLClient</ span >
82+ < span class ="k "> except</ span > < span class ="ne "> ImportError</ span > < span class ="p "> :</ span >
83+ < span class ="n "> SASLClient</ span > < span class ="o "> =</ span > < span class ="bp "> None</ span >
8184
8285< div class ="viewcode-block " id ="AuthProvider "> < a class ="viewcode-back " href ="../../api/cassandra/auth.html#cassandra.auth.AuthProvider "> [docs]</ a > < span class ="k "> class</ span > < span class ="nc "> AuthProvider</ span > < span class ="p "> (</ span > < span class ="nb "> object</ span > < span class ="p "> ):</ span >
8386 < span class ="sd "> """</ span >
@@ -189,7 +192,56 @@ <h1>Source code for cassandra.auth</h1><div class="highlight"><pre>
189192 < span class ="k "> return</ span > < span class ="s "> "</ span > < span class ="se "> \x00</ span > < span class ="si "> %s</ span > < span class ="se "> \x00</ span > < span class ="si "> %s</ span > < span class ="s "> "</ span > < span class ="o "> %</ span > < span class ="p "> (</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> username</ span > < span class ="p "> ,</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> password</ span > < span class ="p "> )</ span >
190193
191194 < span class ="k "> def</ span > < span class ="nf "> evaluate_challenge</ span > < span class ="p "> (</ span > < span class ="bp "> self</ span > < span class ="p "> ,</ span > < span class ="n "> challenge</ span > < span class ="p "> ):</ span >
192- < span class ="k "> return</ span > < span class ="bp "> None</ span > </ div >
195+ < span class ="k "> return</ span > < span class ="bp "> None</ span >
196+
197+ </ div >
198+ < div class ="viewcode-block " id ="SaslAuthProvider "> < a class ="viewcode-back " href ="../../api/cassandra/auth.html#cassandra.auth.SaslAuthProvider "> [docs]</ a > < span class ="k "> class</ span > < span class ="nc "> SaslAuthProvider</ span > < span class ="p "> (</ span > < span class ="n "> AuthProvider</ span > < span class ="p "> ):</ span >
199+ < span class ="sd "> """</ span >
200+ < span class ="sd "> An :class:`~.AuthProvider` supporting general SASL auth mechanisms</ span >
201+
202+ < span class ="sd "> Suitable for GSSAPI or other SASL mechanisms</ span >
203+
204+ < span class ="sd "> Example usage::</ span >
205+
206+ < span class ="sd "> from cassandra.cluster import Cluster</ span >
207+ < span class ="sd "> from cassandra.auth import SaslAuthProvider</ span >
208+
209+ < span class ="sd "> sasl_kwargs = {'host': 'localhost',</ span >
210+ < span class ="sd "> 'service': 'dse',</ span >
211+ < span class ="sd "> 'mechanism': 'GSSAPI',</ span >
212+ < span class ="sd "> 'qops': 'auth'.split(',')}</ span >
213+ < span class ="sd "> auth_provider = SaslAuthProvider(**sasl_kwargs)</ span >
214+ < span class ="sd "> cluster = Cluster(auth_provider=auth_provider)</ span >
215+
216+ < span class ="sd "> .. versionadded:: 2.1.4</ span >
217+ < span class ="sd "> """</ span >
218+
219+ < 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 ="o "> **</ span > < span class ="n "> sasl_kwargs</ span > < span class ="p "> ):</ span >
220+ < span class ="k "> if</ span > < span class ="n "> SASLClient</ span > < span class ="ow "> is</ span > < span class ="bp "> None</ span > < span class ="p "> :</ span >
221+ < span class ="k "> raise</ span > < span class ="ne "> ImportError</ span > < span class ="p "> (</ span > < span class ="s "> 'The puresasl library has not been installed'</ span > < span class ="p "> )</ span >
222+ < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> sasl_kwargs</ span > < span class ="o "> =</ span > < span class ="n "> sasl_kwargs</ span >
223+
224+ < span class ="k "> def</ span > < span class ="nf "> new_authenticator</ span > < span class ="p "> (</ span > < span class ="bp "> self</ span > < span class ="p "> ,</ span > < span class ="n "> host</ span > < span class ="p "> ):</ span >
225+ < span class ="k "> return</ span > < span class ="n "> SaslAuthenticator</ span > < span class ="p "> (</ span > < span class ="o "> **</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> sasl_kwargs</ span > < span class ="p "> )</ span >
226+ </ div >
227+ < div class ="viewcode-block " id ="SaslAuthenticator "> < a class ="viewcode-back " href ="../../api/cassandra/auth.html#cassandra.auth.SaslAuthenticator "> [docs]</ a > < span class ="k "> class</ span > < span class ="nc "> SaslAuthenticator</ span > < span class ="p "> (</ span > < span class ="n "> Authenticator</ span > < span class ="p "> ):</ span >
228+ < span class ="sd "> """</ span >
229+ < span class ="sd "> A pass-through :class:`~.Authenticator` using the third party package</ span >
230+ < span class ="sd "> 'pure-sasl' for authentication</ span >
231+
232+ < span class ="sd "> .. versionadded:: 2.1.4</ span >
233+ < span class ="sd "> """</ span >
234+
235+ < 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 "> host</ span > < span class ="p "> ,</ span > < span class ="n "> service</ span > < span class ="p "> ,</ span > < span class ="n "> mechanism</ span > < span class ="o "> =</ span > < span class ="s "> 'GSSAPI'</ span > < span class ="p "> ,</ span > < span class ="o "> **</ span > < span class ="n "> sasl_kwargs</ span > < span class ="p "> ):</ span >
236+ < span class ="k "> if</ span > < span class ="n "> SASLClient</ span > < span class ="ow "> is</ span > < span class ="bp "> None</ span > < span class ="p "> :</ span >
237+ < span class ="k "> raise</ span > < span class ="ne "> ImportError</ span > < span class ="p "> (</ span > < span class ="s "> 'The puresasl library has not been installed'</ span > < span class ="p "> )</ span >
238+ < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> sasl</ span > < span class ="o "> =</ span > < span class ="n "> SASLClient</ span > < span class ="p "> (</ span > < span class ="n "> host</ span > < span class ="p "> ,</ span > < span class ="n "> service</ span > < span class ="p "> ,</ span > < span class ="n "> mechanism</ span > < span class ="p "> ,</ span > < span class ="o "> **</ span > < span class ="n "> sasl_kwargs</ span > < span class ="p "> )</ span >
239+
240+ < span class ="k "> def</ span > < span class ="nf "> initial_response</ span > < span class ="p "> (</ span > < span class ="bp "> self</ span > < span class ="p "> ):</ span >
241+ < span class ="k "> return</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> sasl</ span > < span class ="o "> .</ span > < span class ="n "> process</ span > < span class ="p "> ()</ span >
242+
243+ < span class ="k "> def</ span > < span class ="nf "> evaluate_challenge</ span > < span class ="p "> (</ span > < span class ="bp "> self</ span > < span class ="p "> ,</ span > < span class ="n "> challenge</ span > < span class ="p "> ):</ span >
244+ < span class ="k "> return</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> sasl</ span > < span class ="o "> .</ span > < span class ="n "> process</ span > < span class ="p "> (</ span > < span class ="n "> challenge</ span > < span class ="p "> )</ span > </ div >
193245</ pre > </ div >
194246
195247 </ div >
@@ -206,7 +258,7 @@ <h3>Navigation</h3>
206258 < li class ="right " >
207259 < a href ="../../py-modindex.html " title ="Python Module Index "
208260 > modules</ a > |</ li >
209- < li > < a href ="../../index.html "> Cassandra Driver 2.1.3 documentation</ a > »</ li >
261+ < li > < a href ="../../index.html "> Cassandra Driver 2.1.4 documentation</ a > »</ li >
210262 < li > < a href ="../index.html " > Module code</ a > »</ li >
211263 < li > < a href ="../cassandra.html " > cassandra</ a > »</ li >
212264 </ ul >
0 commit comments