禁用同一控制器中给定操作的身份验证

时间:2014-06-16 09:45:12

标签: php cakephp authentication hadoop php-5.4

我的控制器中有以下代码段:

public function beforeFilter() {
    $this->autoRender = false;
    ...
    $this->Auth->allow('email');
}

public function email() {
    ...
    $this->show();
    ...
}

public function show() {
    ...
}

我的show操作需要身份验证,但email不需要。

当我的hadoop作业完成时,email动作表示接受jobEndNotifier的通知,因此我无法在该页面上进行身份验证,因为它将被hadoop访问。 (https://hadoop.apache.org/docs/r1.2.1/api/org/apache/hadoop/mapred/JobEndNotifier.html

我的show操作基本上为完成的hadoop作业生成并可视化报告,当我的作业完成时,我想在系统中自动生成它们(缓存它们),所以稍后当用户访问该页面时,它将从缓存加载,并将更快。这就是我从show操作中调用email操作的原因。

当然,我可以在不登录的情况下访问email操作,但是当我从show调用email操作时,它会将我重定向到主页,说明您必须登录。

简而言之:如果我从show操作中调用email操作,我可以设置它,它不需要身份验证吗?由于页面未呈现,因此仅进行计算。

提前致谢。

1 个答案:

答案 0 :(得分:-1)

按照你的逻辑,     $这 - > Auth->允许('电子邮件&#39); 绕过电子邮件方法的身份验证,

您可以设置为在电子邮件功能中绕过显示,例如

public function beforeFilter() {
$this->autoRender = false;
...
$this->Auth->allow('email');
}

public function email() {
...
$this->Auth->allow('show'); /* allow show here **/
$this->show();
...
}

 public function show() {
  ...
}