Viewing File: /usr/local/cpanel/3rdparty/mailman/Mailman/SecurityManager.pyc


)hc@s]dZddlZddlZddlZddlZddlZddlZddlZddlm	Z	m
Z
ddlmZyddlZWne
k
reZnXddlmZddlmZddlmZddlmZdd	lmZmZyeefWnek
r-d
ZdZnXdfd
YZejdZdZdS(s0Handle passwords and sanitize approved messages.iN(t
StringTypet	TupleType(turlparse(tmm_cfg(tUtils(tErrors(tsyslog(tmd5_newtsha_newiitSecurityManagercBsbeZdZddZddZddZddZddZddZ	dZ
RS(	cCsd|_d|_i|_dS(N(tNonetmod_passwordt
post_passwordt	passwords(tself((s=/usr/local/cpanel/3rdparty/mailman/Mailman/SecurityManager.pytInitVarsPs		cCsY|jd}|tjkr|dkr7tdntjtj|}|j	|}tj
tj|dd}|d|7}n|tjkr|j
}|d7}n|tjkr|j}|d7}nx|tjkr|j}|d7}nS|tjkrKtj}tjr5|r5|}d	}qO|j}|d7}nd
S||fS(Nt+s%No user supplied for AuthUser contexttsafetsuser+%stpostert	moderatortadmintsite(NN(t
internal_nameRtAuthUserR
t	TypeErrorRtUnobscureEmailturllibtunquotetgetMemberPasswordtquotetObscureEmailtAuthListPosterRtAuthListModeratorRt
AuthListAdmintpasswordt
AuthSiteAdmintget_global_passwordtALLOW_SITE_ADMIN_COOKIES(Rtauthcontexttusertkeytsecrettuserdatatsitepass((s=/usr/local/cpanel/3rdparty/mailman/Mailman/SecurityManager.pytAuthContextInfoZs4	
	
	
		
c
s|s
tjSx|D]}|tjkrNtj|dd}|rtjSq|tjkr|tj|}|rtjSq|tjkrd}fd}j|\}}	|	dkrqnt	|j
}
t}}|
|	krt}nVt
|j|	kr t}}n1|||	r<t}}n||rQt}n|rt}js|jt}nz |
_|rjnWd|rjnXn|r|Sq|tjkrj|\}}	|	rt	|j
|	kr|Sq|tjkrUj|\}}	|	rt	|j
|	kr|Sq|tjkr|dk	ryj||r|SWqtjk
rqXqqtdd|td|qWtjS(Nt	siteadminicSsMy4|d }tr/tj|||kr/tStSWntk
rHtSXdS(Ni(tcrypttTruetFalseR(tresponseR*tsalt((s=/usr/local/cpanel/3rdparty/mailman/Mailman/SecurityManager.pytcryptmatchps

csMddlddl}d|j|jfd}fd}fd}ddl}ddld}tjj|rIy)|j|j	|j
}|j|Wn$tk
r}t
dd|tSX|}	t|d	}
yd|jd
t|d	d|	d|	d
f|jd
|
d|j||fWn$tk
rz}t
dd|tSX|j|jg}x0tr|jd}|sPn|j|qWdj|}
|
rI|
jd}t|dkrF|dj}t|dkrC|d|
krC|ddkrCtSqFqIntS(Niics&djfdt|DS(NRc3s|]}jVqdS(N(tchoice(t.0tx(tcharstrandom(s=/usr/local/cpanel/3rdparty/mailman/Mailman/SecurityManager.pys	<genexpr>s(tjointrange(tsizeR8(R9(R8s=/usr/local/cpanel/3rdparty/mailman/Mailman/SecurityManager.pytid_generatorscsji}ddg}jd}xB|D]:}tjj|d}j|d|}|||<q(W|S(NtREMOTE_HOSTtREMOTE_ADDRs[ \n]+t0R(tcompiletostenvirontgettsub(t	sanitizedtkeystwhitespace_patternR)tval(tre(s=/usr/local/cpanel/3rdparty/mailman/Mailman/SecurityManager.pytcpauth_protocol_safe_host_infos
cs8jd}j|d|}|dkr4dS|S(Ns[ \n]+RR@(RARE(t	unsafestrRHRF(RJ(s=/usr/local/cpanel/3rdparty/mailman/Mailman/SecurityManager.pytcpauth_protocol_safe_strings
s"/usr/local/cpanel/var/cpauthd.sockterrors!cpauthd service not available: %sis%s %s %s %s
sMAILMAN::RHOSTR?R>sMAILMAN::OTPs-could not send message to cpauthd service: %siRs
iiiit1(R9tstringtascii_uppercasetdigitstsocketRJRBtpathtexiststAF_UNIXtSOCK_STREAMtconnectt	ExceptionRR1tstrtsendRtshutdowntSHUT_WRR0trecvtappendR:tsplittlen(R2RPR=RKRMRStfnametclienttethostinfot
random_strtall_datatrawtdatatlinestparts(R(R9RJs=/usr/local/cpanel/3rdparty/mailman/Mailman/SecurityManager.pytcheck_mailman_one_time_passwordsP	13	
RNsBad authcontext: %s(RtUnAuthorizedtAuthCreatorRtcheck_global_passwordR$R"R-R
Rt	hexdigestR1R0RtdigesttLockedtLockR#tSavetUnlockR!R RtauthenticateMemberRtNotAMemberErrorRt
ValueError(
RtauthcontextsR2R(tactokR4RlR)R*tsharesponsetupgradetsave_and_unlock((Rs=/usr/local/cpanel/3rdparty/mailman/Mailman/SecurityManager.pytAuthenticatest


	
K
	

	
		
cCsax*|D]"}|j||}|rtSqW|j|||}|r]|j||GHtStS(N(tCheckCookieR0Rt
MakeCookieR1(RRyR2R(RzR{((s=/usr/local/cpanel/3rdparty/mailman/Mailman/SecurityManager.pytWebAuthenticate*s
cCsD|j||\}}|dks@|dks@t|trItnttj}t||
j}t	j
}tjt
j||f||<t|j}|d}	tjjd}
|
rd|	}	tjjd}|r||	}	qn|	||d<|ddkr2t||d<nd	||d
<|S(NitCPANELs	/3rdpartytcp_security_tokenRTithttpstsecureitversion(R-R
t
isinstanceRRxtintttimeRRptCookietSimpleCookietbinasciithexlifytmarshaltdumpsRtweb_page_urlRBRCRDR0(RR'R(R)R*tissuedtmactctparsedRTt	is_cpanelR((s=/usr/local/cpanel/3rdparty/mailman/Mailman/SecurityManager.pyR=s((	"

c	Cs|j||\}}tj}d||<t|jd}tjjd}|rd|}tjjd}|r||}qn|||d<d||d<d	||d
<|S(NRiRs	/3rdpartyRRTismax-ageiR(R-RRRRRBRCRD(	RR'R(R)R*RRTRR((s=/usr/local/cpanel/3rdparty/mailman/Mailman/SecurityManager.pyt	ZapCookie\s

c
Cstjjd}|stSt|}|tjkr|rI|g}nVg}|jd}x=|jD]/}|j	|rl|j
|t|qlqlWxRg|D]}tj
tj|^qD]%}|j|||}	|	rtSqWtS|j|||SdS(NtHTTP_COOKIEs+user+(RBRCRDR1tparsecookieRRRRGt
startswithR_RaRRRRt_SecurityManager__checkoneR0(
RR'R(t
cookiedataRt	usernamestprefixtktuR{((s=/usr/local/cpanel/3rdparty/mailman/Mailman/SecurityManager.pyRss&,c	Csy|j||\}}Wntjk
r3tSX|j|sTt|trXtSy,tjt	j
||}|\}}Wnttt
tfk
rtSXtj}	|	|krtStjr|tj|	krtSt||
j}
|
|krtS|j||GHtS(N(R-RRwR1thas_keyRRRtloadsRt	unhexlifytEOFErrorRxRtKeyErrorRRtAUTHENTICATION_COOKIE_LIFETIMERRpRR0(RRR'R(R)R*RiRtreceived_mactnowR((s=/usr/local/cpanel/3rdparty/mailman/Mailman/SecurityManager.pyt
__checkones, 
	N(t__name__t
__module__RR
R-RRRRRR(((s=/usr/local/cpanel/3rdparty/mailman/Mailman/SecurityManager.pyR	Os	
/)s;\s*cCsui}xh|jD]Z}xQtj|D]@}y|jdd\}}Wntk
r^q)X|||<q)WqW|S(Nt=i(t
splitlinestsplitterR`Rx(tsRtlinetpRtv((s=/usr/local/cpanel/3rdparty/mailman/Mailman/SecurityManager.pyRs
(t__doc__RBRJRRRRRttypesRRRR/tImportErrorR
tMailmanRRRtMailman.Logging.SyslogRt
Mailman.UtilsRRR0R1t	NameErrorR	RARR(((s=/usr/local/cpanel/3rdparty/mailman/Mailman/SecurityManager.pyt<module>s6



y
Back to Directory File Manager