Skip to content

Commit 54a4dc3

Browse files
committed
Release 0.18.1
- Lombok no longer leaks into runtime dependencies
2 parents 056c658 + c2d82a6 commit 54a4dc3

File tree

9 files changed

+152
-81
lines changed

9 files changed

+152
-81
lines changed

NEWS

Lines changed: 69 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -1,52 +1,69 @@
1-
* Release 0.18.0
2-
* u2flib-server-core:
3-
* Breaking changes:
4-
* "Authenticate" renamed to "sign" everywhere in `u2flib-server-core`
5-
* Classes `AuthenticateRequest` renamed to `SignRequest`
6-
* Class `AuthenticateRequestData` renamed to `SignRequestData`
7-
* Class `AuthenticateResponse` renamed to `SignResponse`
8-
* Method `Client.authenticate` renamed to `sign`
9-
* Class `RawAuthenticateResponse` renamed to `RawSignResponse`
10-
* Method `SoftKey.authenticate` renamed to `sign`
11-
* Method `U2F.finishAuthentication` renamed to `finishSignature`
12-
* Method `U2F.startAuthentication` renamed to `startSignature`
13-
* Method `U2fPrimitives.finishAuthentication` renamed to
14-
`finishSignature`
15-
* Method `U2fPrimitives.startAuthenticateion` renamed to
16-
`startSignature`
17-
* Constants `AUTHENTICATE_TYP` and `REGISTER_TYPE` in `U2fPrimitives`
18-
are now private
19-
20-
* Version 0.17.1
21-
* u2flib-server-attestation module now uses SLF4J logging instead of
22-
`Throwable.printStackTrace`
23-
24-
* Version 0.17.0
25-
* u2flib-server-core:
26-
* Breaking changes:
27-
* Field
28-
`RegisterRequestData.authenticateRequests: List<AuthenticateRequest>`
29-
replaced by field `registeredKeys: List<RegisteredKey>`
30-
* Additions:
31-
* Fields added to class `AuthenticateRequestData`:
32-
* `challenge: String`
33-
* `appId: String`
34-
* New class `RegisteredKey`
35-
* Field `appId: String` added to `RegisterRequestData`
36-
37-
* u2flib-server-demo:
38-
* `u2f-api.js` upgraded from version 1.0 to 1.1
39-
* JS calls in views updated to work with version 1.1 of the JS API
40-
* All views except `loginIndex` and `registerIndex` are now rendered via
41-
templates
42-
* Navigation links added to all views
43-
* Error feedback improved
44-
45-
* Version 0.13.1 (unreleased)
46-
** Changed demo server URL to `localhost:8080`.
47-
** Added the method `ClientData.getString` to get arbitrary clientData fields.
48-
** Added u2flib-server-attestation for device attestation and metadata.
49-
50-
* Version 0.13.0
51-
** Added built-in support for multiple devices per user.
52-
** Fixed demo server bug when running from jar. Thanks to axianx.
1+
== Version 0.18.1 ==
2+
3+
* Lombok now longer leaks into runtime dependencies
4+
5+
6+
== Version 0.18.0 ==
7+
8+
=== u2flib-server-core ===
9+
10+
Breaking changes:
11+
12+
* "Authenticate" renamed to "sign" everywhere in `u2flib-server-core`
13+
** Classes `AuthenticateRequest` renamed to `SignRequest`
14+
** Class `AuthenticateRequestData` renamed to `SignRequestData`
15+
** Class `AuthenticateResponse` renamed to `SignResponse`
16+
** Method `Client.authenticate` renamed to `sign`
17+
** Class `RawAuthenticateResponse` renamed to `RawSignResponse`
18+
** Method `SoftKey.authenticate` renamed to `sign`
19+
** Method `U2F.finishAuthentication` renamed to `finishSignature`
20+
** Method `U2F.startAuthentication` renamed to `startSignature`
21+
** Method `U2fPrimitives.finishAuthentication` renamed to `finishSignature`
22+
** Method `U2fPrimitives.startAuthenticateion` renamed to `startSignature`
23+
* Constants `AUTHENTICATE_TYP` and `REGISTER_TYPE` in `U2fPrimitives` are
24+
now private
25+
26+
== Version 0.17.1 ==
27+
28+
* u2flib-server-attestation module now uses SLF4J logging instead of
29+
`Throwable.printStackTrace`
30+
31+
32+
== Version 0.17.0 ==
33+
34+
=== u2flib-server-core ===
35+
36+
Breaking changes:
37+
38+
* Field `RegisterRequestData.authenticateRequests: List<AuthenticateRequest>`
39+
replaced by field `registeredKeys: List<RegisteredKey>`
40+
41+
Additions:
42+
43+
* Fields added to class `AuthenticateRequestData`:
44+
* `challenge: String`
45+
* `appId: String`
46+
* New class `RegisteredKey`
47+
* Field `appId: String` added to `RegisterRequestData`
48+
49+
=== u2flib-server-demo ===
50+
51+
* `u2f-api.js` upgraded from version 1.0 to 1.1
52+
* JS calls in views updated to work with version 1.1 of the JS API
53+
* All views except `loginIndex` and `registerIndex` are now rendered via
54+
templates
55+
* Navigation links added to all views
56+
* Error feedback improved
57+
58+
59+
== Version 0.13.1 (unreleased) ==
60+
61+
* Changed demo server URL to `localhost:8080`.
62+
* Added the method `ClientData.getString` to get arbitrary clientData fields.
63+
* Added u2flib-server-attestation for device attestation and metadata.
64+
65+
66+
== Version 0.13.0 ==
67+
68+
* Added built-in support for multiple devices per user.
69+
* Fixed demo server bug when running from jar. Thanks to axianx.

README

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,21 +4,33 @@ image:https://travis-ci.org/Yubico/java-u2flib-server.svg?branch=master["Build S
44
image:https://coveralls.io/repos/github/Yubico/java-u2flib-server/badge.svg["Coverage Status", link="https://coveralls.io/github/Yubico/java-u2flib-server"]
55

66
Server-side https://developers.yubico.com/U2F[U2F] library for Java. Provides functionality for registering
7-
U2F devices and authenticate with said devices.
7+
U2F devices and authenticating with said devices.
88

99
=== Dependency
10+
11+
Maven:
1012
[source, xml]
1113
<dependency>
1214
<groupId>com.yubico</groupId>
1315
<artifactId>u2flib-server-core</artifactId>
14-
<version>0.16.0</version>
16+
<version>0.18.1</version>
1517
</dependency>
1618

19+
Gradle:
20+
[source, groovy]
21+
repositories{ mavenCentral() }
22+
dependencies {
23+
compile 'com.yubico:u2flib-server-core:0.18.1'
24+
}
25+
1726
=== Example Usage
1827
NOTE: Make sure that you have read https://developers.yubico.com/U2F/Libraries/Using_a_library.html[Using a U2F library] before continuing.
1928

2029
[source, java]
2130
----
31+
32+
private abstract Iterable<DeviceRegistration> getRegistrations(String username);
33+
2234
@GET
2335
public View startAuthentication(String username) throws NoEligibleDevicesException {
2436

@@ -50,7 +62,7 @@ public String finishAuthentication(SignResponse response, String username) throw
5062
}
5163
----
5264

53-
In the above example `getRegistrations()` returns the U2F devices currently associated with a given user.
65+
In the above example `getRegistrations()` will return the U2F devices currently associated with a given user.
5466
This is most likely stored in a database.
5567
See link:u2flib-server-demo[`u2flib-server-demo`] for a complete demo server (including registration and storage of U2F devices).
5668

@@ -62,5 +74,5 @@ JavaDoc can be found at https://developers.yubico.com/java-u2flib-server[develop
6274
The attestation module (`u2flib-server-attestation`) enables you to restrict registrations to certain U2F devices (e.g. devices made by a specific vendor). It can also provide metadata for devices.
6375

6476
=== Serialization
65-
All relevant classes implements `Serializable`, so instead of using `toJson()`, you can use Java's built in serialization mechanism.
77+
All relevant classes implement `Serializable`, so instead of using `toJson()`, you can use Java's built in serialization mechanism.
6678
Internally the classes use Jackson to serialize to and from JSON, and the ObjectMapper from Jackson can be used.

build.gradle

Lines changed: 39 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,14 +33,15 @@ allprojects {
3333
signing {
3434
sign configurations.archives
3535
}
36+
signArchives.dependsOn check
3637
}
3738

3839
task wrapper(type: Wrapper) {
3940
gradleVersion = '4.1'
4041
}
4142

4243
group = 'com.yubico'
43-
version = '0.18.0'
44+
version = '0.18.1'
4445

4546
sourceCompatibility = 1.6
4647
targetCompatibility = 1.6
@@ -56,6 +57,8 @@ allprojects {
5657
}
5758
}
5859

60+
evaluationDependsOnChildren()
61+
5962
subprojects {
6063
task packageSources(type: Jar) {
6164
classifier = 'sources'
@@ -72,8 +75,9 @@ subprojects {
7275

7376
dependencies {
7477

78+
compileOnly 'org.projectlombok:lombok:1.16.18'
79+
7580
compile(
76-
[group: 'org.projectlombok', name: 'lombok', version:'1.16.18'],
7781
'org.slf4j:slf4j-api:1.7.25',
7882
)
7983

@@ -101,6 +105,39 @@ subprojects {
101105
snapshotRepository(url: 'https://oss.sonatype.org/content/repositories/snapshots/') {
102106
authentication(userName: ossrhUsername, password: ossrhPassword)
103107
}
108+
109+
pom.project {
110+
name project.description
111+
description 'Java server-side library for U2F'
112+
url 'https://developers.yubico.com/'
113+
114+
developers {
115+
developer {
116+
id 'dain'
117+
name 'Dain Nilsson'
118+
119+
}
120+
developer {
121+
id 'emil'
122+
name 'Emil Lundberg'
123+
124+
}
125+
}
126+
127+
licenses {
128+
license {
129+
name 'BSD-license'
130+
comments 'Revised 2-clause BSD license'
131+
}
132+
}
133+
134+
scm {
135+
url 'scm:git:git://github.com/Yubico/java-u2flib-server.git'
136+
connection 'scm:git:git://github.com/Yubico/java-u2flib-server.git'
137+
developerConnection 'scm:git:ssh://[email protected]/Yubico/java-u2flib-server.git'
138+
tag 'HEAD'
139+
}
140+
}
104141
}
105142
}
106143
}

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<groupId>com.yubico</groupId>
55
<artifactId>u2flib-server-parent</artifactId>
66
<packaging>pom</packaging>
7-
<version>0.18.0</version>
7+
<version>0.8.1</version>
88
<name>U2F parent</name>
99
<description>Java server-side library for U2F</description>
1010
<properties>

u2flib-server-attestation/README.adoc

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,31 @@
11
== Device attestation module
2-
Module for verifying attestation certificates and provide additional device metadata.
2+
Module for verifying attestation certificates and providing additional device metadata.
33

44
This is useful if you want to:
55

6-
- Restrict which type of devices that can be registered with your server.
6+
- Restrict which types of devices that can be registered with your server
77
- Give users rich data about their registered devices, such as:
8-
* The vendor and model name.
9-
* Display an image of the device model.
8+
* The vendor and model name
9+
* An image of the device model
1010

1111

1212
=== Dependency
13+
14+
Maven:
1315
[source, xml]
1416
<dependency>
1517
<groupId>com.yubico</groupId>
1618
<artifactId>u2flib-server-attestation</artifactId>
17-
<version>0.16.0</version>
19+
<version>0.18.1</version>
1820
</dependency>
1921

22+
Gradle:
23+
[source, groovy]
24+
repositories{ mavenCentral() }
25+
dependencies {
26+
compile 'com.yubico:u2flib-server-attestation:0.18.1'
27+
}
28+
2029

2130
=== Usage
2231
The Attestation class lets you know if the attestation certificate from the registration is trusted, and provides you with metadata about the vendor as well as the device itself.

u2flib-server-attestation/pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<parent>
44
<artifactId>u2flib-server-parent</artifactId>
55
<groupId>com.yubico</groupId>
6-
<version>0.18.0</version>
6+
<version>0.8.1</version>
77
</parent>
88
<modelVersion>4.0.0</modelVersion>
99

@@ -14,7 +14,7 @@
1414
<dependency>
1515
<groupId>com.yubico</groupId>
1616
<artifactId>u2flib-server-core</artifactId>
17-
<version>0.18.0</version>
17+
<version>0.8.1</version>
1818
</dependency>
1919
</dependencies>
2020

u2flib-server-core/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<parent>
44
<artifactId>u2flib-server-parent</artifactId>
55
<groupId>com.yubico</groupId>
6-
<version>0.18.0</version>
6+
<version>0.8.1</version>
77
</parent>
88
<modelVersion>4.0.0</modelVersion>
99

u2flib-server-demo/README

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6,20 +6,16 @@ class.
66
=== 1. Clone
77
git clone https://github.com/Yubico/java-u2flib-server.git
88

9-
=== 2. Compile
10-
Go to the demo server directory:
11-
12-
cd java-u2flib-server/u2flib-server-demo
9+
=== 2. Run
10+
./gradlew run
1311

14-
Compile using `mvn clean install` and then run using
15-
`java -jar target/u2flib-server-demo.jar server config.yml`.
16-
17-
=== 3. Run
18-
Then point a U2F-compatible web browser (e.g. Chrome) to
19-
link:https://localhost:8443/assets/registerIndex.html[https://localhost:8443/assets/registerIndex.html].
12+
=== 3. Try it out
13+
Then point a
14+
https://www.yubico.com/support/knowledge-base/categories/articles/browsers-support-u2f/[U2F compatible web browser]
15+
to link:https://localhost:8443/assets/registerIndex.html[https://localhost:8443/assets/registerIndex.html].
2016

2117
NOTE: Since U2F requires a HTTPS connection, this demo server uses a dummy certificate.
22-
This will cause Chrome to show a warning, which it is safe to bypass.
18+
This will cause your browser to show a warning, which it is safe to bypass.
2319

2420
=== Troubleshooting
2521
[qanda]

u2flib-server-demo/pom.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<parent>
66
<artifactId>u2flib-server-parent</artifactId>
77
<groupId>com.yubico</groupId>
8-
<version>0.18.0</version>
8+
<version>0.8.1</version>
99
</parent>
1010
<artifactId>u2flib-server-demo</artifactId>
1111
<name>U2F demo</name>
@@ -14,12 +14,12 @@
1414
<dependency>
1515
<groupId>com.yubico</groupId>
1616
<artifactId>u2flib-server-core</artifactId>
17-
<version>0.18.0</version>
17+
<version>0.8.1</version>
1818
</dependency>
1919
<dependency>
2020
<groupId>com.yubico</groupId>
2121
<artifactId>u2flib-server-attestation</artifactId>
22-
<version>0.18.0</version>
22+
<version>0.8.1</version>
2323
</dependency>
2424
<dependency>
2525
<groupId>io.dropwizard</groupId>

0 commit comments

Comments
 (0)