Skip to content

Commit f8693e0

Browse files
committed
Release 1.5.0
Changes: - `RelyingParty` now makes an immutable copy of the `origins` argument, instead of storing a reference to a possibly mutable value. - The enum `AuthenticatorTransport` has been replaced by a value class containing methods and value constants equivalent to the previous enum. - The return type of `PublicKeyCredentialDescriptor.getTransports()` is now a `SortedSet` instead of `Set`. The builder still accepts a plain `Set`. - Registration ceremony now verifies that the returned credential public key matches one of the algorithms specified in `RelyingParty.preferredPubkeyParams` and can be successfully parsed. New features: - Origin matching can now be relaxed via two new `RelyingParty` options: - `allowOriginPort` (default `false`): Allow any port number in the origin - `allowOriginSubdomain` (default `false`): Allow any subdomain of any origin listed in `RelyingParty.origins` - See JavaDoc for details and examples. - The new `AuthenticatorTransport` can now contain any string value as the transport identifier, as required in the editor's draft of the L2 spec. See: w3c/webauthn#1275 - Added support for RS1 credentials. Registration of RS1 credentials is not enabled by default, but can be enabled by setting `RelyingParty.preferredPubKeyCredParams` to a list containing `PublicKeyCredentialParameters.RS1`. - New constant `PublicKeyCredentialParameters.RS1` - New constant `COSEAlgorithmIdentifier.RS1`
2 parents 248d0b1 + f310493 commit f8693e0

File tree

61 files changed

+2613
-647
lines changed

Some content is hidden

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

61 files changed

+2613
-647
lines changed

.github/workflows/master.yml renamed to .github/workflows/build.yml

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,7 @@
11
# This name is shown in the status badge in the README
22
name: build
33

4-
on:
5-
push:
6-
branches:
7-
- master
4+
on: [push, pull_request]
85

96
jobs:
107
test:
@@ -13,7 +10,7 @@ jobs:
1310
runs-on: ubuntu-latest
1411
strategy:
1512
matrix:
16-
java: [8, 10, 11, 12]
13+
java: [8, 11]
1714

1815
steps:
1916
- name: Check out code

.github/workflows/release-verify-signatures.yml

Lines changed: 20 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,9 @@ jobs:
1111
runs-on: ubuntu-latest
1212
strategy:
1313
matrix:
14-
java: [10, 11, 12]
14+
java: [11]
1515

1616
steps:
17-
- name: Download signatures
18-
run: |
19-
wget https://github.com/${GITHUB_REPOSITORY}/releases/download/${GITHUB_REF}/webauthn-server-attestation-${GITHUB_REF}.jar.asc
20-
wget https://github.com/${GITHUB_REPOSITORY}/releases/download/${GITHUB_REF}/webauthn-server-core-${GITHUB_REF}.jar.asc
21-
2217
- name: check out code
2318
uses: actions/checkout@v1
2419

@@ -31,9 +26,24 @@ jobs:
3126
run: ./gradlew jar
3227

3328
- name: Fetch keys
34-
run: gpg --recv-keys 57A9DEED4C6D962A923BB691816F3ED99921835E
29+
run: gpg --no-default-keyring --keyring yubico --recv-keys 57A9DEED4C6D962A923BB691816F3ED99921835E
30+
31+
- name: Verify signatures from GitHub release
32+
run: |
33+
export TAGNAME=${GITHUB_REF#refs/tags/}
3534
36-
- name: Verify signatures
35+
wget https://github.com/${GITHUB_REPOSITORY}/releases/download/${TAGNAME}/webauthn-server-attestation-${TAGNAME}.jar.asc
36+
wget https://github.com/${GITHUB_REPOSITORY}/releases/download/${TAGNAME}/webauthn-server-core-${TAGNAME}.jar.asc
37+
38+
gpg --no-default-keyring --keyring yubico --verify webauthn-server-attestation-${TAGNAME}.jar.asc webauthn-server-attestation/build/libs/webauthn-server-attestation-${TAGNAME}.jar
39+
gpg --no-default-keyring --keyring yubico --verify webauthn-server-core-${TAGNAME}.jar.asc webauthn-server-core/build/libs/webauthn-server-core-${TAGNAME}.jar
40+
41+
- name: Verify signatures from Maven Central
3742
run: |
38-
gpg --verify webauthn-server-attestation-${GITHUB_REF}.jar.asc webauthn-server-attestation/build/libs/webauthn-server-attestation-${GITHUB_REF}.jar
39-
gpg --verify webauthn-server-core-${GITHUB_REF}.jar.asc webauthn-server-core/build/libs/webauthn-server-core-${GITHUB_REF}.jar
43+
export TAGNAME=${GITHUB_REF#refs/tags/}
44+
45+
wget -O webauthn-server-core-${TAGNAME}.jar.mavencentral.asc https://repo1.maven.org/maven2/com/yubico/webauthn-server-core/${TAGNAME}/webauthn-server-core-${TAGNAME}.jar.asc
46+
wget -O webauthn-server-attestation-${TAGNAME}.jar.mavencentral.asc https://repo1.maven.org/maven2/com/yubico/webauthn-server-attestation/${TAGNAME}/webauthn-server-attestation-${TAGNAME}.jar.asc
47+
48+
gpg --no-default-keyring --keyring yubico --verify webauthn-server-attestation-${TAGNAME}.jar.mavencentral.asc webauthn-server-attestation/build/libs/webauthn-server-attestation-${TAGNAME}.jar
49+
gpg --no-default-keyring --keyring yubico --verify webauthn-server-core-${TAGNAME}.jar.mavencentral.asc webauthn-server-core/build/libs/webauthn-server-core-${TAGNAME}.jar

.github/workflows/test.yml

Lines changed: 0 additions & 39 deletions
This file was deleted.

.gitignore

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ out/
99
*.iml
1010
*.iws
1111
*/out/
12+
.attach_pid*
1213

1314
# Mac
1415
.DS_Store
@@ -19,5 +20,4 @@ target/
1920

2021
# Gradle
2122
.gradle/
22-
/build/
23-
/*/build/
23+
build/

.travis.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ branches:
77
jdk:
88
- oraclejdk11
99
- openjdk8
10-
- openjdk10
1110
- openjdk11
1211

1312
script:

NEWS

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,44 @@
1+
== Version 1.5.0 ==
2+
3+
Changes:
4+
5+
* `RelyingParty` now makes an immutable copy of the `origins` argument, instead
6+
of storing a reference to a possibly mutable value.
7+
* The enum `AuthenticatorTransport` has been replaced by a value class
8+
containing methods and value constants equivalent to the previous enum.
9+
* The return type of `PublicKeyCredentialDescriptor.getTransports()` is now a
10+
`SortedSet` instead of `Set`. The builder still accepts a plain `Set`.
11+
* Registration ceremony now verifies that the returned credential public key
12+
matches one of the algorithms specified in
13+
`RelyingParty.preferredPubkeyParams` and can be successfully parsed.
14+
15+
New features:
16+
17+
* Origin matching can now be relaxed via two new `RelyingParty` options:
18+
* `allowOriginPort` (default `false`): Allow any port number in the origin
19+
* `allowOriginSubdomain` (default `false`): Allow any subdomain of any origin
20+
listed in `RelyingParty.origins`
21+
* See JavaDoc for details and examples.
22+
* The new `AuthenticatorTransport` can now contain any string value as the
23+
transport identifier, as required in the editor's draft of the L2 spec. See:
24+
https://github.com/w3c/webauthn/pull/1275
25+
* Added support for RS1 credentials. Registration of RS1 credentials is not
26+
enabled by default, but can be enabled by setting
27+
`RelyingParty.preferredPubKeyCredParams` to a list containing
28+
`PublicKeyCredentialParameters.RS1`.
29+
* New constant `PublicKeyCredentialParameters.RS1`
30+
* New constant `COSEAlgorithmIdentifier.RS1`
31+
32+
33+
== Version 1.4.1 ==
34+
35+
Packaging fixes:
36+
37+
* Fixed dependency declarations so API dependencies are correctly propagated as
38+
compile-time dependencies of dependent projects.
39+
* Fixed Specification-Version release date in webauthn-server-core jar manifest.
40+
41+
142
== Version 1.4.0 ==
243

344
Changes:

README

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,15 +26,15 @@ Maven:
2626
<dependency>
2727
<groupId>com.yubico</groupId>
2828
<artifactId>webauthn-server-core</artifactId>
29-
<version>1.3.0</version>
29+
<version>1.5.0</version>
3030
<scope>compile</scope>
3131
</dependency>
3232
----------
3333

3434
Gradle:
3535

3636
----------
37-
compile 'com.yubico:webauthn-server-core:1.3.0'
37+
compile 'com.yubico:webauthn-server-core:1.5.0'
3838
----------
3939

4040

build.gradle

Lines changed: 49 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@ buildscript {
77
}
88
}
99
plugins {
10-
id 'com.github.kt3k.coveralls' version '2.8.2'
10+
id 'com.github.kt3k.coveralls' version '2.8.4'
1111
id 'io.codearte.nexus-staging' version '0.9.0'
12-
id 'io.franzbecker.gradle-lombok' version '1.14'
12+
id 'io.franzbecker.gradle-lombok' version '3.1.0'
1313
}
1414

1515
import io.franzbecker.gradle.lombok.LombokPlugin
@@ -34,20 +34,48 @@ wrapper {
3434
}
3535

3636
allprojects {
37+
ext.snapshotSuffix = "<count>.g<sha>-SNAPSHOT<dirty>"
38+
ext.dirtyMarker = "-DIRTY"
39+
3740
apply plugin: 'com.cinnober.gradle.semver-git'
3841
apply plugin: 'idea'
3942

4043
group = 'com.yubico'
4144

42-
ext.snapshotSuffix = "<count>.g<sha>-SNAPSHOT<dirty>"
43-
ext.dirtyMarker = "-DIRTY"
44-
4545
idea.module {
4646
downloadJavadoc = true
4747
downloadSources = true
4848
}
4949
}
5050

51+
Map<String, String> dependencyVersions = [
52+
'ch.qos.logback:logback-classic:1.2.3',
53+
'com.augustcellars.cose:cose-java:1.0.0',
54+
'com.fasterxml.jackson.core:jackson-databind:2.9.9.3',
55+
'com.fasterxml.jackson.dataformat:jackson-dataformat-cbor:2.9.9',
56+
'com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.9.9',
57+
'com.google.guava:guava:19.0',
58+
'com.upokecenter:cbor:4.0.1',
59+
'javax.activation:activation:1.1.1',
60+
'javax.ws.rs:javax.ws.rs-api:2.1',
61+
'javax.xml.bind:jaxb-api:2.3.0',
62+
'junit:junit:4.12',
63+
'org.apache.httpcomponents:httpclient:4.5.2',
64+
'org.bouncycastle:bcpkix-jdk15on:1.62',
65+
'org.bouncycastle:bcprov-jdk15on:1.62',
66+
'org.eclipse.jetty:jetty-server:9.4.9.v20180320',
67+
'org.eclipse.jetty:jetty-servlet:9.4.9.v20180320',
68+
'org.glassfish.jersey.containers:jersey-container-servlet-core:2.26',
69+
'org.glassfish.jersey.containers:jersey-container-servlet:2.26',
70+
'org.glassfish.jersey.inject:jersey-hk2:2.26',
71+
'org.mockito:mockito-core:2.27.0',
72+
'org.scala-lang:scala-library:2.12.8',
73+
'org.scalacheck:scalacheck_2.12:1.14.0',
74+
'org.scalatest:scalatest_2.12:3.0.4',
75+
'org.slf4j:slf4j-api:1.7.25',
76+
].collectEntries { [(it.split(':')[0..1].join(':')): it] }
77+
rootProject.ext.addVersion = { dep -> dependencyVersions[dep] }
78+
5179
subprojects {
5280
apply plugin: LombokPlugin
5381

@@ -63,7 +91,9 @@ subprojects {
6391
}
6492
}
6593

66-
evaluationDependsOnChildren()
94+
allprojects {
95+
evaluationDependsOnChildren()
96+
}
6797

6898
task assembleJavadoc(type: Sync) {
6999
from("docs/index.html") {
@@ -72,6 +102,15 @@ task assembleJavadoc(type: Sync) {
72102
destinationDir = file("${rootProject.buildDir}/javadoc")
73103
}
74104

105+
String getGitCommit() {
106+
def proc = "git rev-parse HEAD".execute(null, projectDir)
107+
proc.waitFor()
108+
if (proc.exitValue() != 0) {
109+
throw new RuntimeException("Failed to get git commit ID");
110+
}
111+
return proc.text.trim()
112+
}
113+
75114
subprojects { project ->
76115

77116
sourceCompatibility = 1.8
@@ -88,6 +127,10 @@ subprojects { project ->
88127
reproducibleFileOrder = true
89128
}
90129

130+
tasks.withType(Sign) {
131+
it.dependsOn check
132+
}
133+
91134
test {
92135
testLogging {
93136
showStandardStreams = isCiBuild

0 commit comments

Comments
 (0)