如何使用表达式在安全、路由服务,和验证
编辑该页面警告:你浏览的文档欧宝官网下载appob娱乐下载Symfony 3.0,不再维护。
读这个页面的更新版本Symfob娱乐下载ony 6.2(当前的稳定版本)。
如何使用表达式在安全、路由服务,和验证
ob娱乐下载Symfony提供了强大ExpressionLanguage组件。它允许您添加高度定制的逻辑内部配置。
Symfob娱乐下载ony框架利用表达式的在以下方面:
- 配置服务;
- 路线匹配条件;
- 检查安全(下面解释)访问控制与allow_if;
- 验证。
为更多的信息关于如何创建和使用表情,明白了表达式语法。
安全:复杂的访问控制表达式
除了一个角色ROLE_ADMIN
,isGranted
方法还接受一个表达式对象:
1 2 3 4 5 6 7 8 9 10 11
使用ob娱乐下载\组件\ExpressionLanguage\表达式;/ /……公共函数indexAction(){美元这- >denyAccessUnlessGranted (新表达式(在角色或“ROLE_ADMIN”(用户和user.isSuperAdmin ())”));/ /……}
在这个例子中,如果当前用户ROLE_ADMIN
如果当前用户对象的isSuperAdmin ()
方法返回真正的
,然后将被授予访问(注:可能没有一个用户对象isSuperAdmin
方法,该方法发明这个例子)。
它使用一个表达式,您可以了解更多关于表达式语言语法,看表达式语法。
内的表达,你可以访问大量的变量:
-
用户
-
用户对象(或字符串
另一次
如果你没有通过身份验证)。 -
角色
-
角色用户的数组,包括从角色层次结构但不包括
IS_AUTHENTICATED_ *
属性(请参阅下面的函数)。 -
对象
-
的对象(如果有的话)作为第二个参数传递
isGranted
。 -
令牌
- 令牌对象。
-
trust_resolver
-
的AuthenticationTrustResolverInterface对象:你可能会使用
is_ *
下面的函数来代替。
此外,您可以访问内有一定数量的函数表达式:
-
is_authenticated
-
返回
真正的
如果用户通过“记住我”或验证身份验证“充分”,即返回true,如果用户是“登录”。 -
is_anonymous
-
等于使用
IS_AUTHENTICATED_ANONYMOUSLY
与isGranted
函数。 -
is_remember_me
-
相似,但不等于
IS_AUTHENTICATED_REMEMBERED
,见下文。 -
is_fully_authenticated
-
相似,但不等于
IS_AUTHENTICATED_FULLY
,见下文。 -
has_role
-
检查用户给定的角色——相当于一个表达式
“ROLE_ADMIN”角色
。
这项工作,包括代码示例,许可下Creative Commons冲锋队3.0许可证。