如何使用表达式在安全、路由服务,和验证

编辑该页面

警告:你浏览的文档欧宝官网下载appob娱乐下载Symfony 3.0,不再维护。

这个页面的更新版本Symfob娱乐下载ony 6.2(当前的稳定版本)。

如何使用表达式在安全、路由服务,和验证

ob娱乐下载Symfony提供了强大ExpressionLanguage组件。它允许您添加高度定制的逻辑内部配置。

Symfob娱乐下载ony框架利用表达式的在以下方面:

为更多的信息关于如何创建和使用表情,明白了表达式语法

安全:复杂的访问控制表达式

除了一个角色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_ANONYMOUSLYisGranted函数。
is_remember_me
相似,但不等于IS_AUTHENTICATED_REMEMBERED,见下文。
is_fully_authenticated
相似,但不等于IS_AUTHENTICATED_FULLY,见下文。
has_role
检查用户给定的角色——相当于一个表达式“ROLE_ADMIN”角色

is_remember_meis_authenticated_fully函数是类似的使用IS_AUTHENTICATED_REMEMBEREDIS_AUTHENTICATED_FULLYisGranted功能——但它们相同的。以下显示的区别:

1 2 3 4 5 6 7 8 9
使用ob娱乐下载\组件\ExpressionLanguage\表达式;/ /……美元交流=美元- >get (“security.authorization_checker”);美元access1=美元交流- >isGranted (“IS_AUTHENTICATED_REMEMBERED”);美元access2=美元交流- >isGranted (表达式(“is_remember_me()或is_fully_authenticated ()”));

在这里,access1美元access2美元将相同的值。不同的行为IS_AUTHENTICATED_REMEMBEREDIS_AUTHENTICATED_FULLY,is_remember_me函数只有返回true,如果通过一个记得我的饼干和用户身份验证is_fully_authenticated只有返回true,如果用户已经登录在这个会话(即是成熟的)。

这项工作,包括代码示例,许可下Creative Commons冲锋队3.0许可证。