ec-europa / ecas-phpcas-parser
此包已废弃且不再维护。未建议替代包。
ECAS phpCAS 属性解析器
0.3
2017-04-14 09:26 UTC
Requires
- jasig/phpcas: >=1.3.5 <2.0
README
#EcasPhpCASParser
原因
目前phpCAS对ECAS属性的默认解析已损坏,组最终变成无法解析的连续字符串。
之前
array (size=21)
'user' => string 'gboddin' (length=7)
'departmentNumber' => string 'xxxx' (length=13)
'email' => string 'xxx' (length=31)
'employeeNumber' => string 'xxx' (length=8)
'employeeType' => string 'x' (length=1)
'firstName' => string 'Gregory' (length=7)
'lastName' => string 'BODDIN' (length=6)
'domain' => string 'xxxxx' (length=12)
'domainUsername' => string 'gboddin' (length=7)
'telephoneNumber' => string 'xxx' (length=5)
'locale' => string 'en' (length=2)
'assuranceLevel' => string 'xx' (length=2)
'uid' => string 'gboddin' (length=7)
'orgId' => string 'xxxx' (length=6)
'groups' => string 'GROUP1GROUP2GROUP3GROUP4GROUP5' (length=28)
'strength' => string 'STRONG' (length=6)
'authenticationFactors' => "xxxxgboddin"
'loginDate' => string '2016-06-29T10:53:06.399+02:00' (length=29)
'sso' => string 'true' (length=4)
'ticketType' => string 'SERVICE' (length=7)
之后
array (size=21)
'user' => string 'gboddin' (length=7)
'departmentNumber' => string 'xxxx' (length=13)
'email' => string 'xxx' (length=31)
'employeeNumber' => string 'xxx' (length=8)
'employeeType' => string 'x' (length=1)
'firstName' => string 'Gregory' (length=7)
'lastName' => string 'BODDIN' (length=6)
'domain' => string 'xxxxx' (length=12)
'domainUsername' => string 'gboddin' (length=7)
'telephoneNumber' => string 'xxx' (length=5)
'locale' => string 'en' (length=2)
'assuranceLevel' => string 'xx' (length=2)
'uid' => string 'gboddin' (length=7)
'orgId' => string 'xxxx' (length=6)
'groups' =>
array (size=18)
0 => string 'GROUP1' (length=6)
1 => string 'GROUP2' (length=6)
2 => string 'GROUP3' (length=6)
3 => string 'GROUP4' (length=6)
4 => string 'GROUP5' (length=6)
'strength' => string 'STRONG' (length=6)
'loginDate' => string '2016-06-29T10:53:06.399+02:00' (length=29)
'authenticationFactors' =>
array (size=1)
'password' => string 'gboddin' (length=7)
'sms' => string 'xxxxxxx' (length=7)
'sso' => string 'true' (length=4)
'ticketType' => string 'SERVICE' (length=7)
安装
使用composer添加
composer require ec-europa/ecas-phpcas-parser:~0.3
使用方法
//config the client client as usual phpCAS::client( constant($config['cas.version']), $config['cas.host'], (int) $config['cas.port'], $config['cas.uri'], false ); //set the attribute callback phpCAS::setCasAttributeParserCallback( array( new \EcasPhpCASParser\EcasPhpCASParser(), 'parse' ) );
ECAS认证成功XML示例
<cas:authenticationSuccess> <cas:user>gboddin</cas:user> <cas:groups number="2"> <cas:group>GROUP1</cas:group> <cas:group>GROUP1</cas:group> </cas:groups> <cas:ticketType>SERVICE</cas:ticketType> <!-- and so on ... --> </cas:authenticationSuccess>