2012-08-25 21 views
6

Bir flask uygulaması yapıyorum ve yalnızca kullanıcının kimliği doğrulanmışsa bazı statik dosyalara hizmet vermesini istiyorum. Bu çok düşük trafikli bir uygulamadır (sadece dahili kullanım içindir). Bunun için nasıl giderim? Düşünmekte olduğum bir şey, serve_static() kullanmak ve bunu bir kimlik doğrulama kontrolünün arkasına koymak ama şişenin içeriği zaten kullandığı statik dizini kullanmak.Sabit statik dosyaları flask ile

+0

sadece * Belirli * statik dosyalar için otantik istediğiniz veya * Tüm * Statik için kimlik doğrulamasını ister misin musunuz aşağıdaki dosyalar (ve/veya tüm uygulama)? –

+0

Tüm statik dosyalar. Uygulamada zaten bir kimlik doğrulaması var. Bu yüzden, uygulamanın mükemmel olması için etkin oturuma karşı kontrol edebilirsem. – marcog

cevap

10

Basitçe flask.Flask alt sınıf ve send_static_file yöntemini geçersiz:

class SecuredStaticFlask(Flask): 
    def send_static_file(self, filename): 
     # Get user from session 
     if user.is_authenticated(): 
      return super(SecuredStaticFlask, self).send_static_file(filename) 
     else: 
      abort(403) 
      # Or 401 (or 404), whatever is most appropriate for your situation 

Ayrıca bkz the definition of send_static_file ve

+0

Tatlı, işe yarıyor! – marcog

+0

Artık bu dosyada 857 satır yok gibi görünüyor. –

+1

@JesseAldridge - Bağlantıyı, sabit bir taahhütte belirtilen noktaya sabitledim. Başların için teşekkürler! –