413 12
发新话题
打印

symfony 项目实践

限制访问后端程序的权限


目前的后端程序没有限制访问,你应该限制它的访问权限。
新建一个apps/backend/modules/post/config/security.yml文件,加入:
复制内容到剪贴板
代码:
all:
  is_secure: on
为comment模块新建同样的文件。
现在,你不能访问以上的两个模块由于还未登录。登录模块尚未建立,所以我们现在就建一个。创建登录模块,输入:
复制内容到剪贴板
代码:
$ symfony init-module backend security
新建的模块将用来处理登陆请求。打开apps/backend/modules/security/templates/indexSuccess.php模版,加入:

复制内容到剪贴板
代码:
<h2>Authentication</h2>

<?php if ($sf_request->hasErrors()): ?>
  Identification failed - please try again
<?php endif ?>

<?php echo form_tag('security/login') ?>
  <label for="login">login:</label>
  <?php echo input_tag('login', $sf_params->get('login')) ?>

  <label for="password">password:</label>
  <?php echo input_password_tag('password') ?>

  <?php echo submit_tag('submit', 'class=default') ?>
</form>



打开apps/backend/modules/security/actions/actions.class.php,添加一个登陆的动作:
复制内容到剪贴板
代码:
public function executeLogin()
{
  if ($this->getRequestParameter('login') == 'admin' && $this->getRequestParameter('password') == 'password')
  {
    $this->getUser()->setAuthenticated(true);
    return $this->redirect('default/index');
  }
  else
  {
    $this->getRequest()->setError('login', 'incorrect entry');
    return $this->forward('security', 'index');
  }
}
最后一步,把security模块设为默认的登陆模块。具体做法是,打开apps/backend/config/settings.yml,加入:
复制内容到剪贴板
代码:
all:
  .actions:
    login_module:           security
    login_action:           index
如果你现在访问Post的后端程序,你将会要求输入帐号和密码。







更多关于安全的说明

TOP

结论

恭喜,你完成了一个网路日志。你可以在做业环境测试它的性能:
复制内容到剪贴板
代码:
frontend:   http://localhost/sf_sandbox/web/index.php/
backend:    http://localhost/sf_sandbox/web/backend.php/
如果在做业环境下发生错误,大多数情况出于缓存的问题。清除缓存,输入:
复制内容到剪贴板
代码:
$ symfony cc
<全文完 >

TOP

都是一样的东东

我的运行到加入超链接就,它就怎么也显不出来。
没有得办法,只能做到那下面就没有办法再做了。

TOP

 413 12
发新话题