Skip to content

Commit c8d4178

Browse files
committed
Makes all classes referenced in PublicKeyCredentialCreationOptions serializable
1 parent f5d714a commit c8d4178

19 files changed

+109
-18
lines changed

web/src/main/java/org/springframework/security/web/webauthn/api/AttestationConveyancePreference.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616

1717
package org.springframework.security.web.webauthn.api;
1818

19+
import java.io.Serializable;
20+
1921
/**
2022
* <a href="https://www.w3.org/TR/webauthn-3/#webauthn-relying-party">WebAuthn Relying
2123
* Parties</a> may use <a href=
@@ -26,7 +28,7 @@
2628
* @author Rob Winch
2729
* @since 6.4
2830
*/
29-
public final class AttestationConveyancePreference {
31+
public final class AttestationConveyancePreference implements Serializable {
3032

3133
/**
3234
* The <a href=

web/src/main/java/org/springframework/security/web/webauthn/api/AuthenticationExtensionsClientInput.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616

1717
package org.springframework.security.web.webauthn.api;
1818

19+
import java.io.Serializable;
20+
1921
/**
2022
* A <a href="https://www.w3.org/TR/webauthn-3/#client-extension-input">client extension
2123
* input</a> entry in the {@link AuthenticationExtensionsClientInputs}.
@@ -25,7 +27,7 @@
2527
* @since 6.4
2628
* @see ImmutableAuthenticationExtensionsClientInput
2729
*/
28-
public interface AuthenticationExtensionsClientInput<T> {
30+
public interface AuthenticationExtensionsClientInput<T> extends Serializable {
2931

3032
/**
3133
* Gets the <a href="https://www.w3.org/TR/webauthn-3/#extension-identifier">extension

web/src/main/java/org/springframework/security/web/webauthn/api/AuthenticationExtensionsClientInputs.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616

1717
package org.springframework.security.web.webauthn.api;
1818

19+
import java.io.Serializable;
1920
import java.util.List;
2021

2122
/**
@@ -31,7 +32,7 @@
3132
* @since 6.4
3233
* @see PublicKeyCredentialCreationOptions#getExtensions()
3334
*/
34-
public interface AuthenticationExtensionsClientInputs {
35+
public interface AuthenticationExtensionsClientInputs extends Serializable {
3536

3637
/**
3738
* Gets all of the {@link AuthenticationExtensionsClientInput}.

web/src/main/java/org/springframework/security/web/webauthn/api/AuthenticatorSelectionCriteria.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,9 @@
1616

1717
package org.springframework.security.web.webauthn.api;
1818

19+
import java.io.Serial;
20+
import java.io.Serializable;
21+
1922
/**
2023
* <a href=
2124
* "https://www.w3.org/TR/webauthn-3/#dictdef-authenticatorselectioncriteria">AuthenticatorAttachment</a>
@@ -31,7 +34,10 @@
3134
* @since 6.4
3235
* @see PublicKeyCredentialCreationOptions#getAuthenticatorSelection()
3336
*/
34-
public final class AuthenticatorSelectionCriteria {
37+
public final class AuthenticatorSelectionCriteria implements Serializable {
38+
39+
@Serial
40+
private static final long serialVersionUID = 6295924992300524641L;
3541

3642
private final AuthenticatorAttachment authenticatorAttachment;
3743

web/src/main/java/org/springframework/security/web/webauthn/api/Bytes.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616

1717
package org.springframework.security.web.webauthn.api;
1818

19+
import java.io.Serial;
20+
import java.io.Serializable;
1921
import java.security.SecureRandom;
2022
import java.util.Arrays;
2123
import java.util.Base64;
@@ -28,7 +30,10 @@
2830
* @author Rob Winch
2931
* @since 6.4
3032
*/
31-
public final class Bytes {
33+
public final class Bytes implements Serializable {
34+
35+
@Serial
36+
private static final long serialVersionUID = -7420539646106189663L;
3237

3338
private static final SecureRandom RANDOM = new SecureRandom();
3439

web/src/main/java/org/springframework/security/web/webauthn/api/COSEAlgorithmIdentifier.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,9 @@
1616

1717
package org.springframework.security.web.webauthn.api;
1818

19+
import java.io.Serial;
20+
import java.io.Serializable;
21+
1922
/**
2023
* <a href=
2124
* "https://www.w3.org/TR/webauthn-3/#sctn-alg-identifier">COSEAlgorithmIdentifier</a> is
@@ -25,7 +28,10 @@
2528
* @since 6.4
2629
* @see PublicKeyCredentialParameters#getAlg()
2730
*/
28-
public final class COSEAlgorithmIdentifier {
31+
public final class COSEAlgorithmIdentifier implements Serializable {
32+
33+
@Serial
34+
private static final long serialVersionUID = -7174114312834239069L;
2935

3036
public static final COSEAlgorithmIdentifier EdDSA = new COSEAlgorithmIdentifier(-8);
3137

web/src/main/java/org/springframework/security/web/webauthn/api/CredProtectAuthenticationExtensionsClientInput.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,9 @@
1616

1717
package org.springframework.security.web.webauthn.api;
1818

19+
import java.io.Serial;
20+
import java.io.Serializable;
21+
1922
/**
2023
* Implements <a href=
2124
* "https://fidoalliance.org/specs/fido-v2.2-rd-20230321/fido-client-to-authenticator-protocol-v2.2-rd-20230321.html#sctn-credProtect-extension">
@@ -25,7 +28,10 @@
2528
* @since 6.4
2629
*/
2730
public class CredProtectAuthenticationExtensionsClientInput
28-
implements AuthenticationExtensionsClientInput<CredProtectAuthenticationExtensionsClientInput.CredProtect> {
31+
implements AuthenticationExtensionsClientInput<CredProtectAuthenticationExtensionsClientInput.CredProtect>, Serializable {
32+
33+
@Serial
34+
private static final long serialVersionUID = 1594370832009118794L;
2935

3036
private final CredProtect input;
3137

web/src/main/java/org/springframework/security/web/webauthn/api/ImmutableAuthenticationExtensionsClientInput.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,9 @@
1616

1717
package org.springframework.security.web.webauthn.api;
1818

19+
import java.io.Serial;
20+
import java.io.Serializable;
21+
1922
/**
2023
* An immutable {@link AuthenticationExtensionsClientInput}.
2124
*
@@ -24,7 +27,10 @@
2427
* @since 6.4
2528
* @see AuthenticationExtensionsClientInputs
2629
*/
27-
public class ImmutableAuthenticationExtensionsClientInput<T> implements AuthenticationExtensionsClientInput<T> {
30+
public class ImmutableAuthenticationExtensionsClientInput<T> implements AuthenticationExtensionsClientInput<T>, Serializable {
31+
32+
@Serial
33+
private static final long serialVersionUID = -4728475902609231330L;
2834

2935
/**
3036
* https://www.w3.org/TR/webauthn-3/#sctn-authenticator-credential-properties-extension

web/src/main/java/org/springframework/security/web/webauthn/api/ImmutableAuthenticationExtensionsClientInputs.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616

1717
package org.springframework.security.web.webauthn.api;
1818

19+
import java.io.Serial;
20+
import java.io.Serializable;
1921
import java.util.Arrays;
2022
import java.util.List;
2123

@@ -25,7 +27,10 @@
2527
* @author Rob Winch
2628
* @since 6.4
2729
*/
28-
public class ImmutableAuthenticationExtensionsClientInputs implements AuthenticationExtensionsClientInputs {
30+
public class ImmutableAuthenticationExtensionsClientInputs implements AuthenticationExtensionsClientInputs, Serializable {
31+
32+
@Serial
33+
private static final long serialVersionUID = -4836558379344450438L;
2934

3035
private final List<AuthenticationExtensionsClientInput> inputs;
3136

web/src/main/java/org/springframework/security/web/webauthn/api/ImmutablePublicKeyCredentialUserEntity.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,9 @@
1616

1717
package org.springframework.security.web.webauthn.api;
1818

19+
import java.io.Serial;
20+
import java.io.Serializable;
21+
1922
/**
2023
* <a href=
2124
* "https://www.w3.org/TR/webauthn-3/#dictdef-publickeycredentialuserentity">PublicKeyCredentialUserEntity</a>
@@ -26,7 +29,10 @@
2629
* @author Rob Winch
2730
* @since 6.4
2831
*/
29-
public final class ImmutablePublicKeyCredentialUserEntity implements PublicKeyCredentialUserEntity {
32+
public final class ImmutablePublicKeyCredentialUserEntity implements PublicKeyCredentialUserEntity, Serializable {
33+
34+
@Serial
35+
private static final long serialVersionUID = -3487418268223398299L;
3036

3137
/**
3238
* When inherited by PublicKeyCredentialUserEntity, it is a human-palatable identifier

0 commit comments

Comments
 (0)