symfony2:允许 cronjob 访问 fosuserbundle 保护的控制器操作
symfony2: Allow cronjob to access fosuserbundle protected controller actions
我正在构建一个需要几个不同后台任务的工具。登录用户可以访问它们,因为也应该可以从浏览器触发它们。此外,它们分布在不同的捆绑包中。
例如:
- 浏览到
/x/backgroundtask
触发器 xBundle/controller
的 backgroundtaskAction
- 浏览到
/yBundle/backgroundTask
yBundle/controller
的 backgroundtaskAction
我有一个任务实体,其中 sql table 存储频率、上次执行任务的时间和每个后台任务的 URL。
基本上我想要的是 taskBundle
中的一个控制器操作,根据频率和上次执行检查应该执行哪些任务。这引出了我的问题:
所有后台任务操作均受 FosUserBundle
保护。我如何确保 cronjob 任务仍然可以访问?我可以使用 php 的 php_sapi_name()
函数检测 cronjobs。例如,有没有自动登录的方法?
将 cron 服务器 IP 添加到 security.yml 所以它不会登录。
安全:
# ...
access_control:
#
- { 路径:^/url,角色:IS_AUTHENTICATED_ANONYMOUSLY,ips:[127.0.0.1,serverIP-Here,::1] }
我正在构建一个需要几个不同后台任务的工具。登录用户可以访问它们,因为也应该可以从浏览器触发它们。此外,它们分布在不同的捆绑包中。
例如:
- 浏览到
/x/backgroundtask
触发器xBundle/controller
的backgroundtaskAction
- 浏览到
/yBundle/backgroundTask
yBundle/controller
的backgroundtaskAction
我有一个任务实体,其中 sql table 存储频率、上次执行任务的时间和每个后台任务的 URL。
基本上我想要的是 taskBundle
中的一个控制器操作,根据频率和上次执行检查应该执行哪些任务。这引出了我的问题:
所有后台任务操作均受 FosUserBundle
保护。我如何确保 cronjob 任务仍然可以访问?我可以使用 php 的 php_sapi_name()
函数检测 cronjobs。例如,有没有自动登录的方法?
将 cron 服务器 IP 添加到 security.yml 所以它不会登录。
安全: # ... access_control: # - { 路径:^/url,角色:IS_AUTHENTICATED_ANONYMOUSLY,ips:[127.0.0.1,serverIP-Here,::1] }