§
    ¤”j'
  ã                   óN   — d dl Z d dlmZ d dlmZ d dlmZ  G d„ de¦  «        ZdS )é    N)Úsettings)ÚHttpResponsePermanentRedirect)ÚMiddlewareMixinc                   ó*   ‡ — e Zd Zˆ fd„Zd„ Zd„ Zˆ xZS )ÚSecurityMiddlewarec                 ó�  •— t          ¦   «                              |¦  «         t          j        | _        t          j        | _        t          j        | _        t          j	        | _
        t          j        | _        t          j        | _        d„ t          j        D ¦   «         | _        t          j        | _        t          j        | _        d S )Nc                 ó6   — g | ]}t          j        |¦  «        ‘ŒS © )ÚreÚcompile)Ú.0Úrs     úi/var/www/finuniver-perm.ru/html/portfolio/venv/lib/python3.11/site-packages/django/middleware/security.pyú
<listcomp>z/SecurityMiddleware.__init__.<locals>.<listcomp>   s    € ÐWÐWÐW°!¥¤
¨1¡¤ÐWÐWÐWó    )ÚsuperÚ__init__r   ÚSECURE_HSTS_SECONDSÚsts_secondsÚSECURE_HSTS_INCLUDE_SUBDOMAINSÚsts_include_subdomainsÚSECURE_HSTS_PRELOADÚsts_preloadÚSECURE_CONTENT_TYPE_NOSNIFFÚcontent_type_nosniffÚSECURE_SSL_REDIRECTÚredirectÚSECURE_SSL_HOSTÚredirect_hostÚSECURE_REDIRECT_EXEMPTÚredirect_exemptÚSECURE_REFERRER_POLICYÚreferrer_policyÚ!SECURE_CROSS_ORIGIN_OPENER_POLICYÚcross_origin_opener_policy)ÚselfÚget_responseÚ	__class__s     €r   r   zSecurityMiddleware.__init__	   s‘   ø€ Ý‰Œ×Ò˜Ñ&Ô&Ð&Ý#Ô7ˆÔÝ&.Ô&MˆÔ#Ý#Ô7ˆÔÝ$,Ô$HˆÔ!Ý Ô4ˆŒÝ%Ô5ˆÔØWÐWµxÔ7VÐWÑWÔWˆÔÝ'Ô>ˆÔÝ*2Ô*TˆÔ'Ð'Ð'r   c                 ó<  ‡— |j                              d¦  «        Š| j        ru|                     ¦   «         sct	          ˆfd„| j        D ¦   «         ¦  «        sE| j        p|                     ¦   «         }t          d|›| 	                    ¦   «         ›�¦  «        S d S d S d S )Nú/c              3   óB   •K  — | ]}|                      ‰¦  «        V — Œd S )N)Úsearch)r   ÚpatternÚpaths     €r   ú	<genexpr>z5SecurityMiddleware.process_request.<locals>.<genexpr>   s/   øè è € ÐQÐQ°˜Ÿš tÑ,Ô,ÐQÐQÐQÐQÐQÐQr   zhttps://)
r.   Úlstripr   Ú	is_secureÚanyr!   r   Úget_hostr   Úget_full_path)r&   ÚrequestÚhostr.   s      @r   Úprocess_requestz"SecurityMiddleware.process_request   sÇ   ø€ ØŒ|×"Ò" 3Ñ'Ô'ˆàŒMð	à×%Ò%Ñ'Ô'ð	õ ÐQÐQÐQÐQ¸DÔ<PÐQÑQÔQÑQÔQð	ð
 Ô%Ð;¨×)9Ò)9Ñ);Ô);ˆDÝ0Ð0Ø"& $¨×(=Ò(=Ñ(?Ô(?Ð(?Ð@ñô ð ð	ð 	ð 	ð 	ð 	ð 	r   c           	      ó  — | j         rD|                     ¦   «         r0d|vr,d| j         z  }| j        r|dz  }| j        r|dz  }||j        d<   | j        r|j                             dd¦  «         | j        rq|j                             dd                     t          | j        t          ¦  «        r$d	„ | j                             d¦  «        D ¦   «         n| j        ¦  «        ¦  «         | j        r|                     d
| j        ¦  «         |S )NzStrict-Transport-Securityz
max-age=%sz; includeSubDomainsz	; preloadzX-Content-Type-OptionsÚnosniffzReferrer-Policyú,c                 ó6   — g | ]}|                      ¦   «         ‘ŒS r
   )Ústrip)r   Úvs     r   r   z7SecurityMiddleware.process_response.<locals>.<listcomp>7   s    € ÐHÐHÐH 1�Q—W’W‘Y”YÐHÐHÐHr   zCross-Origin-Opener-Policy)r   r1   r   r   Úheadersr   Ú
setdefaultr#   ÚjoinÚ
isinstanceÚstrÚsplitr%   )r&   r5   ÚresponseÚ
sts_headers       r   Úprocess_responsez#SecurityMiddleware.process_response!   sM  € àÔð
	Gà×!Ò!Ñ#Ô#ð
	Gð ,°8Ð;Ð;à%¨Ô(8Ñ8ˆJØÔ*ð 4ØÐ3Ñ3�
ØÔð *Ø˜kÑ)�
Ø<FˆHÔÐ8Ñ9àÔ$ð 	MØÔ×'Ò'Ð(@À)ÑLÔLÐLàÔð 
	ð Ô×'Ò'Ø!Ø—’å! $Ô"6½Ñ<Ô<ð.ÐHÐH¨Ô(<×(BÒ(BÀ3Ñ(GÔ(GÐHÑHÔHÐHàÔ-ñô ñô ð ð Ô*ð 	Ø×ÒØ,ØÔ/ñô ð ð ˆr   )Ú__name__Ú
__module__Ú__qualname__r   r7   rF   Ú__classcell__)r(   s   @r   r   r      s[   ø€ € € € € ð
Uð 
Uð 
Uð 
Uð 
Uð
ð 
ð 
ð!ð !ð !ð !ð !ð !ð !r   r   )r   Údjango.confr   Údjango.httpr   Údjango.utils.deprecationr   r   r
   r   r   ú<module>rN      sx   ðØ 	€	€	€	à  Ð  Ð  Ð  Ð  Ð  Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4ð:ð :ð :ð :ð :˜ñ :ô :ð :ð :ð :r   