<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Symfony中文教程 &#187; Authorization</title>
	<atom:link href="http://www.newlifeclan.com/symfony/archives/tag/authorization/feed" rel="self" type="application/rss+xml" />
	<link>http://www.newlifeclan.com/symfony</link>
	<description>站在巨人肩膀上的phpweb框架</description>
	<lastBuildDate>Fri, 12 Dec 2025 00:58:27 +0000</lastBuildDate>
	<language>zh-CN</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.0.38</generator>
	<item>
		<title>KU案例2之02授权Authorization和Access Control</title>
		<link>http://www.newlifeclan.com/symfony/archives/402</link>
		<comments>http://www.newlifeclan.com/symfony/archives/402#comments</comments>
		<pubDate>Mon, 30 Mar 2015 07:30:41 +0000</pubDate>
		<dc:creator><![CDATA[napoleon]]></dc:creator>
				<category><![CDATA[实战教程]]></category>
		<category><![CDATA[Authorization]]></category>

		<guid isPermaLink="false">http://www.newlifeclan.com/symfony/?p=402</guid>
		<description><![CDATA[<p>之前我们让匿名用户可以进入每一个页面，这一次我们要尝试authorization（授权）并开始拒绝进入。 再来 [&#8230;]</p>
<p><a rel="nofollow" href="http://www.newlifeclan.com/symfony/archives/402">KU案例2之02授权Authorization和Access Control</a>，首发于<a rel="nofollow" href="http://www.newlifeclan.com/symfony">Symfony中文教程</a>。</p>
]]></description>
				<content:encoded><![CDATA[<p>之前我们让匿名用户可以进入每一个页面，这一次我们要尝试authorization（授权）并开始拒绝进入。</p>
<p>再来看看Security.yml。拒绝访问最简单的方式就是通过ACCESS_CONTROL部分。我们可以使用正则表达式去保护任何URL，现在我们开始保护 /new和/create;</p>
<p><span id="more-402"></span></p>
<p>当你登录会给你一个角色，如果你没有登录，你就没有这些。在这里，你最少需要ROLE_USER角色才能访问。</p><pre class="crayon-plain-tag"># app/config/security.yml
security:
    # ...
    access_control:
        - { path: ^/new, roles: ROLE_USER }
        - { path: ^/create, roles: ROLE_USER }</pre><p>试试吧！当我们尝试访问这两个地址，会被重定向到<tt class="docutils literal"><span class="pre">/my-login-url</span></tt>.我终于知道这个URL是干什么的了！login_path键的杰作。</p>
<p>刚才的神奇事情，发生在幕后：</p>
<p>我们尝试访问 /new。由于我们是匿名用户，不存在角色，这个access controls把匿名用户踢了出去；</p>
<p>它不是给我们一个访问被拒绝的页面，而是你可以决定让它有登录的机会。form_login键告诉防火墙我们要使用一个传统的登录表单，并告诉表单的路径为 /my-login-url.</p>
<p>因为我们没有登录页面，所以看到了一个404错误页。</p>
<h2>更多的access_control配置</h2>
<p>access_control有很多的技巧，你可以查看<span style="color: #ff0000"><a style="color: #ff0000" href="http://www.newlifeclan.com/symfony/archives/242" target="_blank">第十三章：安全security</a></span>找到access_control部分。</p>
<p>还有一些其他的技巧，如你可以根据用户的ip或者是根据主机名来控制访问用户。你甚至可以让用户重定向到https。</p>
<p><a rel="nofollow" href="http://www.newlifeclan.com/symfony/archives/402">KU案例2之02授权Authorization和Access Control</a>，首发于<a rel="nofollow" href="http://www.newlifeclan.com/symfony">Symfony中文教程</a>。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.newlifeclan.com/symfony/archives/402/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
