You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* always keep default pipeline
* added a simple caller address filter
* caller Black/white list reset on reload
* reset config on reload
* fix cfgdemo issue
* call addr filter supports regex
* call addr filter supports regex precheck
* gRPC server supports caller addr filter with regex precheck
* gRPC refactoring
* gRPC refactoring
* gRPC refactoring
* gRPC refactoring
* gRPC refactoring
* gRPC refactoring
* Netty 4.2 Migration
* enable ssl.Provider option in gRPC client config in case the default option (OPENSSL) is not available
* refactoring
* enhanced RAS encryption/decryption for config file, etc.
* enhanced security
* enhanced security
* enhanced security
* enhanced security
* enhanced security
* updated README
* refactor RTO error code
* refactor RTO error code
* default master password is no longer hardcoded, it will be loaded from etc/master.password file (auto create if no exists) when -authfile <path to master.password> is not provided to launch the app; added @UniqueIgnore to mute @unique check alert for expected duplicated values
* default master password is no longer hardcoded, it will be loaded from etc/master.password file (auto create if no exists) when -authfile <path to master.password> is not provided to launch the app; added @UniqueIgnore to mute @unique check alert for expected duplicated values
* refactoring
* refactoring
* refactoring
* refactoring
* make BootErrorCode not hardcoded
* refactoring
* refactoring
* added @Log.hideJsonFields
* added @Log.hideJsonFields
* refactoring: @Log.protectDataFieldsFromLogging and its FormatterUtil.replaceDataField to protect JSON, XML, Form data
* refactoring: @Log.protectDataFieldsFromLogging and its FormatterUtil.replaceDataField to protect JSON, XML, Form data
* wip
* refactoring API rename: org.summerboot.jexpress.nio.server.domain.ServiceContext renamed to org.summerboot.jexpress.nio.server.SessionContext
* update README.md
* API rename: @ImportResource.checkImplTagUsed and loadWhenImplTagUsed
* API rename: @ImportResource.checkImplTagUsed and loadWhenImplTagUsed
* Config removed: etc/boot.ini/default.interval.ConfigChangeMonitor;Config add: etc/boot.ini/default.ConfigChangeMonitor.Throttle.Milliseconds
* Config add: cfg_nio.properties/nio.WebSocket.Compress.maxAllocation
* refactoring DB config: use jakarta to replace hibernate
* Config new in cfg_nio.properties: ping.sync.HealthStatus, ping.sync.PauseStatus and ping.sync.showRootCause
* protect header
* protect header
* added sample service file for production Java 21 + Netty 4.2.x + ZGC + OpenSSL on Linux
* added sample service file for production Java 21 + Netty 4.2.x + ZGC + OpenSSL on Linux
* wip
* refactoring
* refactoring
* API new: added @Inspector.name and @Deamon.requiredHealthChecks (value is array of @Inspector.name), this is to set Controller and/or its methods on deamon mode (accessable when pause/health failed but not for specified @Inspector.name
* API new: added @Inspector.name and @Deamon.requiredHealthChecks (array of @Inspector.names, empty/null means ignore all HealthChecks); Config new: cfg_nio.properties.ping.sync.HealthStatus.requiredHealthChecks (@Inspector.names in CSV format, empty/null means require ALL HealthChecks)
* API new: added @Inspector.name and @Deamon.requiredHealthChecks (array of @Inspector.names, empty/null means ignore all HealthChecks); Config new: cfg_nio.properties.ping.sync.HealthStatus.requiredHealthChecks (@Inspector.names in CSV format, empty/null means require ALL HealthChecks)
* replace space with _ in log file name
* refactoring
* update dependencies
* refactoring SessionContext.txt(.) and file(.)
* added app arg -debug for debug mode
* add LooseRequestTracker for NioServer and gRPCServer
* add BootRequestTracker for NioServer and gRPCServer
* add BootRequestTracker for NioServer and gRPCServer
* add BootRequestTracker for NioServer and gRPCServer
* add BootRequestTracker for NioServer and gRPCServer
* add errorDesc
* refactoring error code
* add @LimitNonNullGroup - Validation annotation to ensure that exactly a specified number of fields are non-null.
* add @LimitNonNullGroup - Validation annotation to ensure that exactly a specified number of fields are non-null.
* refactoring log
* add ProxyAuthStrategy to HttpClientConfig
* add ProxyAuthStrategy to HttpClientConfig
* add ProxyAuthStrategy to HttpClientConfig
* add ProxyAuthStrategy to HttpClientConfig
* refactoring
* enhancement: refactoring RPCResult by supporting multiple error response types
* enhancement: Err with args
* dependencies update
* add nio.JAX-RS.toJson.showRefInServiceError in cfg_nio.properties, default false to not show ref field in JSON/XML response
* make ServiceError Deserializable
* add IdleEventMonitor and IdleEventMonitor.IdleEventListener to enable app to handle gRPC/RESTFul idel event
* add IdleEventMonitor and IdleEventMonitor.IdleEventListener to enable app to handle gRPC/RESTFul idel event
* add IdleEventMonitor and IdleEventMonitor.IdleEventListener to enable app to handle gRPC/RESTFul idel event
* dependencies update
* upgrade codeql to v3
* verify Bearer Token if provided in request header for regardless of a @controller method is role-based or not
* verify Bearer Token if provided in request header for regardless of a @controller method is role-based or not
* replace JKS with PKCS12
* added GrpcTestBase for gRPC test; Config new: etc/boot.ini section 5. Security Settings
* added GrpcTestBase for gRPC test; Config new: etc/boot.ini section 5. Security Settings
* Config new: etc/boot.ini section 5. Security Settings; added cfg_nio.properties nio.JAX-RS.fromJson.autoBeanValidation
* refactoring
* refactoring
* refactoring
* refactoring
* release 2.6.0
Your root password is stored in file /etc/security/my-service.root_pwd, and has the following format:
@@ -876,10 +875,10 @@ configuration change event, TPS, etc.), below is a sample:
876
875
877
876
**9.3 Sample Code**
878
877
879
-
Use @Service annotation with implTag attribute
878
+
Use @Service annotation with AlternativeName attribute
880
879
881
880
```
882
-
@Service(implTag="myTag")
881
+
@Service(AlternativeName="myImpl")
883
882
```
884
883
885
884
Full version:
@@ -890,12 +889,12 @@ public class MyServiceImpl implements MyServcie {
890
889
...
891
890
}
892
891
893
-
@Service(implTag="impl1")
892
+
@Service(AlternativeName="impl1")
894
893
public class MyServiceImpl_1 implements MyServcie {
895
894
...
896
895
}
897
896
898
-
@Service(implTag="impl2")
897
+
@Service(AlternativeName="impl2")
899
898
public class MyServiceImpl_2 implements MyServcie {
900
899
...
901
900
}
@@ -991,20 +990,31 @@ java -jar my-service.jar -unique POI
991
990
992
991
## 11. Plugin - run with external jar files in plugin foler
993
992
994
-
**10.1 Intent**
993
+
**11.1 Intent**
995
994
996
995
- Once the application is on production, need a way to add new features or override existing logic without changing the
997
996
exiting code
998
997
999
-
**10.2 Motivation**
998
+
**11.2 Motivation**
1000
999
1001
1000
- Make the application focus on interface, and its implements could be developed as external jar files
1002
1001
- Make the visitor pattern available at the application level
1003
1002
- You can even put all your logic in one or multiple external jar files developed by different teams as plugins
1004
1003
1005
-
**10.3 Supported types**
1004
+
**11.3 Supported types**
1006
1005
1007
1006
- Web Controllers @Controller
1008
1007
- Service implementations with @service
1009
1008
- JExpressConfig configurations implementations with @ImportResource
1010
1009
- Classes with @Unique
1010
+
1011
+
## 12. White/Black list protected HTTP and gRPC server
1012
+
1013
+
**12.1 Intent**
1014
+
1015
+
- Have the ability to not to open the dorr to everyone from outside to your service
1016
+
1017
+
**12.2 Motivation**
1018
+
1019
+
- Some testing processes require the service only availbe to limited caller and tell others not to send request to this service to make it easy for trouble shooting
1020
+
- In production, it may requires to mmake service (HTTP or gRPC) availb to caller from centain IP range
0 commit comments