問題タブ [symfony-security]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
119 参照

php - Symfony のセキュリティで保護されていない領域でセッションがクリアされないのはなぜですか?

Symfony のセキュリティ コンポーネントを次のように実装しました。

ログアウトルートを呼び出すと、セッションが無効になります。

セキュリティコンテキストがセッションに保存されていることを理解している限り、ユーザーをログアウトするだけで十分です。しかし、彼はログアウトしていません。

ログアウトルートを保護された領域に配置してファイアウォールを更新すると、正常に$session->invalidate()機能し、ユーザーはログアウトされます...

セキュリティで保護されていない領域で動作しないのはなぜですか? 非セキュア領域とは、非セッション領域という意味ではありませんよね?

0 投票する
1 に答える
952 参照

php - 多くのエンティティに対して 1 つのクラス Voter を使用する

これは、Voter クラスのsupportsClass関数です。

http://symfony.com/doc/2.5/cookbook/security/voters_data_permission.html

同じバンドル内の多くのエンティティに対して 1 つのクラス ボーターを使用できるかどうか、またはエンティティごとにボーターを作成する必要があるかどうかを知りたいですか?

編集 私はこの解決策を見つけました:

0 投票する
1 に答える
2412 参照

symfony - Symfony2 Security で FOSUserBundle と SonataAdminBundle を使用して、すべてのファイアウォールで default_target_path を設定してログインに成功した後にリダイレクトする方法

これは私のセキュリティ ファイアウォールの構成です。

完全な構成: security.yml

期待どおりに機能する使用例は次のとおりです。

  1. ログインページ /login に直接アクセスすると、ユーザーは正しく default_target_path qis/ にリダイレクトされます。
  2. /contract ユーザーなどのページにアクセスすると、この要求されたページに正しくリダイレ​​クトされます。

qisファイアウォールを使用して、 2で述べたのと同じ動作を実現したいと考えています。

しかし:

http://localhost:8000/qis/contract/listなどのqis ルート経由でアクセスすると、同じリンクにリダイレクトされず、default_target_path qis/ にリダイレクトされます。

qisファイアウォールで必要な設定は何ですか?

0 投票する
1 に答える
150 参照

php - /admin へのアクセス、なぜシステムにログインしているすべてのユーザーがアクセスできるのですか?

私はこれを機能させるために何日も費やしていますが、最後の手段として、ここで私を助けてくれることを願っています。ポイントは、私のアプリケーションには、システムに登録されているすべてのユーザーがアクセスできるアプリケーションがあるfrontendためです。ロールを所有していないか、デフォルトのロール ROLE_USER を持っている場合、どちらもログインできないはずです。ROLE_ADMINbackendROLE_ADMIN

私が抱えている問題は、管理者へのアクセス許可を持たない通常のユーザーで署名し (欠落ROLE_ADMIN)、URL へのアクセス権app.php/adminがない場合でも、問題なく入力できるということです。これは完全に間違っています。一方、frontend任意のユーザーでログオンしようとするROLE_ADMINと、問題なくログオンでき、これは発生しないはずです。

これは私の構成security.ymlです:

私は何を間違っていますか?誰でも私に何か提案をしてもらえますか?

ドキュメントを上から下まで何度か読みましたが、何が間違っているのかわかりません

0 投票する
1 に答える
174 参照

php - 同じファイアウォールでの Symfony2 認証方法

私はSymfony2が初めてです。ドキュメントを読み、ログインフォームの設定を見ました http://symfony.com/doc/current/cookbook/security/form_login_setup.html

同じファイアウォールに http_basic と form_login の 2 つのセキュリティ メソッドがある理由がわかりません。どの方法のセキュリティ システムを使用しますか? http_basic または form_login またはその両方? 冗長ですか?上記のいくつかの質問はばかげているように見えますが、symfony2 のセキュリティ コンポーネントのドキュメントは貧弱に思えます。

0 投票する
0 に答える
86 参照

symfony - Web スパイダーが Symfony の制限されたページにアクセスできるようにする

Symfony の制限されたページへのアクセスを Web クローラーに許可するには?

IPのリストで許可する必要があると思いますが、それらを認証するにはどうすればよいですか?

0 投票する
1 に答える
1335 参照

angularjs - Symfony2: 一致しないすべてのルートに匿名でアクセスできるようにする

BackendBundleAPIFrontendBundle用とAngularJS「クライアント」用の2つのバンドルに分割されたSymfony2アプリケーションがあります。すべてがファイアウォールの下で機能します。

BackendBundleエンティティを持ち、API ルートを処理します。FrontendBundleAngular ビュー、ルーティングなどがあり、ワイルドカードを使用したコントローラーは 1 つだけです。

FrontendBundleルーティングは の最後のリソースとして定義されapp/config/routing.yml、他のルートが一致しなかった場合にのみ呼び出されます。そのおかげで、Angular HTML5 モードのルートが直接アクセスされた場合 (たとえば、コピー アンド ペースト) に処理でき、問題なく動作します。

私がやりたいことはAngularController::angularIndexAction()、匿名ユーザーがすべての一致しないルート (によって処理される) にアクセスできるように、ファイアウォールおよび/またはアクセス制御を定義することです。

なんで?一部の API ルートを (フロントエンド プロキシ経由で) 開き、ユーザー以外がアクセスできるようにしたい (たとえば、ユーザーへのメッセージと共にメールで送信された確認 URL)。

匿名の「Angular」ルートごとにアクセス制御リストをハードコーディングしたくありません。API ルートに対してのみ実行したいと考えています。最後に、これらの一致しないルートは Angular のインデックスを開き、ユーザーがログインしているかどうか (完全なレイアウトまたは簡略化されたレイアウトを表示するため) を認識し、Angular ルートを処理し、リクエストが失敗した場合は何らかの「アクセスが拒否されました」というメッセージを表示する必要があります (Symfony リスナーがある場合)そのためのAngularの$provideインターセプター)。

助言がありますか?


編集:@Security注釈はAngularController::angularIndexAction()機能しません。ファイアウォールのエントリ ポイントにリダイレクトされます。


Edit2:ここにの断片がありますsecurity.yml

{ path: '^/', roles: ROLE_USER }ユーザーがログインしていない場合、すべてのルートがログインページにリダイレクトされることはわかっています。それは明らかだと思い、言及しませんでした。私が欲しいのは、各フロントエンドの「プロキシルート」を明示的に定義せずに、一致したルートを強制ROLE_USERし、一致しないものを許可することです。IS_AUTHENTICATED_ANONYMOUSLY私の場合、404 Symfony ページはありません。すべてがangular_index_all_unmatched_routesルートに送られ、そこで Angular ルーティング定義が処理するものがあるかどうかを決定するためです。