informaticauco / simplesamlphp-module-ucofilter
一个用于过滤我们自己的属性的SimpleSAMLphp模块
0.5.0
2020-03-19 12:29 UTC
Requires
- php: >=5.5.9
- simplesamlphp/composer-module-installer: ^1.0
- symfony/expression-language: ^2.8|^3.0|^4.0
- webmozart/assert: ^1.3
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.13
- phpunit/phpunit: ^7.4
- roave/security-advisories: dev-master
- simplesamlphp/simplesamlphp: ^1.15
README
此模块可以使用Symfony组件中的ExpressionLanguage来添加或更改属性。
需求
- PHP>=5.5
安装
安装可以简单到执行以下命令
bash$ composer require informaticauco/simplesamlphp-module-ucofilter
用法
从任何支持过滤器(身份验证处理过滤器或authproc)的实体,我们可以这样使用此模块
<?php use SimpleSAML\Modules\UcoFilter\Auth\Process\UcoFilter; $config = array( // ... 50 => array( 'class' => UcoFilter::class, // (Optional) This filter only is executed is almost one rule is true // Default -> 'rules' => ['true'] 'rules' => [ '"sp-remote-id" in request["saml:RequesterID"]', ], // (Optional) Reset the next attributes before to add new values // Default -> 'reset' => [] 'reset' => [ 'eduPersonPrincipalName', ], // (Required) Create new attributes 'mapping' => array ( // Concatenation example without rules // firstName, middleName and lastName exists in Attributes. 'commonName' => 'firstName[0]~" "~middleName[0]~" "~lastName[0]', // Multiple attributes 'eduPersonPrincipalName' => [ 'uid[0]', 'mail[0]', 'commonName[0]' // previous attributes are available ], // Complete syntax with rules 'groups' => [ // value expression => rule expression // value only is added if the rule is true '"staff"' => 'in_attribute(attributes["uid"], ["username1", "username2])', '"guest"', // always true '"student"' => 'attributes["uid"][0] matches "/^alum\d+/"', ], ), ), // ... );
ExpressionLanguage参考
函数
这些方法在表达式内可用
string md5(string)
:调用PHP md5方法string sha1(string)
:调用PHP sha1方法bool in_attribute(array, array)
:搜索第一个数组中的元素是否存在于第二个数组中。用于检查属性是否有值。
变量
值表达式接收所有请求属性作为变量。例如:$request['Attributes']['uid']
将作为表达式内的uid
变量访问。请记住,所有属性都是数组。
规则表达式有三个变量
request
:完整的请求attributes
:仅属性value
:如果规则为真,将被分配的值
语法
要查看表达式语言组件支持的完整语法,请参阅
官方文档网站.