Skip to content

Commit 9023482

Browse files
committed
Release 1.8.0
Changes: - BouncyCastle dependency is now optional. In order to opt out, depend on `webauthn-server-core-minimal` instead of `webauthn-server-core`. This is not recommended unless you know your JVM includes JCA providers for all signature algorithms. Note that `webauthn-server-attestation` still depends on BouncyCastle. - Jackson deserializer for `PublicKeyCredential` now allows a `rawId` property to be present if `id` is not present, or if `rawId` equals `id`.
2 parents 8293a6a + f9a5d90 commit 9023482

File tree

59 files changed

+3488
-2900
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

59 files changed

+3488
-2900
lines changed

.github/workflows/build.yml

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ jobs:
1010
runs-on: ubuntu-latest
1111
strategy:
1212
matrix:
13-
java: [8, 11, 13]
13+
java: [8, 11, 15]
1414

1515
steps:
1616
- name: Check out code
@@ -22,7 +22,14 @@ jobs:
2222
java-version: ${{ matrix.java }}
2323

2424
- name: Run tests
25-
run: ./gradlew check
25+
run: ./gradlew cleanTest check
26+
27+
- name: Archive test report
28+
if: ${{ always() }}
29+
uses: actions/upload-artifact@v2
30+
with:
31+
name: test-reports
32+
path: "*/build/reports/**"
2633

2734
- name: Build JavaDoc
2835
run: ./gradlew assembleJavadoc

.github/workflows/codeql-analysis.yml

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -14,24 +14,20 @@ jobs:
1414
steps:
1515
- name: Checkout repository
1616
uses: actions/checkout@v2
17-
with:
18-
# We must fetch at least the immediate parents so that if this is
19-
# a pull request then we can checkout the head.
20-
fetch-depth: 2
2117

22-
# If this run was triggered by a pull request event, then checkout
23-
# the head of the pull request instead of the merge commit.
24-
- run: git checkout HEAD^2
25-
if: ${{ github.event_name == 'pull_request' }}
18+
- uses: actions/setup-java@v1
19+
with:
20+
java-version: '11'
2621

2722
# Initializes the CodeQL tools for scanning.
2823
- name: Initialize CodeQL
2924
uses: github/codeql-action/init@v1
25+
with:
26+
languages: java
3027

31-
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
32-
# If this step fails, then you should remove it and run the build manually (see below)
33-
- name: Autobuild
34-
uses: github/codeql-action/autobuild@v1
28+
- name: Build project
29+
run: |
30+
./gradlew jar
3531
3632
- name: Perform CodeQL Analysis
3733
uses: github/codeql-action/analyze@v1

.github/workflows/coverage.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ on:
77

88
jobs:
99
test:
10-
name: JDK ${{matrix.java}}
10+
name: Measure mutation test coverage
1111

1212
runs-on: ubuntu-latest
1313

NEWS

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,20 @@
1+
== Version 1.8.0 ==
2+
3+
Changes:
4+
5+
* BouncyCastle dependency is now optional.
6+
7+
In order to opt out, depend on `webauthn-server-core-minimal` instead of
8+
`webauthn-server-core`.
9+
This is not recommended unless you know your JVM includes JCA providers for
10+
all signature algorithms.
11+
12+
Note that `webauthn-server-attestation` still depends on BouncyCastle.
13+
14+
* Jackson deserializer for `PublicKeyCredential` now allows a `rawId` property
15+
to be present if `id` is not present, or if `rawId` equals `id`.
16+
17+
118
== Version 1.7.0 ==
219

320
webauthn-server-attestation:

README

Lines changed: 28 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,17 +25,43 @@ Maven:
2525
<dependency>
2626
<groupId>com.yubico</groupId>
2727
<artifactId>webauthn-server-core</artifactId>
28-
<version>1.6.1</version>
28+
<version>1.8.0</version>
2929
<scope>compile</scope>
3030
</dependency>
3131
----------
3232

3333
Gradle:
3434

3535
----------
36-
compile 'com.yubico:webauthn-server-core:1.6.1'
36+
compile 'com.yubico:webauthn-server-core:1.8.0'
3737
----------
3838

39+
=== Semantic versioning
40+
41+
This library uses link:https://semver.org/[semantic versioning].
42+
The public API consists of all public classes, methods and fields in the `com.yubico.webauthn` package and its subpackages,
43+
i.e., everything covered by the
44+
link:https://developers.yubico.com/java-webauthn-server/JavaDoc/webauthn-server-core/latest/com/yubico/webauthn/package-summary.html[Javadoc].
45+
46+
Package-private classes and methods are NOT part of the public API.
47+
The `com.yubico:yubico-util` module is NOT part of the public API.
48+
Breaking changes to these will NOT be reflected in version numbers.
49+
50+
51+
=== Additional modules
52+
53+
In addition to the main `webauthn-server-core` module, there are also:
54+
55+
- `webauthn-server-attestation`: A simple implementation of the
56+
link:https://developers.yubico.com/java-webauthn-server/JavaDoc/webauthn-server-core/latest/com/yubico/webauthn/attestation/MetadataService.html[`MetadataService`]
57+
interface, which by default comes preloaded with attestation metadata for Yubico devices.
58+
59+
- `webauthn-server-core-minimal`: Alternative distribution of `webauthn-server-core`,
60+
without a dependency on BouncyCastle.
61+
If depending on this module instead of `webauthn-server-core`,
62+
you may have to add your own JCA providers to support some signature algorithms.
63+
In particular, OpenJDK 14 and earlier does not include providers for the EdDSA family of algorithms.
64+
3965

4066
== Features
4167

build.gradle

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ buildscript {
77
}
88
}
99
plugins {
10-
id 'com.github.kt3k.coveralls' version '2.10.2'
11-
id 'io.codearte.nexus-staging' version '0.22.0'
10+
id 'com.github.kt3k.coveralls' version '2.11.0'
11+
id 'io.codearte.nexus-staging' version '0.30.0'
1212
id 'io.franzbecker.gradle-lombok' version '4.0.0'
1313
}
1414

@@ -30,7 +30,7 @@ if (publishEnabled) {
3030
}
3131

3232
wrapper {
33-
gradleVersion = '6.1'
33+
gradleVersion = '6.8'
3434
}
3535

3636
allprojects {
@@ -80,8 +80,8 @@ subprojects {
8080
apply plugin: LombokPlugin
8181

8282
lombok {
83-
version '1.18.10'
84-
sha256 = '2836e954823bfcbad45e78c18896e3d01058e6f643749810c608b7005ee7b2fa'
83+
version '1.18.18'
84+
sha256 = '601ec46206e0f9cac2c0583b3350e79f095419c395e991c761640f929038e9cc'
8585
}
8686
tasks.withType(AbstractCompile) {
8787
if (tasks.findByName('verifyLombok')) {
@@ -175,11 +175,14 @@ subprojects { project ->
175175
from javadoc
176176
}
177177

178-
rootProject.tasks.assembleJavadoc {
179-
dependsOn javadoc
180-
inputs.dir javadoc.destinationDir
181-
from(javadoc.destinationDir) {
182-
into project.name
178+
// TODO: Revert this if statement in the next major release
179+
if (project.projectDir.name != "webauthn-server-core-bundle") {
180+
rootProject.tasks.assembleJavadoc {
181+
dependsOn javadoc
182+
inputs.dir javadoc.destinationDir
183+
from(javadoc.destinationDir) {
184+
into project.projectDir.name
185+
}
183186
}
184187
}
185188
}

buildSrc/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,6 @@ repositories {
77
dependencies {
88
implementation(
99
'commons-io:commons-io:2.5',
10-
'info.solidsoft.gradle.pitest:gradle-pitest-plugin:1.4.6',
10+
'info.solidsoft.gradle.pitest:gradle-pitest-plugin:1.5.1',
1111
)
1212
}

doc/development.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
Developer docs
2+
===
3+
4+
Inconsistent directory naming
5+
---
6+
7+
In resolving [issue #97](https://github.com/Yubico/java-webauthn-server/issues/97),
8+
we opted to split the `webauthn-server-core` module into one `webauthn-server-core` meta-module
9+
and one `webauthn-server-core-minimal` module with the code and all dependencies except BouncyCastle.
10+
However, to avoid file renames and since this is intended as a temporary change,
11+
the source code for the `webauthn-server-core` module is hosted in the `webauthn-server-core-bundle/` subproject
12+
and the `webauthn-server-core-minimal` module is hosted in `webauthn-server-core/`.
13+
14+
We intend to eliminate the `webauthn-server-core-bundle` subproject in the next major version release,
15+
and return the current `webauthn-server-core-minimal` module to the `webauthn-server-core` module name.
16+
This naming inconsistency should be fixed along with this.

doc/releasing.md

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -85,46 +85,48 @@ Release versions
8585
8686
4. Remove the "(unreleased)" tag from `NEWS`.
8787
88-
5. Amend this change into the merge commit:
88+
5. Update the version in the dependency snippets in the README.
89+
90+
6. Amend these changes into the merge commit:
8991
9092
```
9193
$ git add NEWS
9294
$ git commit --amend --reset-author
9395
```
9496
95-
6. Run the tests one more time:
97+
7. Run the tests one more time:
9698
9799
```
98100
$ ./gradlew clean check
99101
```
100102
101-
7. Tag the merge commit with an `X.Y.Z` tag:
103+
8. Tag the merge commit with an `X.Y.Z` tag:
102104
103105
```
104106
$ git tag -a -s 1.4.0 -m "Release 1.4.0"
105107
```
106108
107109
No tag body needed since that's included in the commit.
108110
109-
8. Publish to Sonatype Nexus:
111+
9. Publish to Sonatype Nexus:
110112
111113
```
112114
$ ./gradlew publish closeAndReleaseRepository
113115
```
114116
115-
9. Wait for the artifacts to become downloadable at
117+
10. Wait for the artifacts to become downloadable at
116118
https://repo1.maven.org/maven2/com/yubico/webauthn-server-core/1.4.0/ . This
117119
is needed for one of the GitHub Actions release workflows and usually takes
118120
less than 30 minutes (long before the artifacts become searchable on the
119121
main Maven Central website).
120122
121-
10. Push to GitHub:
123+
11. Push to GitHub:
122124
123125
```
124126
$ git push origin master 1.4.0
125127
```
126128
127-
11. Make GitHub release.
129+
12. Make GitHub release.
128130
129131
- Use the new tag as the release tag
130132
- Copy the release notes from `NEWS` into the GitHub release notes; reformat

gradle/wrapper/gradle-wrapper.jar

508 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)