Shaojin Wen ad353ff71e fix: strengthen autoType type name validation and whitelist verification
Backport of fastjson2 #7703 to 1.2.83:

- Reject type names containing URL-special characters (: and !) in
  ParserConfig.checkAutoType and TypeUtils.loadClass, so a non-class-name
  string (e.g. a jar: URL) never reaches the class loader.
- Verify the accept name text after a whitelist hash match: maintain a
  parallel acceptNameSet alongside acceptHashCodes so a hash collision
  alone cannot whitelist a type name. Accept names are hashed with $
  normalized to ., matching the rolling hash in checkAutoType.
- An accept prefix no longer covers ClassLoader/DataSource/RowSet gadget
  base types; only an accept entry naming the type in full is an explicit
  opt-in. Prefix matches are loaded without populating the class mapping
  cache, otherwise the denied class would be served from the cache later
  in the same call.
- Never cache in the final loadClass of checkAutoType: previously a deny
  class rejected by the blacklist was still cached, so a second
  checkAutoType call for the same name returned it without any blacklist
  check. The accepted paths already call TypeUtils.addMapping explicitly.
2026-07-29 15:02:55 +08:00
2020-02-07 15:56:17 +00:00
2020-08-21 07:22:55 +03:00
2019-10-01 05:51:29 -04:00
2013-07-09 18:49:41 +08:00
2022-05-23 08:55:52 +08:00
2021-08-29 14:05:47 +08:00
2019-09-16 10:23:48 +08:00
2018-10-22 20:53:12 -06:00
2013-02-27 17:11:16 +08:00

fastjson

Java CI Codecov Maven Central GitHub release License Gitpod Ready-to-Code Fuzzing Status

QualityGate

Fastjson is a Java library that can be used to convert Java Objects into their JSON representation. It can also be used to convert a JSON string to an equivalent Java object. Fastjson can work with arbitrary Java objects including pre-existing objects that you do not have source-code of.

Fastjson Goals

  • Provide the best performance on the server-side and android client
  • Provide simple toJSONString() and parseObject() methods to convert Java objects to JSON and vice-versa
  • Allow pre-existing unmodifiable objects to be converted to and from JSON
  • Extensive support of Java Generics
  • Allow custom representations for objects
  • Support arbitrarily complex objects (with deep inheritance hierarchies and extensive use of generic types)

fastjson

Documentation

Benchmark

https://github.com/eishay/jvm-serializers/wiki

Download

Maven

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.76</version>
</dependency>
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.1.72.android</version>
</dependency>

Gradle via JCenter

compile 'com.alibaba:fastjson:1.2.76'
compile 'com.alibaba:fastjson:1.1.72.android'

Please see this Wiki Download Page for more repository info.

License

Fastjson is released under the Apache 2.0 license.

Copyright 1999-2020 Alibaba Group Holding Ltd.

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 the following link.

     http://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.
S
Description
FASTJSON 2.0.x has been released, faster and more secure, recommend you upgrade.
Readme
28 MiB
Languages
Java 99.9%