Bläddra i källkod

Introduce JwaAlgorithm

Closes gh-9182
Joe Grandja 4 år sedan
förälder
incheckning
0c25b8c1f9

+ 41 - 0
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();
+
+}

+ 5 - 4
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");
  * you may not use this file except in compliance with the License.
@@ -16,6 +16,8 @@
 
 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)
  * 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
  * @since 5.2
+ * @see JwaAlgorithm
  * @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
@@ -31,8 +34,6 @@ package org.springframework.security.oauth2.jose.jws;
  * "https://tools.ietf.org/html/rfc7518#section-3">Cryptographic Algorithms for Digital
  * Signatures and MACs</a>
  */
-public interface JwsAlgorithm {
-
-	String getName();
+public interface JwsAlgorithm extends JwaAlgorithm {
 
 }