This is an automated email from the ASF dual-hosted git repository.
likeguo pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shenyu.git
The following commit(s) were added to refs/heads/master by this push:
new c1d85d0c8 eliminate generic warnings (#4175)
c1d85d0c8 is described below
commit c1d85d0c80223ec4436fe2afce273dbaafc54251
Author: 愿凌飞 <[email protected]>
AuthorDate: Sat Nov 12 14:13:15 2022 +0800
eliminate generic warnings (#4175)
* eliminate generic warnings
* Removed abstract,added the log of failures,added some doc
---
.../java/org/apache/shenyu/plugin/jwt/JwtPlugin.java | 1 -
.../shenyu/plugin/jwt/handle/JwtPluginDataHandler.java | 1 -
.../apache/shenyu/plugin/jwt/rule/JwtRuleHandle.java | 2 +-
.../plugin/jwt/strategy/DefaultJwtConvertStrategy.java | 18 ++++++++++++------
.../shenyu/plugin/jwt/strategy/JwtConvertStrategy.java | 15 ++++++++++-----
.../plugin/jwt/strategy/JwtConvertStrategyFactory.java | 1 -
.../plugin/jwt/strategy/CustomJwtConvertStrategy.java | 9 +++++----
7 files changed, 28 insertions(+), 19 deletions(-)
diff --git
a/shenyu-plugin/shenyu-plugin-jwt/src/main/java/org/apache/shenyu/plugin/jwt/JwtPlugin.java
b/shenyu-plugin/shenyu-plugin-jwt/src/main/java/org/apache/shenyu/plugin/jwt/JwtPlugin.java
index 8968bb3a3..10aa361d6 100644
---
a/shenyu-plugin/shenyu-plugin-jwt/src/main/java/org/apache/shenyu/plugin/jwt/JwtPlugin.java
+++
b/shenyu-plugin/shenyu-plugin-jwt/src/main/java/org/apache/shenyu/plugin/jwt/JwtPlugin.java
@@ -93,7 +93,6 @@ public class JwtPlugin extends AbstractShenyuPlugin {
return PluginEnum.JWT.getCode();
}
- @SuppressWarnings({"unchecked", "rawtypes"})
private ServerWebExchange executeRuleHandle(final RuleData ruleData, final
ServerWebExchange exchange, final Map<String, Object> jwtBody) {
JwtRuleHandle jwtRuleHandle =
JwtPluginDataHandler.CACHED_HANDLE.get().obtainHandle(CacheKeyUtils.INST.getKey(ruleData));
if (Objects.isNull(jwtRuleHandle)) {
diff --git
a/shenyu-plugin/shenyu-plugin-jwt/src/main/java/org/apache/shenyu/plugin/jwt/handle/JwtPluginDataHandler.java
b/shenyu-plugin/shenyu-plugin-jwt/src/main/java/org/apache/shenyu/plugin/jwt/handle/JwtPluginDataHandler.java
index 4536de053..47e96e7b0 100644
---
a/shenyu-plugin/shenyu-plugin-jwt/src/main/java/org/apache/shenyu/plugin/jwt/handle/JwtPluginDataHandler.java
+++
b/shenyu-plugin/shenyu-plugin-jwt/src/main/java/org/apache/shenyu/plugin/jwt/handle/JwtPluginDataHandler.java
@@ -50,7 +50,6 @@ public class JwtPluginDataHandler implements
PluginDataHandler {
Singleton.INST.single(JwtConfig.class, jwtConfig);
}
- @SuppressWarnings("rawtypes")
@Override
public void handlerRule(final RuleData ruleData) {
Optional.ofNullable(ruleData.getHandle()).ifPresent(ruleHandle -> {
diff --git
a/shenyu-plugin/shenyu-plugin-jwt/src/main/java/org/apache/shenyu/plugin/jwt/rule/JwtRuleHandle.java
b/shenyu-plugin/shenyu-plugin-jwt/src/main/java/org/apache/shenyu/plugin/jwt/rule/JwtRuleHandle.java
index 8dcb8bb2b..106c0ebba 100644
---
a/shenyu-plugin/shenyu-plugin-jwt/src/main/java/org/apache/shenyu/plugin/jwt/rule/JwtRuleHandle.java
+++
b/shenyu-plugin/shenyu-plugin-jwt/src/main/java/org/apache/shenyu/plugin/jwt/rule/JwtRuleHandle.java
@@ -21,6 +21,7 @@ import org.apache.shenyu.common.dto.convert.rule.RuleHandle;
import org.apache.shenyu.common.utils.GsonUtils;
import org.apache.shenyu.plugin.jwt.strategy.JwtConvertStrategy;
import org.apache.shenyu.plugin.jwt.strategy.JwtConvertStrategyFactory;
+
import java.io.Serializable;
import java.util.Map;
import java.util.Objects;
@@ -61,7 +62,6 @@ public class JwtRuleHandle implements RuleHandle,
Serializable {
* @param handleJson handleJson from rule
* @return jwtRuleHandle
*/
- @SuppressWarnings("rawtypes")
public static JwtRuleHandle newInstance(final String handleJson) {
if (Objects.isNull(handleJson)) {
return null;
diff --git
a/shenyu-plugin/shenyu-plugin-jwt/src/main/java/org/apache/shenyu/plugin/jwt/strategy/DefaultJwtConvertStrategy.java
b/shenyu-plugin/shenyu-plugin-jwt/src/main/java/org/apache/shenyu/plugin/jwt/strategy/DefaultJwtConvertStrategy.java
index 22fe03a01..3a3d5f5e9 100644
---
a/shenyu-plugin/shenyu-plugin-jwt/src/main/java/org/apache/shenyu/plugin/jwt/strategy/DefaultJwtConvertStrategy.java
+++
b/shenyu-plugin/shenyu-plugin-jwt/src/main/java/org/apache/shenyu/plugin/jwt/strategy/DefaultJwtConvertStrategy.java
@@ -21,7 +21,10 @@ import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.shenyu.common.utils.GsonUtils;
import org.apache.shenyu.plugin.jwt.rule.DefaultJwtRuleHandle;
+import org.apache.shenyu.plugin.jwt.rule.JwtRuleHandle;
import org.apache.shenyu.spi.Join;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.springframework.http.HttpHeaders;
import org.springframework.http.server.reactive.ServerHttpRequest;
import org.springframework.web.server.ServerWebExchange;
@@ -31,25 +34,28 @@ import java.util.Map;
import java.util.concurrent.atomic.AtomicInteger;
@Join
-public class DefaultJwtConvertStrategy implements
JwtConvertStrategy<DefaultJwtRuleHandle> {
+public class DefaultJwtConvertStrategy implements JwtConvertStrategy {
+
+ private static final Logger LOG =
LoggerFactory.getLogger(DefaultJwtConvertStrategy.class);
@Override
public DefaultJwtRuleHandle parseHandleJson(final String handleJson) {
try {
return GsonUtils.getInstance().fromJson(handleJson,
DefaultJwtRuleHandle.class);
- } catch (Exception ignore) {
- //ignore wrong json format or alert client
+ } catch (Exception exception) {
+ LOG.error("Failed to parse json , please check json format",
exception);
return null;
}
}
@Override
- public ServerWebExchange convert(final DefaultJwtRuleHandle jwtRuleHandle,
final ServerWebExchange exchange, final Map<String, Object> jwtBody) {
- if (CollectionUtils.isEmpty(jwtRuleHandle.getConverter())) {
+ public ServerWebExchange convert(final JwtRuleHandle jwtRuleHandle, final
ServerWebExchange exchange, final Map<String, Object> jwtBody) {
+ final DefaultJwtRuleHandle defaultJwtRuleHandle =
(DefaultJwtRuleHandle) jwtRuleHandle;
+ if (CollectionUtils.isEmpty(defaultJwtRuleHandle.getConverter())) {
return exchange;
}
- return convert(exchange, jwtBody, jwtRuleHandle.getConverter());
+ return convert(exchange, jwtBody, defaultJwtRuleHandle.getConverter());
}
/**
diff --git
a/shenyu-plugin/shenyu-plugin-jwt/src/main/java/org/apache/shenyu/plugin/jwt/strategy/JwtConvertStrategy.java
b/shenyu-plugin/shenyu-plugin-jwt/src/main/java/org/apache/shenyu/plugin/jwt/strategy/JwtConvertStrategy.java
index 6699bcbcb..d33712bd7 100644
---
a/shenyu-plugin/shenyu-plugin-jwt/src/main/java/org/apache/shenyu/plugin/jwt/strategy/JwtConvertStrategy.java
+++
b/shenyu-plugin/shenyu-plugin-jwt/src/main/java/org/apache/shenyu/plugin/jwt/strategy/JwtConvertStrategy.java
@@ -23,25 +23,30 @@ import org.springframework.web.server.ServerWebExchange;
import java.util.Map;
+/**
+ * Represents a conversion strategy that convert jwt to some attributes of
+ * serverWebExchange, especially attributes of the request header.
+ */
@SPI
-public interface JwtConvertStrategy<T extends JwtRuleHandle> {
+public interface JwtConvertStrategy {
/**
- * parse handleJson into jwtRuleHandle.
+ * HandleJson needs to be parsed into jwtRuleHandle in order to
+ * specify how to convert jwt.
*
* @param handleJson handleJson from rule
* @return jwtRuleHandle
*/
- T parseHandleJson(String handleJson);
+ JwtRuleHandle parseHandleJson(String handleJson);
/**
- * handle exchange by jwtRuleHandle and jwtBody.
+ * Converts jwt to some attributes of serverWebExchange based on
jwtRuleHandle.
*
* @param jwtRuleHandle jwtRuleHandle
* @param exchange exchange
* @param jwtBody jwtBody
* @return serverWebExchange
*/
- ServerWebExchange convert(T jwtRuleHandle, ServerWebExchange exchange,
Map<String, Object> jwtBody);
+ ServerWebExchange convert(JwtRuleHandle jwtRuleHandle, ServerWebExchange
exchange, Map<String, Object> jwtBody);
}
diff --git
a/shenyu-plugin/shenyu-plugin-jwt/src/main/java/org/apache/shenyu/plugin/jwt/strategy/JwtConvertStrategyFactory.java
b/shenyu-plugin/shenyu-plugin-jwt/src/main/java/org/apache/shenyu/plugin/jwt/strategy/JwtConvertStrategyFactory.java
index ecc33ae99..d523053ca 100644
---
a/shenyu-plugin/shenyu-plugin-jwt/src/main/java/org/apache/shenyu/plugin/jwt/strategy/JwtConvertStrategyFactory.java
+++
b/shenyu-plugin/shenyu-plugin-jwt/src/main/java/org/apache/shenyu/plugin/jwt/strategy/JwtConvertStrategyFactory.java
@@ -30,7 +30,6 @@ public class JwtConvertStrategyFactory {
* @param handleType handleType
* @return jwtConvertStrategy
*/
- @SuppressWarnings("rawtypes")
public static JwtConvertStrategy newInstance(final String handleType) {
String type = handleType;
if (StringUtils.isBlank(type)) {
diff --git
a/shenyu-plugin/shenyu-plugin-jwt/src/test/java/org/apache/shenyu/plugin/jwt/strategy/CustomJwtConvertStrategy.java
b/shenyu-plugin/shenyu-plugin-jwt/src/test/java/org/apache/shenyu/plugin/jwt/strategy/CustomJwtConvertStrategy.java
index 2f542319e..e0364953c 100644
---
a/shenyu-plugin/shenyu-plugin-jwt/src/test/java/org/apache/shenyu/plugin/jwt/strategy/CustomJwtConvertStrategy.java
+++
b/shenyu-plugin/shenyu-plugin-jwt/src/test/java/org/apache/shenyu/plugin/jwt/strategy/CustomJwtConvertStrategy.java
@@ -19,6 +19,7 @@ package org.apache.shenyu.plugin.jwt.strategy;
import org.apache.shenyu.common.utils.GsonUtils;
import org.apache.shenyu.plugin.jwt.rule.CustomJwtRuleHandle;
+import org.apache.shenyu.plugin.jwt.rule.JwtRuleHandle;
import org.apache.shenyu.spi.Join;
import org.springframework.http.server.reactive.ServerHttpRequest;
import org.springframework.web.server.ServerWebExchange;
@@ -26,7 +27,7 @@ import org.springframework.web.server.ServerWebExchange;
import java.util.Map;
@Join
-public class CustomJwtConvertStrategy implements
JwtConvertStrategy<CustomJwtRuleHandle> {
+public class CustomJwtConvertStrategy implements JwtConvertStrategy {
@Override
public CustomJwtRuleHandle parseHandleJson(final String handleJson) {
@@ -35,9 +36,9 @@ public class CustomJwtConvertStrategy implements
JwtConvertStrategy<CustomJwtRul
}
@Override
- public ServerWebExchange convert(final CustomJwtRuleHandle jwtRuleHandle,
final ServerWebExchange exchange, final Map<String, Object> jwtBody) {
-
- String customConvert = jwtRuleHandle.getCustomConvert();
+ public ServerWebExchange convert(final JwtRuleHandle jwtRuleHandle, final
ServerWebExchange exchange, final Map<String, Object> jwtBody) {
+ final CustomJwtRuleHandle customJwtRuleHandle = (CustomJwtRuleHandle)
jwtRuleHandle;
+ String customConvert = customJwtRuleHandle.getCustomConvert();
ServerHttpRequest modifiedRequest =
exchange.getRequest().mutate().header("custom",
customConvert).build();