PHPackages                             silinternational/ssp-utilities - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. silinternational/ssp-utilities

Abandoned → [sil-org/ssp-utilities](/?search=sil-org%2Fssp-utilities)Library

silinternational/ssp-utilities
==============================

SimpleSAMLphp related utility classes

2.1.1(7mo ago)03.8k5MITPHPPHP ^8.1CI passing

Since Jun 23Pushed 1mo ago6 watchersCompare

[ Source](https://github.com/sil-org/ssp-utilities)[ Packagist](https://packagist.org/packages/silinternational/ssp-utilities)[ RSS](/packages/silinternational-ssp-utilities/feed)WikiDiscussions main Synced 2mo ago

READMEChangelog (10)Dependencies (3)Versions (13)Used By (5)

ssp-utilities
=============

[](#ssp-utilities)

SimpleSAMLphp related utility classes

Overview
--------

[](#overview)

This project includes utilities that are used by [ssp-base](https://github.com/sil-org/ssp-base)

It provides business logic that determines which simplesamlphp Identity Providers can be used for authentication by a certain SP.

It also provides a utility that will gather together remote metadata from a folder and its sub-folders to be used by a saml20-\*-remote.php file.

It includes unit tests that can be run from the /data folder via $ vendor/phpunit/phpunit/phpunit tests. These should provide insight into what the utilities do in practice.

Editing IdP Business Logic
--------------------------

[](#editing-idp-business-logic)

There are several ways to limit which **IdP's** can be used for authentication by a certain **SP**. (These are provided by `Utils.php::isIdpValidForSp` which is called by the `DiscoUtils.php::getIdpsForSp` method.)

1. If an **IDP's** entry in the `saml20-idp-remote.php` file includes a `'SPList'` entry (as an array), then only the **SP's** which have an **entity id** listed in that array will be permissible.
2. If an **IDP's** entry in the `saml20-idp-remote.php` file includes an `'excludeByDefault'` entry set to `True`, then only the **SP's** which include the **IdP's entity id** in their `'IDPList'` entry will be permissible.
3. If an **SP's** entry in the `saml20-sp-remote.php` file includes an `'IDPList'` entry (as an array), then only the **IdP's** which have an **entity id** listed in that array will be permissible.

Metadata Utilities
------------------

[](#metadata-utilities)

The metadata.php file includes utilities that pull in metadata from all the files named idp-*.php and sp-*.php respectively, including those in sub-folders.

###  Health Score

52

—

FairBetter than 96% of packages

Maintenance78

Regular maintenance activity

Popularity16

Limited adoption so far

Community25

Small or concentrated contributor base

Maturity79

Established project with proven stability

 Bus Factor2

2 contributors hold 50%+ of commits

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~300 days

Recently: every ~388 days

Total

11

Last Release

238d ago

Major Versions

1.1.0 → 2.0.02024-06-15

PHP version history (5 changes)1.0.0PHP &gt;=5.4

1.0.6PHP &gt;=5.6

1.0.7PHP &gt;=7.0

1.1.0PHP ^7.0 || ^8.0

2.0.0PHP ^8.1

### Community

Maintainers

![](https://www.gravatar.com/avatar/a5e188393958c4505bb06d9e79ed99a47d1cd42551142f02ef364d8268449ef8?d=identicon)[fillup](/maintainers/fillup)

![](https://www.gravatar.com/avatar/836739aa4f60c754dc9a4a547ebd0c166e4b6e855d9f119df2be5aec92f3a375?d=identicon)[forevermatt](/maintainers/forevermatt)

![](https://www.gravatar.com/avatar/a0d56d7e6fc794910b03eff96448007ee05879ad38493f0b5f215c4fe61f4b30?d=identicon)[mtompset](/maintainers/mtompset)

![](https://www.gravatar.com/avatar/5256eacae3564eb6d3e954abc6552ed99a6d948d94d2b07cc1dc9dabb0bce108?d=identicon)[jason-jackson](/maintainers/jason-jackson)

---

Top Contributors

[![Baggerone](https://avatars.githubusercontent.com/u/8058522?v=4)](https://github.com/Baggerone "Baggerone (42 commits)")[![forevermatt](https://avatars.githubusercontent.com/u/6233204?v=4)](https://github.com/forevermatt "forevermatt (20 commits)")[![briskt](https://avatars.githubusercontent.com/u/3172830?v=4)](https://github.com/briskt "briskt (17 commits)")[![jason-jackson](https://avatars.githubusercontent.com/u/35783387?v=4)](https://github.com/jason-jackson "jason-jackson (10 commits)")[![fillup](https://avatars.githubusercontent.com/u/556105?v=4)](https://github.com/fillup "fillup (4 commits)")[![devon-sil](https://avatars.githubusercontent.com/u/122382412?v=4)](https://github.com/devon-sil "devon-sil (2 commits)")[![PaulDokken](https://avatars.githubusercontent.com/u/75853422?v=4)](https://github.com/PaulDokken "PaulDokken (1 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/silinternational-ssp-utilities/health.svg)

```
[![Health](https://phpackages.com/badges/silinternational-ssp-utilities/health.svg)](https://phpackages.com/packages/silinternational-ssp-utilities)
```

###  Alternatives

[egroupware/egroupware

EGroupware extends a classic groupware with an integrated CRM-system, a secure file-server and Collabora Online Office.

2891.6k](/packages/egroupware-egroupware)[simplesamlphp/simplesamlphp-module-webauthn

A PHP implementation of a FIDO2 / WebAuthn authentication agent

181.4k](/packages/simplesamlphp-simplesamlphp-module-webauthn)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
