2012-08-25 22 views
6

私はフラスコアプリケーションを構築しています。ユーザーが認証されている場合にのみ静的ファイルを提供します。非常にトラフィックの少ないアプリケーション(内部使用のみ)です。私はこれについてどうやって行くのですか?私が考えていたことの1つは、serve_static()を使用し、それを認証チェックの後ろに置くことですが、フラスコがすでにコンテンツを提供している静的ディレクトリを使用しています。フラスコで静的ファイルを保護する

+0

以下のあなただけの*特定の*静的ファイルのための本格的にしたいですかあなたは*すべての*静的の認証をしたいですがファイル(および/またはアプリケーション全体) –

+0

すべての静的ファイル。私はすでにアプリケーションの認証を持っているので、もし私が完璧になるだろうアプリのためのアクティブなセッションに対してチェックすることができます。 – marcog

答えて

10

単にサブクラスflask.Flasksend_static_file方法オーバーライドします:

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 

も参照してくださいthe definition of send_static_file

+0

甘い、それは動作します! – marcog

+0

そのファイルには857行目が存在しないようです。 –

+1

@JesseAldridge - 固定コミットを指すようにリンクを修正しました。ヘッドアップをありがとう! –

関連する問題