Skip to content

Commit 77e31a4

Browse files
committed
Merge with master
2 parents 2a060c3 + b0de316 commit 77e31a4

35 files changed

+428
-303
lines changed

.github/workflows/documentation.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ jobs:
1919
runs-on: [ubuntu-latest]
2020

2121
steps:
22-
- uses: actions/checkout@v5
22+
- uses: actions/checkout@v6
2323

2424
- name: Lint markdown files
2525
uses: nosborn/github-action-markdown-cli@v3

.github/workflows/sonar.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ jobs:
88
runs-on: ubuntu-latest
99
continue-on-error: true
1010
steps:
11-
- uses: actions/checkout@v4
11+
- uses: actions/checkout@v6
1212
- name: SonarQube Scan
1313
uses: SonarSource/sonarqube-scan-action@v2
1414
env:
@@ -17,4 +17,4 @@ jobs:
1717
with:
1818
args: >
1919
-Dsonar.projectKey=${{ github.event.repository.name }}
20-
-Dsonar.projectName=${{ github.event.repository.name }}
20+
-Dsonar.projectName=${{ github.event.repository.name }}

.github/workflows/test.yaml

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ jobs:
1313
strategy:
1414
fail-fast: false
1515
matrix:
16-
php-versions: ["8.2", "8.3"]
16+
php-versions: ["8.3", "8.4", "8.5"]
1717

1818
steps:
1919
- name: Setup PHP, with composer and extensions
@@ -35,14 +35,14 @@ jobs:
3535
git config --global core.autocrlf false
3636
git config --global core.eol lf
3737
38-
- uses: actions/checkout@v4
38+
- uses: actions/checkout@v6
3939

4040
- name: Get composer cache directory
4141
id: composer-cache
4242
run: echo COMPOSER_CACHE="$(composer config cache-files-dir)" >> "$GITHUB_ENV"
4343

4444
- name: Cache composer dependencies
45-
uses: actions/cache@v4
45+
uses: actions/cache@v5
4646
with:
4747
path: $COMPOSER_CACHE
4848
key: "${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}"
@@ -55,7 +55,7 @@ jobs:
5555
run: composer install --no-progress --prefer-dist --optimize-autoloader
5656

5757
- name: Decide whether to run code coverage or not
58-
if: ${{ matrix.php-versions != '8.2' }}
58+
if: ${{ matrix.php-versions != '8.5' }}
5959
run: |
6060
echo "NO_COVERAGE=--no-coverage" >> $GITHUB_ENV
6161
@@ -70,13 +70,13 @@ jobs:
7070
./vendor/bin/phpunit $NO_COVERAGE --no-configuration -c phpunit.integration.xml
7171
7272
- name: Merge coverage data
73-
if: ${{ matrix.php-versions == '8.2' }}
73+
if: ${{ matrix.php-versions == '8.5' }}
7474
run: |
7575
./vendor/bin/phpunit-merger log build/logs/partial_junit/ build/logs/junit.xml
7676
./vendor/bin/phpunit-merger coverage build/logs/partial_clover/ build/logs/clover.xml
7777
7878
- name: Save coverage data
79-
if: ${{ matrix.php-versions == '8.2' }}
79+
if: ${{ matrix.php-versions == '8.5' }}
8080
uses: actions/upload-artifact@v4
8181
with:
8282
name: build-data
@@ -89,22 +89,22 @@ jobs:
8989
- name: Setup PHP, with composer and extensions
9090
uses: shivammathur/setup-php@v2 #https://github.com/shivammathur/setup-php
9191
with:
92-
php-version: "8.2"
92+
php-version: "8.3"
9393
extensions: mbstring, xml
9494
tools: composer:v2
9595
coverage: none
9696

9797
- name: Setup problem matchers for PHP
9898
run: echo "::add-matcher::${{ runner.tool_cache }}/php.json"
9999

100-
- uses: actions/checkout@v4
100+
- uses: actions/checkout@v6
101101

102102
- name: Get composer cache directory
103103
id: composer-cache
104104
run: echo COMPOSER_CACHE="$(composer config cache-files-dir)" >> "$GITHUB_ENV"
105105

106106
- name: Cache composer dependencies
107-
uses: actions/cache@v4
107+
uses: actions/cache@v5
108108
with:
109109
path: $COMPOSER_CACHE
110110
key: "${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}"
@@ -130,22 +130,22 @@ jobs:
130130
- name: Setup PHP, with composer and extensions
131131
uses: shivammathur/setup-php@v2 #https://github.com/shivammathur/setup-php
132132
with:
133-
php-version: "8.2"
133+
php-version: "8.3"
134134
extensions: mbstring, xml
135135
tools: composer:v2
136136
coverage: none
137137

138138
- name: Setup problem matchers for PHP
139139
run: echo "::add-matcher::${{ runner.tool_cache }}/php.json"
140140

141-
- uses: actions/checkout@v4
141+
- uses: actions/checkout@v6
142142

143143
- name: Get composer cache directory
144144
id: composer-cache
145145
run: echo COMPOSER_CACHE="$(composer config cache-files-dir)" >> "$GITHUB_ENV"
146146

147147
- name: Cache composer dependencies
148-
uses: actions/cache@v4
148+
uses: actions/cache@v5
149149
with:
150150
path: $COMPOSER_CACHE
151151
key: "${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}"
@@ -163,21 +163,21 @@ jobs:
163163
- name: Setup PHP, with composer and extensions
164164
uses: shivammathur/setup-php@v2 #https://github.com/shivammathur/setup-php
165165
with:
166-
php-version: "8.2"
166+
php-version: "8.5"
167167
tools: composer:v2
168168
extensions: mbstring, xml
169169

170170
- name: Setup problem matchers for PHP
171171
run: echo "::add-matcher::${{ runner.tool_cache }}/php.json"
172172

173-
- uses: actions/checkout@v4
173+
- uses: actions/checkout@v6
174174

175175
- name: Get composer cache directory
176176
id: composer-cache
177177
run: echo COMPOSER_CACHE="$(composer config cache-files-dir)" >> "$GITHUB_ENV"
178178

179179
- name: Cache composer dependencies
180-
uses: actions/cache@v4
180+
uses: actions/cache@v5
181181
with:
182182
path: $COMPOSER_CACHE
183183
key: "${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}"
@@ -211,12 +211,12 @@ jobs:
211211
strategy:
212212
fail-fast: false
213213
matrix:
214-
ssp-version: ["v2.3.7", "v2.4.4"]
214+
ssp-version: ["v2.5.0"]
215215
env:
216216
SUITE_BASE_URL: https://localhost.emobix.co.uk:8443
217-
VERSION: release-v5.1.35
217+
VERSION: release-v5.1.39
218218
steps:
219-
- uses: actions/checkout@v4
219+
- uses: actions/checkout@v6
220220
with:
221221
path: main
222222
- name: Setup Python Dependencies

composer.json

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
}
1818
],
1919
"require": {
20-
"php": "^8.2",
20+
"php": "^8.3",
2121
"ext-curl": "*",
2222
"ext-json": "*",
2323
"ext-openssl": "*",
@@ -33,20 +33,18 @@
3333
"simplesamlphp/composer-module-installer": "^1.3",
3434
"simplesamlphp/openid": "~v0.1.1",
3535
"spomky-labs/base64url": "^2.0",
36-
"symfony/expression-language": "^6.3",
37-
"symfony/psr-http-message-bridge": "^7.1",
36+
"symfony/expression-language": "^7.4",
37+
"symfony/psr-http-message-bridge": "^7.4",
3838
"web-token/jwt-framework": "^3",
39-
"symfony/cache": "^6.4",
39+
"symfony/cache": "^7.4",
4040
"psr/simple-cache": "^3"
4141
},
4242
"require-dev": {
4343
"friendsofphp/php-cs-fixer": "^3",
44-
"phpunit/phpunit": "^10",
45-
"rector/rector": "^0.18.3",
46-
"simplesamlphp/simplesamlphp": "2.3.*",
47-
"simplesamlphp/simplesamlphp-test-framework": "^1.5",
48-
"squizlabs/php_codesniffer": "^3",
49-
"vimeo/psalm": "^5",
44+
"rector/rector": "^1.2.10",
45+
"simplesamlphp/simplesamlphp": "2.5.*",
46+
"simplesamlphp/simplesamlphp-test-framework": "^1.9.3",
47+
"vimeo/psalm": "^6.15.1",
5048
"testcontainers/testcontainers": "^0.2",
5149
"nimut/phpunit-merger": "^2.0"
5250
},
@@ -60,6 +58,7 @@
6058
"sort-packages": true,
6159
"allow-plugins": {
6260
"dealerdirect/phpcodesniffer-composer-installer": true,
61+
"php-http/discovery": true,
6362
"phpstan/extension-installer": true,
6463
"simplesamlphp/composer-module-installer": true,
6564
"simplesamlphp/composer-xmlprovider-installer": true
@@ -83,7 +82,7 @@
8382
},
8483
"scripts": {
8584
"pre-commit": [
86-
"vendor/bin/phpcbf",
85+
"vendor/bin/phpcbf -pn",
8786
"vendor/bin/phpcs -p",
8887
"vendor/bin/psalm",
8988
"vendor/bin/phpunit"

docker/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
ARG SSP_VERSION="v2.4.4"
1+
ARG SSP_VERSION="v2.5.0"
22
FROM cirrusid/simplesamlphp:${SSP_VERSION}
33
#FROM cicnavi/simplesamlphp:${SSP_VERSION}
44

docs/1-oidc.md

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -53,16 +53,16 @@ OpenID4VCI is also implemented using the
5353

5454
Minor versions listed show which SimpleSAMLphp versions were used during
5555
module development. SimpleSAMLphp follows semantic versioning for its
56-
API since v2.0. For example, v5.\* of the OIDC module should work with
57-
any v2.\* of SimpleSAMLphp. PHP version requirements may differ.
58-
59-
| OIDC module | Tested SimpleSAMLphp | PHP | Note |
60-
|:------------|:---------------------|:------:|-------------|
61-
| v6.\* | v2.3.\*, v2.4.\* | \>=8.2 | Recommended |
62-
| v5.\* | v2.1.\* | \>=8.1 | |
63-
| v4.\* | v2.0.\* | \>=8.0 | |
64-
| v3.\* | v2.0.\* | \>=7.4 | |
65-
| v2.\* | v1.19.\* | \>=7.4 | |
56+
API since v2.0. PHP version requirements may differ.
57+
58+
| OIDC module | Tested SimpleSAMLphp | PHP |
59+
|:------------|:---------------------|:------:|
60+
| v6.4.\* | v2.5.\* | \>=8.3 |
61+
| v6.3.\* | v2.3.\*, v2.4.\* | \>=8.2 |
62+
| v5.\* | v2.1.\* | \>=8.1 |
63+
| v4.\* | v2.0.\* | \>=8.0 |
64+
| v3.\* | v2.0.\* | \>=7.4 |
65+
| v2.\* | v1.19.\* | \>=7.4 |
6666

6767
Upgrading? See the [upgrade guide](6-oidc-upgrade.md).
6868

docs/5-oidc-conformance.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ Clone, build, and run the conformance test suite:
1717
```bash
1818
git clone https://gitlab.com/openid/conformance-suite.git
1919
cd conformance-suite
20-
git checkout release-v5.1.35
20+
git checkout release-v5.1.39
2121
MAVEN_CACHE=./m2 docker-compose -f builder-compose.yml run builder
2222
docker-compose up
2323
```

docs/6-oidc-upgrade.md

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@
33
This is an upgrade guide from versions 1 → 7. Review the changes and
44
apply those relevant to your deployment.
55

6-
In general, when upgrading any of the SimpleSAMLphp modules or the
6+
In general, when upgrading any of the SimpleSAMLphp modules or the
77
SimpleSAMLphp instance itself, you should clear the SimpleSAMLphp
8-
cache after the upgrade. In newer versions of SimpleSAMLphp, the
8+
cache after the upgrade. In newer versions of SimpleSAMLphp, the
99
following command is available to do that:
1010

1111
```shell
@@ -21,7 +21,7 @@ New features:
2121

2222
- Instance can now be configured to support multiple algorithms and signature
2323
keys for protocol (Connect), Federation, and VCI purposes. This was introduced
24-
to support signature algorithm negotiation with the clients.
24+
to support signature algorithm negotiation with the clients.
2525
- Clients can now be configured with new properties:
2626
- ID Token Signing Algorithm (`id_token_signed_response_alg`)
2727
- Optional OAuth2 Token Introspection endpoint, as per RFC7662. Check the API
@@ -33,9 +33,9 @@ it in production.
3333
New configuration options:
3434

3535
- `ModuleConfig::OPTION_PROTOCOL_SIGNATURE_KEY_PAIRS` - (required) enables
36-
defining multiple protocol (Connect) related signing algorithms and key pairs.
36+
defining multiple protocol (Connect) related signing algorithms and key pairs.
3737
- `ModuleConfig::OPTION_FEDERATION_SIGNATURE_KEY_PAIRS` - (required if
38-
federation capabilities are enabled) enables defining multiple key pairs for
38+
federation capabilities are enabled) enables defining multiple key pairs for
3939
Federation purposes like signing Entity Statements, publishing new key for
4040
key roll-ower scenarios, etc.
4141
- `ModuleConfig::OPTION_VCI_SIGNATURE_KEY_PAIRS` - (required if VCI
@@ -51,7 +51,7 @@ optional, enables the OAuth2 token introspection endpoint as per RFC7662.
5151

5252
Major impact changes:
5353

54-
- The following configuration options related to the protocol (Connect)
54+
- The following configuration options related to the protocol (Connect)
5555
signature algorithm and key pair are removed:
5656
- `ModuleConfig::OPTION_PKI_PRIVATE_KEY_PASSPHRASE`
5757
- `ModuleConfig::OPTION_PKI_PRIVATE_KEY_FILENAME`
@@ -73,11 +73,11 @@ and key pair are removed:
7373
- `ModuleConfig::OPTION_PKI_FEDERATION_NEW_PRIVATE_KEY_PASSPHRASE`
7474
- `ModuleConfig::OPTION_PKI_FEDERATION_NEW_PRIVATE_KEY_FILENAME`
7575
- `ModuleConfig::OPTION_PKI_FEDERATION_NEW_CERTIFICATE_FILENAME`
76-
76+
7777
Instead of those options, now you must use option
7878
`ModuleConfig::OPTION_FEDERATION_SIGNATURE_KEY_PAIRS` in which you can define
7979
all the supported signature keys for Federation purposes.
80-
- Config option `ModuleConfig::OPTION_HOMEPAGE_URI` is removed. Use
80+
- Config option `ModuleConfig::OPTION_HOMEPAGE_URI` is removed. Use
8181
`ModuleConfig::OPTION_ORGANIZATION_URI` instead.
8282
- New algorithm for generating Key ID claim value (`kid`) for signature keys
8383
is used. Previously, key ID was based on public key file hash. In v7, key ID
@@ -87,7 +87,7 @@ current signature keys, you will probably want to keep the old `kid` values,
8787
so that the clients know the keys did not change. You can set the old
8888
`kid` value manually for signature keys in
8989
`ModuleConfig::OPTION_PROTOCOL_SIGNATURE_KEY_PAIRS` and
90-
`ModuleConfig::OPTION_FEDERATION_SIGNATURE_KEY_PAIRS`. Once you do a key
90+
`ModuleConfig::OPTION_FEDERATION_SIGNATURE_KEY_PAIRS`. Once you do a key
9191
roll-over, you can omit setting the `kid` manually, so you start using the
9292
automatically generated thumbprint.
9393
- In v6 of the module, when defining custom scopes, there was a possibility to
@@ -97,7 +97,7 @@ have a single value by specification. All [standard claims](https://openid.net/s
9797
are now hardcoded to have a single value, even when the
9898
'are_multiple_claim_values_allowed' option is enabled.
9999
- OpenID Federation specific endpoints for subordinate listing and fetching
100-
statements about subordinates are removed, as the final specification
100+
statements about subordinates are removed, as the final specification
101101
explicitly states that leaf entities must not have those endpoints.
102102
This effectively means that this OP implementation can only be a leaf entity
103103
in the federation context, and not a federation operator or intermediary entity.
@@ -113,6 +113,12 @@ needed since the OP implementation can only be a leaf entity
113113
- Admin menu item "OIDC" has been renamed to "OIDC OP" to better reflect
114114
the main purpose of the module.
115115

116+
## Version 6.3 to 6.4
117+
118+
This is a minor release in order to enable installation of the module with
119+
SimpleSAMLphp v2.5.*, which now requires at least PHP v8.3 and bumps a bunch
120+
of dependent Symfony packages to v7.4.
121+
116122
## Version 5 to 6
117123

118124
New features:

psalm.xml

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,25 +23,33 @@
2323
</projectFiles>
2424

2525
<issueHandlers>
26-
<!-- Ignore UnresolvableInclude on CLI-scripts -->
27-
<UnresolvableInclude>
28-
<errorLevel type="suppress">
29-
<file name="tests/bootstrap.php" />
30-
</errorLevel>
31-
</UnresolvableInclude>
26+
<!-- Ignore InvalidClassConstantType -->
3227
<InvalidClassConstantType>
3328
<errorLevel type="suppress">
3429
<file name="src/Forms/Controls/CsrfProtection.php" />
3530
</errorLevel>
3631
</InvalidClassConstantType>
3732

33+
<!-- Ignore PossiblyFalseArgument -->
34+
<PossiblyFalseArgument>
35+
<errorLevel type="suppress">
36+
<file name="src/Server/Validators/BearerTokenValidator.php" />
37+
</errorLevel>
38+
</PossiblyFalseArgument>
39+
3840
<!-- Ignore errors related to unused classes, methods... -->
3941
<UnusedClass errorLevel="suppress" />
4042
<PossiblyUnusedMethod errorLevel="suppress" />
4143
<PossiblyUnusedReturnValue errorLevel="suppress" />
4244

4345
<!-- Ignore RiskyTruthyFalsyComparison -->
4446
<RiskyTruthyFalsyComparison errorLevel="suppress" />
47+
48+
<!-- Ignore ClassMustBeFinal -->
49+
<ClassMustBeFinal errorLevel="suppress" />
50+
51+
<!-- Ignore MissingOverrideAttribute -->
52+
<MissingOverrideAttribute errorLevel="suppress" />
4553
</issueHandlers>
4654
</psalm>
4755

0 commit comments

Comments
 (0)