Coder Social home page Coder Social logo

authlete / java-oauth-server Goto Github PK

View Code? Open in Web Editor NEW
266.0 19.0 84.0 610 KB

Authorization Server Implementation in Java supporting OAuth 2.0 & OpenID Connect

Home Page: https://www.authlete.com/

License: Apache License 2.0

Java 98.11% CSS 1.09% HTML 0.66% Dockerfile 0.06% Shell 0.08%
java oauth oauth2 oauth2-server oidc oidc-provider openid-connect reference-implementation

java-oauth-server's Issues

Incorrect 'aud' claim in access tokens

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 tried to import project in eclipse but i got following errors in ubuntu 16 ,it works fine for windows

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"]

VCI - Using unsupported cryptographic binding method `x5c`

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

command " mvn jetty:run & " is fine for windows but in ubuntu 16 it is not working.

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

Grant request instead of Implicit Flow + Walkthru

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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.