可靠地重定向到 symfony2 中上次访问的页面

2023-12-10

我将 FosUserBundle 登录嵌入到我的主页中,我已经覆盖了 fos 的安全控制器并更改了 renderLogin() 操作,我必须放置一个if使用以下条件重定向到上次访问的页面referers , that was一切都很好,但我现在意识到 HTTP 协议不需要 HTTP Referer 标头,并且可以通过浏览器设置等完全跳过甚至欺骗它。它不可靠!

但如果 symfony 框架可以保证 $request->server->get('HTTP_REFERER') or $request->headers->get('referer')将被设置。我可以毫不费力地使用这些

我的问题

  • symfony 请求对象的引用者是否 100% 可靠?
  • 有什么区别$request->server->get('HTTP_REFERER') and $request->headers->get('referer') ?
  • 如果它们不可靠,可以有什么替代方案?

(P.S)

在交响乐中docs

如果用户要求http://www.example.com/admin/post/18/edit,那么他们登录成功后,最终会被发送回http://www.example.com/admin/post/18/edit。这是通过将请求的 URL 存储在会话中来完成的。

但他们没有解释其内部工作原理。如果referers最终被证明是不可靠的,那么我的替代方案如下,欢迎任何建议

1)。注册监听器并添加属性last_path

2)。存储会话变量last_path


在 security.yml 中

main:
            pattern: ^/
            logout: true
            form_login:
                provider: fos_userbundle
                login_path: /login
                success_handler: authentication_handler
                failure_handler: authentication_handler
            remember_me:
                key:      secret
                lifetime: 604800
                path:     /
                domain:   yourdomain.com
            anonymous: true
            logout:
                path: /logout
                target: /
                handler: authentication_handler

在config.yml中

services:
     authentication_handler:
       class: YourBundle\UserBundle\Security\AuthenticationHandler

AuthentificationHandler 类

 <?PHP

    Namespace YourBundle\UserBundle\Security;

    class AuthenticationHandler implements
    AuthenticationFailureHandlerInterface, AuthenticationSuccessHandlerInterface, LogoutSuccessHandlerInterface {

        public function onAuthenticationFailure(Request $request, AuthenticationException $exception) {
            $referer = $request->headers->get('referer');
            $request->getSession()->setFlash('LoginError', $exception->getMessage());

            return new RedirectResponse($referer);
        }

        public function onAuthenticationSuccess(Request $request, \Symfony\Component\Security\Core\Authentication\Token\TokenInterface $token) {
            $referer = $request->headers->get('referer');
            $request->getSession()->setFlash('LoginError', "success");
            return new RedirectResponse($referer);
        }

        public function onLogoutSuccess(Request $request) {
            $referer = $request->headers->get('referer');
            return new RedirectResponse($referer);
        }

    }
    ?>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

可靠地重定向到 symfony2 中上次访问的页面 的相关文章

  • 使用自定义服务的编译器传递加载 Symfony 的参数

    根据这个问题如何从数据库加载 Symfony 的配置参数 Doctrine https stackoverflow com q 28713495 8945214我有一个类似的问题 我需要动态设置参数 并且我想提供来自另一个自定义服务的数据
  • 覆盖默认标识符生成策略对关联没有影响

    交响乐 2 7 2 学说 ORM 2 4 7 MySQL 5 6 12 PHP 5 5 0 我有一个具有自定义 ID 生成器策略的实体 它工作完美 在某些情况下 我必须使用 手工制作 的 ID 来覆盖此策略 当主实体在没有关联的情况下被刷新
  • 更改 WhiteOctober TCPDF 捆绑包配置值

    我已经开始在我的 symfony 项目中使用 WhiteOctober TCPDF 包 但我不知道如何更改默认配置值 例如页面格式 我尝试将其放入我的 config yml 中 white october tcpdf tcpdf k tcp
  • 使用值填充的 Symfony2 自定义字段类型

    这是先前问题的后续问题Symfony2 自定义表单类型或扩展 https stackoverflow com questions 24079288 symfony2 custom form type or extension 我正在尝试为订
  • 学说 dbal querybuilder 作为准备好的语句

    我正在尝试创建一个 Doctrine DBAL 查询生成器对象并在其中设置一个参数 使用 postgres db dbal 2 3 4 原则 connection this gt em gt getConnection qb connect
  • 通过CompilerPass注册自定义AttributeBag

    我正在尝试通过将自定义 AttributBags 集成到会话中来整理我的会话变量 在 Symfony 查看相关问题 如何向 symfony 会话添加额外的包 https stackoverflow com questions 4472361
  • 为什么将 Ubuntu 升级到 22.04 后 phpMyAdmin 停止工作?

    刚刚升级到 Ubuntu 22 04 现在我的 phpmyadmin 无法加载 我收到以下错误 解析错误 语法错误 usr share php Symfony Component DependencyInjection ContainerB
  • 在 symfony2 中加载应用程序的自定义配置文件

    我正在开发一个symfony2应用程序 我试图包含我的自定义 yaml 配置位于 src AppBundle Resources Config general yml 我已按照此处提供的示例进行操作http symfony com doc
  • 螺栓中的内容类型

    我试图在 Bolt 中为两种内容类型提供相同的单一 slug 它们都应该具有相同的字段和相同的模板 此时我使用record template 标签来设置每个内容类型的默认模板 vervolgpagina name vervolgpagina
  • Symfony 2 FOSUserBundle 具有其余登录和注册功能

    我已经浏览了很多 stackoveflow 问题和文章 但找不到合适的答案 我正在使用 fosuserbundle hwiouthbundle 和 lexikjwt 捆绑包 我正在开发一个基于 symfony 的 api 它将由 andro
  • Doctrine2 命名查询

    我在 Doctrine2 中找不到任何有关命名查询的文档 请帮忙 Doctrine2 有命名查询功能吗 您可以使用 命名查询 DQL 例子 use Doctrine ORM Mapping NamedQuery use Doctrine O
  • 注销不会在 FOSUserBundle 中正确销毁/清除会话

    我遇到了一些问题 不知道为什么 当我从由 FOSUserBundle 处理的应用程序注销时 因为当前会话永远不会被破坏 甚至不清楚当我重新登录时会导致问题 因为我在会话上存储了一些数据 这就是我的security yml好像 securit
  • symfony2 选择单选框的默认值

    我的项目是使用 Silex 和 Symfony 组件 即表单组件 编写的 我尝试创建一组从类中构建的单选按钮 并且我想预先选择其中一个单选按钮 我创建这样的表格 form app form factory gt createBuilder
  • 在 symfony2 中为特定控制器设置 max_execution_time

    Using ini set 我可以扩展最大执行时间一个脚本的 在Symfony2 我可以添加ini set to web app php and web app dev php将增加的执行时间应用于所有控制器 但在这种情况下 我只想扩展最大
  • 使用 php 和 symfony 从数组创建 Excel 文件

    我正在尝试使用 PHP 和 symfony 将数组导出为 XLS 文件 如下面的代码所示 创建 XLS 文件后 我只能获取数组的最后一行 并且它显示在文件的第一行中 似乎 lignes 变量没有增加 我不明白出了什么问题 有人可以帮忙吗 f
  • 在我的表单 Symfony2 中创建重复字段

    我正在开展一个大学项目 我想让所有学生都参加 我创建了一个包含 3 个字段的模型 即日期 当前 布尔值 和学生 ID 现在 当我尝试从中生成表单时 它只会显示这 3 个字段 但是我想要班上所有的学生 因此 我为学生创建了一个循环 并创建了一
  • 功能测试 - 模拟服务不会保留在服务容器中

    我希望有人能够对我面临的这个问题有所启发 问题 我在功能单元测试中模拟了doctrine orm default entity manager 服务 我将其注入客户端服务容器中 这样我就不必在功能测试过程中访问我的数据库 对于仅涉及 GET
  • 原则 2 使用 LIKE 进行查询

    我有这个查询代码 repository em gt getRepository AcmeCrawlerBundle Trainings query repository gt createQueryBuilder p gt where p
  • 获取symfony中复选框的值

    我想获取复选框的值 选中或未选中 但复选框未添加到表单类型中 这是一个例子
  • 获取AppKernel.php中的parameters.yml参数

    有人知道如何获取 AppKernel php 中的parameters yml 或 dev 吗 我想动态更改 LogGer 变量 mylogsdir 应用程序内核 php this gt rootDir this gt environmen

随机推荐

  • 如何在 firebase 中实现基于角色的访问控制

    这是我第一次涉足 Firebase 和 nosql 我有 SQL 背景 使用简单登录安全电子邮件 密码 如何限制对 Firebase 中数据的访问 例如 某些用户有权创建业务对象 用户 客户 类别等 而其他用户则无权 有没有办法将权限列表附
  • 具有动态行和列的 angular2 表

    如何在 angular2 中创建具有动态列和行的表格 我的数据来自休息服务并在此可观察中捕获 this physicalDataService getPhysicalData subscribe res gt this data res 我
  • 使用查询字符串和锚点标签形成正确的 URL

    当查询字符串和锚标记 哈希标记 在 URL 中可见时 它们的正确显示顺序是什么 http www whatever com var val anchor or http www whatever com anchor var val 有这方
  • 组合 ASP.NET 属性中的字符串

    我正在尝试在属性内连接一个字符串 我收到一个错误 我认为这与我的Eval 是否有正确的方法来连接字符串 或者这是不可能的 我认为问题在于我设置 NavigateUrl 的位置
  • 循环优化。寄存器重命名如何打破依赖关系?什么是执行端口容量?

    我正在分析 Agner Fog 的 optimization assemble 中的循环示例 我指的是12 9章 代码是 我简化了一下 L1 vmulpd ymm1 ymm2 rsi rax vaddpd ymm1 ymm1 rdi rax
  • 使用 BouncyCastle SSL 通过 keyFile 进行 Java AES 解密

    我正在尝试编写 Java 代码 使用与 OpenSSL 解密兼容的 BouncyCastle 来解密使用 AES256 加密的文件 s key 是提供的文件 其中包含将用于加密和解密的密钥 需要完成的步骤 1 读取密钥文件 2 使用提供的密
  • WebView 阻止弹出窗口吗?

    我在用着WebView浏览 pesopay com 并且它工作正常 除了当我按下提交按钮时 使用 Google Chrome 等互联网浏览器会显示一个弹出窗口 确认您填写的信息 但在我的安卓里WebView当我按下提交按钮时什么也没发生 我
  • 在 64 位 Windows 上安装 lxml

    所以我试图在我的机器上安装 lxml 但我似乎无法让它工作 我有 Windows 8 1 64 位和 python 3 5 我都用过 pip install lxml and easy install lxml 我不断收到此错误消息 C U
  • PyAudio 输入溢出 -9981 - 没有解决方案工作

    请不要将此问题报告为重复 因为没有一个可用的解决方案适合我 我测试了所有这些 所以 我正在尝试在我的 RaspberryPi B 型板上运行 PyAudio 示例录音程序 这是我收到的错误 Traceback most recent cal
  • 如何从仅标头库构建静态库

    我正在尝试构建项目的静态库stb 所以我可以将它链接到另一个项目 不是用 C C 编写的 我已经创建了 CMakeLists txt 文件来使用 CMake 构建它 但是构建的静态库文件是空的 我怀疑这是因为机顶盒似乎是仅标头图书馆 我尝试
  • 将函数应用于 DataFrame 中的每个单元格,该单元格取决于 pandas 中的列名称

    如何将函数应用于 DataFrame 中取决于列名称的每个单元格 我知道pandas DataFrame applymap但它似乎不允许依赖于列名称 import numpy as np import pandas as pd np ran
  • ggplot2 中稳健的标准错误

    我想用 ggplot2 绘制一个模型 我估计了一个稳健的方差 协方差矩阵 我想在估计置信区间时使用它 我可以告诉 ggplot2 使用我的 VCOV 或者 我可以以某种方式强制 Predict lm 使用我的 VCOV 矩阵吗 一个虚拟示例
  • 查找多个字符串匹配的算法

    我正在寻找一种有效算法的建议 用于在大量文本中查找所有匹配项 要搜索的术语将包含在列表中 并且可以有 1000 多种可能性 搜索词可以是 1 个或多个单词 显然 我可以多次遍历文本并与每个搜索词进行比较 效率不太高 我考虑过对搜索词进行排序
  • Rails 3.1 中的图像 - 转向生产

    我的文章有图片 我将图像放在 app assests images 中 并将它们的位置存储在数据库的字段中 然后我可以使用以下方式显示它们 但是当我转移到生产服务器时 我的图像都没有显示 服务器正在寻找 asset blank d5dd6e
  • 将文本添加到 grid.table 图中

    我最近开始使用grid table函数从gridExtra包将表格数据转换为 png 图像文件以在网络上使用 到目前为止 我对它很满意 因为它默认产生非常漂亮的输出 有点像ggplot2对于桌子 就像那个人asked对于这个问题 我希望看到
  • PHP URL 编码保留无效的 url 字符

    我需要将 url 无效字符替换为 url 有效字符 然后再次将其转换回来 这是一个带有类似 url 的搜索页面http my site search this is a search 搜索表单 POSTS 然后用户重定向到新的 url Ph
  • 从 IIS 部署恢复 ASP.NET 项目

    我是 ASP NET Web 开发的真正新手 具有 Java 背景 一位朋友有一个在 IIS 上运行的 ASP NET 3 0 部署 他找不到在 Visual Studio 2008 中创建的原始项目文件 并请求我帮助他 是否可以从 IIS
  • 我应该如何处理 WP7 的 Bing 地图控件中图钉上的单击事件

    我要添加模板
  • MPMoviePlayerController 在后台播放音频流

    当应用程序进入后台时 我在播放音频流时遇到麻烦 我使用代码来启动流 NSURL mediaURL NSURL URLWithString http url to my stream MPMoviePlayerController mp MP
  • 可靠地重定向到 symfony2 中上次访问的页面

    我将 FosUserBundle 登录嵌入到我的主页中 我已经覆盖了 fos 的安全控制器并更改了 renderLogin 操作 我必须放置一个if使用以下条件重定向到上次访问的页面referers that was一切都很好 但我现在意识