All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
- Fixes #11 inject server info into swagger-codegen
- Change server name to L to optimize performance
- Fixes #27 Add rate limiting module
- Upgrade to Undertow 1.4.10
- Fixes #26 Update CORS handler to support method level control
- Fixes some google error-prone warnings
- Fixes #25 Add a system property in Server.java to redirect Undertow logs to slf4j
- Fixes #25 ExceptionHandler to dispatch in the beginning to by pass Connectors in Undertow
- Add Cluster module to work with Client module for service discovery and load balance
- Add Https support in server module.
- Update consul registry to make it simpler and streamline.
- Update cluster to work with registrator and docker
- Clean up maven dependencies
- Add service registry and discovery
- Add zookeeper support for resgistry and discovery
- Add consul support for registry and discovery
- Add direct registry for direct ip and port registry and discovery
- Add Cors handler to support OAuth2 login page from another domain
- Resolve Maven Eclipse errors
- Enhanced service module to support parameterized constructor
- Integrate server with registry
- Spin off swagger, security and validator handlers to light-java-rest
- Add error status for OAuth2 server
- Fix warnings reported from google error-prone
- Add error status for OAuth2 server
- Update JwtHelper to throw JoseException instead of Exception
- Add error status for OAuth2 server
- Add local first load balancer (Thanks @ddobrin)
- Remove duplicated plugin
- Update JwtHelper to support JWT token generation with parameters
- Add HashUtil for password used in OAuth2 server light-oauth2
- Add Status code for OAuth2 server
- Switcher is a module to control on/off of certain component during runtime
- Discovery is a module used by Client to discover services by names from Consul or ZooKeeper
- Registry is a module used by Server to register itself to Consul or ZooKeeper during server startup
- Update service module to support spaces in interface key part.
- Integrate Google Error-prone for static source code scan
- Fixed some many warnings from Intellij Idea Inspect
- Service config changed to JSON format so that properties can be injected
- Add support to one interface to map multiple implementations in singleton service factory
- Add support to multiple interfaces to map multiple implementations in singleton service factory
- Add a method to get framework version from /META-INFO/maven/com.networknt/info/pom.properties
- Add a missing handler error code in status.json
- Add MDC for correlation id in logging
- Add service module which is a singleton service factory
- Disable metrics by default in metrics module so that it won't try to report to influxdb
- Traceability handler to set traceabilityId to the response header from request header
- Correlation handler to generate correlationId if it doesn't exist in the request header
- Create dump handler but not implemented yet
- Update Client to support traceabilityId and correlationId propagation
- Refactor Audit to split full dump out.
- Refactor Audit handler to output into audit log
- Update Swagger Handler to add endpoint into the request header for audit log
- Update JwtVerifyHandler to put scope_client_id into the request header
- Upgrade to json-schema-form 0.1.3
- Fixes #2 exchange completed already issue.
- Sanitizer middleware to handle cross site scripting on header and body of request.
- Health endpoint to indicate if the server is alive by sending OK.
- Update body middleware so that it checks content type and parse the application/json to list or map.
- Update Validator middleware to handle body as object or string
- Move info to package info instead of audit
- Upgrade undertow to 1.4.4-Final to address patch issue.
- Update default server.json to bind to 0.0.0.0 instead of localhost for docker
- Add startup hook provider to allow API project to initialize resource, loading spring app context etc.
- Add shutdown hook provider to allow API project to release connection pools or other resources.
- Add Dockerfile to the root of generated API project.
- Rename project to light-java
- JsonPath configuration is done in a startup hook provider now.
- Add metrics with Influx DB and Grafana combination.
- Move swagger.json from swagger module resources to test resources so that petstore specification won't be included in API project by default.
- Security scope verification will check swagger object before enabling it.
- Validator test now has petstore swagger.json in test resources.
- Update docs
- Add new Status code into status.json for OAuth2 server
- Add docs folder for project documentation
- Fix a bug in client to prevent calling oauth2 server multiple times if in renew window.
- Add socket timeout for client
- update client.json in test resource to simulate different errors.
- Introduce MiddlewareHandler interface so that user can plug in more middleware or switch middleware
- Fixed info test case to clear the injected config
- All middleware handlers implement MiddlewareHandler interface so that they are loaded from SPI
- Middleware handlers will be enabled by checking isEnable()
- Update validator test case to remove oauth2 dependency
- Fix the NPE issue if swagger specification does not have security defined
- SwaggerHandler will only be enabled if swagger.json exists in config
- Fix the token helper to get token from OAuth2 server
- Add header parameter validation against swagger specification
- Refactor validator to fail fast while error occurs
- All validator returns Status object instead
- A body parser handler to parse body into String and attached to the exchange
- A swagger handler to identify operation based on request uri and method and attach to the exchange
- Move swagger related classes from utility to swagger module
- Update security module to leverage swagger handler attachment
- Update validator module to leverage swagger handler and body handler attachments
- Server Info handler is not injected in server but is included into swagger specification
- A generic exception handler for runtime exception, ApiException and uncaught exception
- Move checked exceptions to exception module from status
- Fix a NPE in request validator if query parameter is missing
- Do not validate query parameter if there is none.
- Handle the case that security definition is empty.
- Jwt token scope verification based on swagger spec in security
- Status module to standardize error response
- Config can be loaded from classpath directly so that test case can inject different combination of configs.
- Update the jwt.json and security.json to support multiple certificates and kid to pick up the right certificate for jwt verification. Also, expired token will throw ExpiredJwtException now.
- Move request uri matching and swagger.json to utility
- Move exceptions to status from utility
- Instead of using Jackson ObjectMapper to serialize Status object, using toString now. 10 times faster
- Audit
- Client
- Info
- Mask
- Validator
- Server
- Config
- Utility
- Security