KU案例2之02授权Authorization和Access Control

之前我们让匿名用户可以进入每一个页面,这一次我们要尝试authorization(授权)并开始拒绝进入。

再来看看Security.yml。拒绝访问最简单的方式就是通过ACCESS_CONTROL部分。我们可以使用正则表达式去保护任何URL,现在我们开始保护 /new和/create;

当你登录会给你一个角色,如果你没有登录,你就没有这些。在这里,你最少需要ROLE_USER角色才能访问。

试试吧!当我们尝试访问这两个地址,会被重定向到/my-login-url.我终于知道这个URL是干什么的了!login_path键的杰作。

刚才的神奇事情,发生在幕后:

我们尝试访问 /new。由于我们是匿名用户,不存在角色,这个access controls把匿名用户踢了出去;

它不是给我们一个访问被拒绝的页面,而是你可以决定让它有登录的机会。form_login键告诉防火墙我们要使用一个传统的登录表单,并告诉表单的路径为 /my-login-url.

因为我们没有登录页面,所以看到了一个404错误页。

更多的access_control配置

access_control有很多的技巧,你可以查看第十三章:安全security找到access_control部分。

还有一些其他的技巧,如你可以根据用户的ip或者是根据主机名来控制访问用户。你甚至可以让用户重定向到https。

发表评论