Skip to content

Commit

Permalink
Refactoring Fury Serialization Integration
Browse files Browse the repository at this point in the history
  • Loading branch information
liujianjun.ljj committed Jan 2, 2024
1 parent 03ee605 commit f2d8a83
Show file tree
Hide file tree
Showing 26 changed files with 402 additions and 880 deletions.
2 changes: 1 addition & 1 deletion bom/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -39,9 +39,9 @@
<jackson.databind.version>2.12.7.1</jackson.databind.version>
<msgpack.version>0.6.12</msgpack.version>
<protostuff.version>1.5.9</protostuff.version>
<fury.version>0.4.1</fury.version>
<grpc.version>1.53.0</grpc.version>

<fury.version>0.3.0</fury.version>
<!--common-->
<httpcore.version>4.4.13</httpcore.version>
<httpclient.version>4.5.13</httpclient.version>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.alipay.sofa.rpc.codec.sofahessian;
package com.alipay.sofa.rpc.codec.common;

import com.alipay.sofa.rpc.common.SofaConfigs;
import com.alipay.sofa.rpc.common.SofaOptions;
Expand All @@ -37,17 +37,20 @@
*
* @author <a href="mailto:[email protected]">GengZhang</a>
*/
public class BlackListFileLoader {
public class BlackAndWhiteListFileLoader {

private static final Logger LOGGER = LoggerFactory.getLogger(BlackListFileLoader.class);
private static final Logger LOGGER = LoggerFactory
.getLogger(BlackAndWhiteListFileLoader.class);

public static final List<String> SOFA_SERIALIZE_BLACK_LIST = loadFile("/sofa-rpc/serialize_blacklist.txt");
public static final List<String> SOFA_SERIALIZE_BLACK_LIST = loadBlackListFile("/sofa-rpc/serialize_blacklist.txt");

static List<String> loadFile(String path) {
List<String> blackPrefixList = new ArrayList<String>();
public static final List<String> SOFA_SERIALIZER_WHITE_LIST = loadWhiteListFile("/sofa-rpc/serialize_whitelist.txt");

public static List<String> loadBlackListFile(String path) {
List<String> blackPrefixList = new ArrayList<>();
InputStream input = null;
try {
input = BlackListFileLoader.class.getResourceAsStream(path);
input = BlackAndWhiteListFileLoader.class.getResourceAsStream(path);
if (input != null) {
readToList(input, "UTF-8", blackPrefixList);
}
Expand All @@ -68,6 +71,31 @@ static List<String> loadFile(String path) {
return blackPrefixList;
}

public static List<String> loadWhiteListFile(String path) {
List<String> whitePrefixList = new ArrayList<>();
InputStream input = null;
try {
input = BlackAndWhiteListFileLoader.class.getResourceAsStream(path);
if (input != null) {
readToList(input, "UTF-8", whitePrefixList);
}
String overStr = SofaConfigs.getStringValue(SofaOptions.CONFIG_SERIALIZE_WHITELIST_OVERRIDE, "");
if (StringUtils.isNotBlank(overStr)) {
if (LOGGER.isInfoEnabled()) {
LOGGER.info("Serialize whitelist will override with configuration: {}", overStr);
}
overrideWhiteList(whitePrefixList, overStr);
}
} catch (Exception e) {
if (LOGGER.isErrorEnabled()) {
LOGGER.error(e.getMessage(), e);
}
} finally {
closeQuietly(input);
}
return whitePrefixList;
}

/**
* 读文件,将结果丢入List
*
Expand Down Expand Up @@ -100,12 +128,12 @@ private static void readToList(InputStream input, String encoding, List<String>

/**
* Override blacklist with override string.
*
* @param originList Origin black list
*
* @param originList Origin black list
* @param overrideStr The override string
*/
static void overrideBlackList(List<String> originList, String overrideStr) {
List<String> adds = new LinkedList<String>();
public static void overrideBlackList(List<String> originList, String overrideStr) {
List<String> adds = new LinkedList<>();
String[] overrideItems = StringUtils.splitWithCommaOrSemicolon(overrideStr);
for (String overrideItem : overrideItems) {
if (StringUtils.isNotBlank(overrideItem)) {
Expand All @@ -127,4 +155,19 @@ static void overrideBlackList(List<String> originList, String overrideStr) {
originList.addAll(adds);
}
}

public static void overrideWhiteList(List<String> originList, String overrideStr) {
List<String> adds = new LinkedList<>();
String[] overrideItems = StringUtils.splitWithCommaOrSemicolon(overrideStr);
for (String overrideItem : overrideItems) {
if (StringUtils.isNotBlank(overrideItem)) {
if (!originList.contains(overrideItem)) {
adds.add(overrideItem);
}
}
}
if (adds.size() > 0) {
originList.addAll(adds);
}
}
}
5 changes: 0 additions & 5 deletions codec/codec-fury/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -32,11 +32,6 @@
<artifactId>fury-core</artifactId>
</dependency>

<dependency>
<groupId>org.yaml</groupId>
<artifactId>snakeyaml</artifactId>
</dependency>

<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -19,16 +19,17 @@
/**
* @author lipan
*/
public enum AccessConfig {
WHITELIST_CONFIG("whitelist"), BLACKLIST_CONFIG("blacklist"), NONE_CONFIG("none");
public enum FurySecurityMode {

private final String configType;
WHITELIST_MODE("whitelist"), BLACKLIST_MODE("blacklist"), NONE_MODE("none");

AccessConfig(String configType) {
this.configType = configType;
private final String securityMode;

FurySecurityMode(String securityMode) {
this.securityMode = securityMode;
}

public String getConfigType() {
return configType;
public String getSecurityMode() {
return securityMode;
}
}
Loading

0 comments on commit f2d8a83

Please sign in to comment.