Browse Source

Introduce JwaAlgorithm

Closes gh-9182
pull/9192/head
Joe Grandja 5 years ago
parent
commit
0c25b8c1f9
  1. 41
      oauth2/oauth2-jose/src/main/java/org/springframework/security/oauth2/jose/JwaAlgorithm.java
  2. 9
      oauth2/oauth2-jose/src/main/java/org/springframework/security/oauth2/jose/jws/JwsAlgorithm.java

41
oauth2/oauth2-jose/src/main/java/org/springframework/security/oauth2/jose/JwaAlgorithm.java

@ -0,0 +1,41 @@
/*
* Copyright 2002-2020 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.springframework.security.oauth2.jose;
/**
* Super interface for cryptographic algorithms defined by the JSON Web Algorithms (JWA)
* specification and used by JSON Web Signature (JWS) to digitally sign or create a MAC of
* the contents and JSON Web Encryption (JWE) to encrypt the contents.
*
* @author Joe Grandja
* @since 5.5
* @see <a target="_blank" href="https://tools.ietf.org/html/rfc7518">JSON Web Algorithms
* (JWA)</a>
* @see <a target="_blank" href="https://tools.ietf.org/html/rfc7515">JSON Web Signature
* (JWS)</a>
* @see <a target="_blank" href="https://tools.ietf.org/html/rfc7516">JSON Web Encryption
* (JWE)</a>
*/
public interface JwaAlgorithm {
/**
* Returns the algorithm name.
* @return the algorithm name
*/
String getName();
}

9
oauth2/oauth2-jose/src/main/java/org/springframework/security/oauth2/jose/jws/JwsAlgorithm.java

@ -1,5 +1,5 @@
/* /*
* Copyright 2002-2019 the original author or authors. * Copyright 2002-2020 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -16,6 +16,8 @@
package org.springframework.security.oauth2.jose.jws; package org.springframework.security.oauth2.jose.jws;
import org.springframework.security.oauth2.jose.JwaAlgorithm;
/** /**
* Super interface for cryptographic algorithms defined by the JSON Web Algorithms (JWA) * Super interface for cryptographic algorithms defined by the JSON Web Algorithms (JWA)
* specification and used by JSON Web Signature (JWS) to digitally sign or create a MAC of * specification and used by JSON Web Signature (JWS) to digitally sign or create a MAC of
@ -23,6 +25,7 @@ package org.springframework.security.oauth2.jose.jws;
* *
* @author Joe Grandja * @author Joe Grandja
* @since 5.2 * @since 5.2
* @see JwaAlgorithm
* @see <a target="_blank" href="https://tools.ietf.org/html/rfc7518">JSON Web Algorithms * @see <a target="_blank" href="https://tools.ietf.org/html/rfc7518">JSON Web Algorithms
* (JWA)</a> * (JWA)</a>
* @see <a target="_blank" href="https://tools.ietf.org/html/rfc7515">JSON Web Signature * @see <a target="_blank" href="https://tools.ietf.org/html/rfc7515">JSON Web Signature
@ -31,8 +34,6 @@ package org.springframework.security.oauth2.jose.jws;
* "https://tools.ietf.org/html/rfc7518#section-3">Cryptographic Algorithms for Digital * "https://tools.ietf.org/html/rfc7518#section-3">Cryptographic Algorithms for Digital
* Signatures and MACs</a> * Signatures and MACs</a>
*/ */
public interface JwsAlgorithm { public interface JwsAlgorithm extends JwaAlgorithm {
String getName();
} }

Loading…
Cancel
Save