【发布时间】:2014-08-06 02:34:53
【问题描述】:
我的控制器中有以下代码 sn-p:
public function beforeFilter() {
$this->autoRender = false;
...
$this->Auth->allow('email');
}
public function email() {
...
$this->show();
...
}
public function show() {
...
}
我的show 操作需要身份验证,但email 不需要。
email 操作代表当我的 hadoop 作业完成时接受 jobEndNotifier 的通知,因此我无法在该页面上进行身份验证,因为 hadoop 将访问该页面。
(https://hadoop.apache.org/docs/r1.2.1/api/org/apache/hadoop/mapred/JobEndNotifier.html)
我的show操作基本上会为完成的hadoop作业生成和可视化报告,当我的作业完成时,我想在系统中自动生成它们(缓存它们),所以稍后当用户访问页面时,它将是从缓存中加载,速度会快得多。这就是我从email 操作调用show 操作的原因。
当然,默认情况下我可以在不登录的情况下访问email 操作,但是当我从email 调用show 操作时,它会将我重定向到主页,提示您必须登录。
简而言之:如果我从email 操作调用show 操作,我可以设置它不需要身份验证吗?由于页面没有渲染,所以只进行计算。
提前致谢。
【问题讨论】:
-
问题中的代码有什么错误?根据您在
show中描述的代码应该在一个模型中 - 由两个控制器操作调用。但是它会按照描述的那样工作,这可能意味着您正在查看错误并做出错误的假设。it will redirect me to the home page saying you have to be logged in. -
是的,感谢您指出这一点。我首先认为这是一个“自动”重定向,因为 Auth 组件因为
show操作需要身份验证,但不是,是我通过检查其他失败的条件。现在可以了,谢谢。
标签: php cakephp authentication hadoop php-5.4