使用正则表达式

优质
小牛编辑
138浏览
2023-12-01

行动时刻 - 使用正则表达式

Unlang允许在条件检查中进行正则表达式计算。这些通常是Posix正则表达式。运算符=〜和!〜与正则表达式相关联。为了简单的概念证明,我们将修改上一个练习: 1.编辑FreeRADIUS配置目录下的sites-available / default虚拟服务器,并在该部分顶部的post-auth部分中添加以下内容:

if(request:Framed-Protocol =~ /.*PP$/i){
    update reply {
        Reply-Message := "Regexp match for %{0}"
    }
}

2.在调试模式下重新启动FreeRADIUS并尝试作为alice进行身份验证。 首先在radtest命令的末尾添加1,然后省略1。 请注意,将1添加到radtest命令时,正则表达式匹配如何更改Reply-Message的值。

刚刚发生了什么?

我们已经展示了unlang的正则表达式功能。请注意unlang中正则表达式的以下要点:

  • 运算符=〜和!〜与正则表达式一起使用。
  • 正则表达式在两个/字符之间指定。
  • 正则表达式允许您引用其中的变量,例如 /^%{Framed-Protocol}$/i
  • 您可以在正则表达式的末尾添加可选的i字符,以使搜索大小写不敏感。
  • 如果匹配,则特殊变量%{0}保存在正则表达式中测试的变量的值。

这就结束了unlang的介绍 您现在应该知道unlang中使用的大多数构建块。 下一个部分将充分利用这些构建块来创建unlang的真实应用。