authlete / java-oauth-server Goto Github PK
View Code? Open in Web Editor NEWAuthorization Server Implementation in Java supporting OAuth 2.0 & OpenID Connect
Home Page: https://www.authlete.com/
License: Apache License 2.0
Authorization Server Implementation in Java supporting OAuth 2.0 & OpenID Connect
Home Page: https://www.authlete.com/
License: Apache License 2.0
The 'aud' claim in a access token is meant to refer to the resource server.
However, my access token always has client_id in the 'aud' claim .
Is there something wrong?
I saw there is a Deno implementation, but no nodejs SDK. I think nodejs community is much larger than deno and it is a major tech stack in the world
SEVERE: A child container failed during start
java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/java-oauth-server]]
at java.util.concurrent.FutureTask.report(FutureTask.java:122)
at java.util.concurrent.FutureTask.get(FutureTask.java:192)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:939)
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:872)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1419)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1409)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:748)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/java-oauth-server]]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167)
... 6 more
Caused by: org.apache.catalina.LifecycleException: Failed to start component [org.apache.catalina.webresources.StandardRoot@6e73e5f8]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167)
at org.apache.catalina.core.StandardContext.resourcesStart(StandardContext.java:4860)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4992)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
... 6 more
Caused by: org.apache.catalina.LifecycleException: Failed to initialize component [org.apache.catalina.webresources.JarResourceSet@2c1a00d0]
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:112)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:140)
at org.apache.catalina.webresources.StandardRoot.startInternal(StandardRoot.java:721)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
... 9 more
Caused by: java.lang.IllegalArgumentException: java.util.zip.ZipException: invalid CEN header (bad signature)
at org.apache.catalina.webresources.AbstractSingleArchiveResourceSet.initInternal(AbstractSingleArchiveResourceSet.java:113)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:107)
... 12 more
Caused by: java.util.zip.ZipException: invalid CEN header (bad signature)
at java.util.zip.ZipFile.open(Native Method)
at java.util.zip.ZipFile.(ZipFile.java:219)
at java.util.zip.ZipFile.(ZipFile.java:149)
at java.util.jar.JarFile.(JarFile.java:166)
at java.util.jar.JarFile.(JarFile.java:103)
at org.apache.catalina.webresources.AbstractSingleArchiveResourceSet.initInternal(AbstractSingleArchiveResourceSet.java:110)
... 13 more
Sep 04, 2017 9:53:59 AM org.apache.catalina.core.ContainerBase startInternal
SEVERE: A child container failed during start
java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost]]
at java.util.concurrent.FutureTask.report(FutureTask.java:122)
at java.util.concurrent.FutureTask.get(FutureTask.java:192)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:939)
at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.StandardService.startInternal(StandardService.java:422)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:793)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.startup.Catalina.start(Catalina.java:656)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:355)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:495)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost]]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1419)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1409)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:748)
Caused by: org.apache.catalina.LifecycleException: A child container failed during start
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:947)
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:872)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
... 6 more
Sep 04, 2017 9:53:59 AM org.apache.catalina.startup.Catalina start
SEVERE: The required Server component failed to start so Tomcat is unable to start.
org.apache.catalina.LifecycleException: Failed to start component [StandardServer[8005]]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167)
at org.apache.catalina.startup.Catalina.start(Catalina.java:656)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:355)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:495)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardService[Catalina]]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167)
at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:793)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
... 7 more
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina]]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167)
at org.apache.catalina.core.StandardService.startInternal(StandardService.java:422)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
... 9 more
Caused by: org.apache.catalina.LifecycleException: A child container failed during start
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:947)
at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
... 11 more
Sep 04, 2017 9:53:59 AM org.apache.coyote.AbstractProtocol pause
INFO: Pausing ProtocolHandler ["http-nio-8080"]
Sep 04, 2017 9:53:59 AM org.apache.coyote.AbstractProtocol pause
INFO: Pausing ProtocolHandler ["ajp-nio-8009"]
Sep 04, 2017 9:53:59 AM org.apache.catalina.core.StandardService stopInternal
INFO: Stopping service [Catalina]
Sep 04, 2017 9:53:59 AM org.apache.coyote.AbstractProtocol destroy
INFO: Destroying ProtocolHandler ["http-nio-8080"]
Sep 04, 2017 9:53:59 AM org.apache.coyote.AbstractProtocol destroy
INFO: Destroying ProtocolHandler ["ajp-nio-8009"]
Hello,
when I am reading the readme file, I figure out Authlete Web APIs link is returing
404
Page Not Found
Sorry, but the page you were trying to view does not exist.
Thanks
In the VCI issuer meta-data there is a credential_configuration_id
named IdentityCredential
which contains the following:
{
"cryptographic_binding_methods_supported": [
"jwk",
"x5c"
]
}
To my understanding draft 13 of VCI doesn't specify the value x5c
as an expected cryptographic_binding_methods_supported
.
Expected values are
jwk
cose_key
did
did:XYZ
sanghapal@nikhil:~/java-oauth-server$ [INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building java-oauth-server 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] >>> jetty-maven-plugin:9.3.7.v20160115:run (default-cli) > test-compile @ java-oauth-server >>>
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ java-oauth-server ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/sanghapal/java-oauth-server/src/main/resources
[INFO]
[INFO] --- maven-compiler-plugin:3.3:compile (default-compile) @ java-oauth-server ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 12 source files to /home/sanghapal/java-oauth-server/target/classes
[ERROR] error reading /home/sanghapal/.m2/repository/org/eclipse/persistence/org.eclipse.persistence.core/2.6.0/org.eclipse.persistence.core-2.6.0.jar; invalid CEN header (bad signature)
[ERROR] error reading /home/sanghapal/.m2/repository/org/eclipse/persistence/org.eclipse.persistence.asm/2.6.0/org.eclipse.persistence.asm-2.6.0.jar; invalid LOC header (bad signature)
[ERROR] error reading /home/sanghapal/.m2/repository/org/glassfish/jersey/ext/jersey-mvc-jsp/2.22.1/jersey-mvc-jsp-2.22.1.jar; invalid LOC header (bad signature)
[INFO]
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ java-oauth-server ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/sanghapal/java-oauth-server/src/test/resources
[INFO]
[INFO] --- maven-compiler-plugin:3.3:testCompile (default-testCompile) @ java-oauth-server ---
[INFO] No sources to compile
[INFO]
[INFO] <<< jetty-maven-plugin:9.3.7.v20160115:run (default-cli) < test-compile @ java-oauth-server <<<
[INFO]
[INFO] --- jetty-maven-plugin:9.3.7.v20160115:run (default-cli) @ java-oauth-server ---
[INFO] Logging initialized @6792ms
[INFO] Configuring Jetty for project: java-oauth-server
[INFO] webAppSourceDirectory not set. Trying src/main/webapp
[INFO] Reload Mechanic: automatic
[INFO] Classes = /home/sanghapal/java-oauth-server/target/classes
[INFO] Context path = /
[INFO] Tmp directory = /home/sanghapal/java-oauth-server/target/tmp
[INFO] Web defaults = org/eclipse/jetty/webapp/webdefault.xml
[INFO] Web overrides = none
[INFO] web.xml file = file:///home/sanghapal/java-oauth-server/src/main/webapp/WEB-INF/web.xml
[INFO] Webapp directory = /home/sanghapal/java-oauth-server/src/main/webapp
[INFO] jetty-9.3.7.v20160115
[INFO] Started ServerConnector@50101650{HTTP/1.1,[http/1.1]}{0.0.0.0:8080}
[INFO] Jetty server exiting.
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 5.937 s
[INFO] Finished at: 2017-09-04T10:50:37+05:30
[INFO] Final Memory: 25M/235M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.eclipse.jetty:jetty-maven-plugin:9.3.7.v20160115:run (default-cli) on project java-oauth-server: Execution default-cli of goal org.eclipse.jetty:jetty-maven-plugin:9.3.7.v20160115:run failed: A required class was missing while executing org.eclipse.jetty:jetty-maven-plugin:9.3.7.v20160115:run: org/eclipse/persistence/internal/queries/ContainerPolicy
[ERROR] -----------------------------------------------------
[ERROR] realm = plugin>org.eclipse.jetty:jetty-maven-plugin:9.3.7.v20160115
[ERROR] strategy = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy
[ERROR] urls[0] = file:/home/sanghapal/.m2/repository/org/eclipse/jetty/jetty-maven-plugin/9.3.7.v20160115/jetty-maven-plugin-9.3.7.v20160115.jar
[ERROR] urls[1] = file:/home/sanghapal/.m2/repository/org/sonatype/sisu/sisu-inject-bean/2.1.1/sisu-inject-bean-2.1.1.jar
[ERROR] urls[2] = file:/home/sanghapal/.m2/repository/org/sonatype/sisu/sisu-guice/2.9.4/sisu-guice-2.9.4-no_aop.jar
[ERROR] urls[3] = file:/home/sanghapal/.m2/repository/org/codehaus/plexus/plexus-utils/2.0.6/plexus-utils-2.0.6.jar
[ERROR] urls[4] = file:/home/sanghapal/.m2/repository/org/sonatype/aether/aether-util/1.11/aether-util-1.11.jar
[ERROR] urls[5] = file:/home/sanghapal/.m2/repository/org/codehaus/plexus/plexus-interpolation/1.14/plexus-interpolation-1.14.jar
[ERROR] urls[6] = file:/home/sanghapal/.m2/repository/org/codehaus/plexus/plexus-component-annotations/1.5.5/plexus-component-annotations-1.5.5.jar
[ERROR] urls[7] = file:/home/sanghapal/.m2/repository/org/sonatype/plexus/plexus-sec-dispatcher/1.3/plexus-sec-dispatcher-1.3.jar
[ERROR] urls[8] = file:/home/sanghapal/.m2/repository/org/sonatype/plexus/plexus-cipher/1.4/plexus-cipher-1.4.jar
[ERROR] urls[9] = file:/home/sanghapal/.m2/repository/org/apache/maven/plugin-tools/maven-plugin-tools-api/3.4/maven-plugin-tools-api-3.4.jar
[ERROR] urls[10] = file:/home/sanghapal/.m2/repository/backport-util-concurrent/backport-util-concurrent/3.1/backport-util-concurrent-3.1.jar
[ERROR] urls[11] = file:/home/sanghapal/.m2/repository/org/eclipse/jetty/jetty-util/9.3.7.v20160115/jetty-util-9.3.7.v20160115.jar
[ERROR] urls[12] = file:/home/sanghapal/.m2/repository/org/eclipse/jetty/jetty-webapp/9.3.7.v20160115/jetty-webapp-9.3.7.v20160115.jar
[ERROR] urls[13] = file:/home/sanghapal/.m2/repository/org/eclipse/jetty/jetty-xml/9.3.7.v20160115/jetty-xml-9.3.7.v20160115.jar
[ERROR] urls[14] = file:/home/sanghapal/.m2/repository/org/eclipse/jetty/jetty-servlet/9.3.7.v20160115/jetty-servlet-9.3.7.v20160115.jar
[ERROR] urls[15] = file:/home/sanghapal/.m2/repository/org/eclipse/jetty/jetty-quickstart/9.3.7.v20160115/jetty-quickstart-9.3.7.v20160115.jar
[ERROR] urls[16] = file:/home/sanghapal/.m2/repository/org/eclipse/jetty/jetty-jaas/9.3.7.v20160115/jetty-jaas-9.3.7.v20160115.jar
[ERROR] urls[17] = file:/home/sanghapal/.m2/repository/org/eclipse/jetty/jetty-security/9.3.7.v20160115/jetty-security-9.3.7.v20160115.jar
[ERROR] urls[18] = file:/home/sanghapal/.m2/repository/org/eclipse/jetty/jetty-plus/9.3.7.v20160115/jetty-plus-9.3.7.v20160115.jar
[ERROR] urls[19] = file:/home/sanghapal/.m2/repository/org/eclipse/jetty/jetty-jndi/9.3.7.v20160115/jetty-jndi-9.3.7.v20160115.jar
[ERROR] urls[20] = file:/home/sanghapal/.m2/repository/org/eclipse/jetty/jetty-server/9.3.7.v20160115/jetty-server-9.3.7.v20160115.jar
[ERROR] urls[21] = file:/home/sanghapal/.m2/repository/javax/servlet/javax.servlet-api/3.1.0/javax.servlet-api-3.1.0.jar
[ERROR] urls[22] = file:/home/sanghapal/.m2/repository/org/eclipse/jetty/jetty-http/9.3.7.v20160115/jetty-http-9.3.7.v20160115.jar
[ERROR] urls[23] = file:/home/sanghapal/.m2/repository/org/eclipse/jetty/jetty-io/9.3.7.v20160115/jetty-io-9.3.7.v20160115.jar
[ERROR] urls[24] = file:/home/sanghapal/.m2/repository/org/eclipse/jetty/jetty-jmx/9.3.7.v20160115/jetty-jmx-9.3.7.v20160115.jar
[ERROR] urls[25] = file:/home/sanghapal/.m2/repository/org/eclipse/jetty/jetty-annotations/9.3.7.v20160115/jetty-annotations-9.3.7.v20160115.jar
[ERROR] urls[26] = file:/home/sanghapal/.m2/repository/javax/annotation/javax.annotation-api/1.2/javax.annotation-api-1.2.jar
[ERROR] urls[27] = file:/home/sanghapal/.m2/repository/org/ow2/asm/asm/5.0.1/asm-5.0.1.jar
[ERROR] urls[28] = file:/home/sanghapal/.m2/repository/org/ow2/asm/asm-commons/5.0.1/asm-commons-5.0.1.jar
[ERROR] urls[29] = file:/home/sanghapal/.m2/repository/org/ow2/asm/asm-tree/5.0.1/asm-tree-5.0.1.jar
[ERROR] urls[30] = file:/home/sanghapal/.m2/repository/org/eclipse/jetty/websocket/javax-websocket-server-impl/9.3.7.v20160115/javax-websocket-server-impl-9.3.7.v20160115.jar
[ERROR] urls[31] = file:/home/sanghapal/.m2/repository/org/eclipse/jetty/websocket/javax-websocket-client-impl/9.3.7.v20160115/javax-websocket-client-impl-9.3.7.v20160115.jar
[ERROR] urls[32] = file:/home/sanghapal/.m2/repository/javax/websocket/javax.websocket-api/1.0/javax.websocket-api-1.0.jar
[ERROR] urls[33] = file:/home/sanghapal/.m2/repository/org/eclipse/jetty/websocket/websocket-server/9.3.7.v20160115/websocket-server-9.3.7.v20160115.jar
[ERROR] urls[34] = file:/home/sanghapal/.m2/repository/org/eclipse/jetty/websocket/websocket-common/9.3.7.v20160115/websocket-common-9.3.7.v20160115.jar
[ERROR] urls[35] = file:/home/sanghapal/.m2/repository/org/eclipse/jetty/websocket/websocket-api/9.3.7.v20160115/websocket-api-9.3.7.v20160115.jar
[ERROR] urls[36] = file:/home/sanghapal/.m2/repository/org/eclipse/jetty/websocket/websocket-client/9.3.7.v20160115/websocket-client-9.3.7.v20160115.jar
[ERROR] urls[37] = file:/home/sanghapal/.m2/repository/org/eclipse/jetty/websocket/websocket-servlet/9.3.7.v20160115/websocket-servlet-9.3.7.v20160115.jar
[ERROR] urls[38] = file:/home/sanghapal/.m2/repository/org/eclipse/jetty/apache-jsp/9.3.7.v20160115/apache-jsp-9.3.7.v20160115.jar
[ERROR] urls[39] = file:/home/sanghapal/.m2/repository/org/eclipse/jetty/toolchain/jetty-schemas/3.1/jetty-schemas-3.1.jar
[ERROR] urls[40] = file:/home/sanghapal/.m2/repository/org/mortbay/jasper/apache-jsp/8.0.27/apache-jsp-8.0.27.jar
[ERROR] urls[41] = file:/home/sanghapal/.m2/repository/org/mortbay/jasper/apache-el/8.0.27/apache-el-8.0.27.jar
[ERROR] urls[42] = file:/home/sanghapal/.m2/repository/org/eclipse/jdt/core/compiler/ecj/4.4.2/ecj-4.4.2.jar
[ERROR] urls[43] = file:/home/sanghapal/.m2/repository/org/eclipse/jetty/apache-jstl/9.3.7.v20160115/apache-jstl-9.3.7.v20160115.jar
[ERROR] urls[44] = file:/home/sanghapal/.m2/repository/org/apache/taglibs/taglibs-standard-spec/1.2.5/taglibs-standard-spec-1.2.5.jar
[ERROR] urls[45] = file:/home/sanghapal/.m2/repository/org/apache/taglibs/taglibs-standard-impl/1.2.5/taglibs-standard-impl-1.2.5.jar
[ERROR] urls[46] = file:/home/sanghapal/.m2/repository/javax/transaction/javax.transaction-api/1.2/javax.transaction-api-1.2.jar
[ERROR] Number of foreign imports: 1
[ERROR] import: Entry[import from realm ClassRealm[maven.api, parent: null]]
[ERROR]
[ERROR] -----------------------------------------------------: org.eclipse.persistence.internal.queries.ContainerPolicy
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginContainerException
I'm studying Oauth/OpenID Connect and available implementations, I have installed your AS/RS demo and I have understood that you implemented an 'implicit flow'. I have understood that the implicit flow generates only a short living token and does not assign to the client a long living grant.
Does your demo support the Grant+token interaction flow?.. and in case can you add to your demo a guide regarding this case (http requests and so on)?
I'm just learning at the moment, so, I hope to have understood the basics well.
Regards
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.