Skip to content

Commit 25813ff

Browse files
authored
fixes #146 use security.yml for config and remove dup JwtVerifier instance (#147)
1 parent 701d058 commit 25813ff

26 files changed

+726
-274
lines changed

pom.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,7 @@
110110

111111
<modules>
112112
<module>rpc-router</module>
113+
<module>rpc-security</module>
113114
</modules>
114115

115116
<dependencyManagement>
@@ -120,6 +121,11 @@
120121
<artifactId>rpc-router</artifactId>
121122
<version>${project.version}</version>
122123
</dependency>
124+
<dependency>
125+
<groupId>com.networknt</groupId>
126+
<artifactId>rpc-security</artifactId>
127+
<version>${project.version}</version>
128+
</dependency>
123129

124130
<dependency>
125131
<groupId>com.networknt</groupId>

rpc-router/src/main/java/com/networknt/rpc/Handler.java renamed to rpc-router/src/main/java/com/networknt/rpc/HybridHandler.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717

1818
import com.fasterxml.jackson.databind.JsonNode;
1919
import com.networknt.config.Config;
20-
import com.networknt.rpc.router.JsonHandler;
2120
import com.networknt.schema.JsonSchema;
2221
import com.networknt.schema.JsonSchemaFactory;
2322
import com.networknt.schema.SpecVersion;
@@ -38,8 +37,8 @@
3837
*
3938
* @author Steve Hu
4039
*/
41-
public interface Handler {
42-
Logger logger = LoggerFactory.getLogger(Handler.class);
40+
public interface HybridHandler {
41+
Logger logger = LoggerFactory.getLogger(HybridHandler.class);
4342

4443
String REQUEST_SUCCESS = "SUC10200";
4544
String ERROR_NOT_DEFINED = "ERR10042";

rpc-router/src/main/java/com/networknt/rpc/router/AbstractRpcHandler.java

Lines changed: 0 additions & 241 deletions
This file was deleted.

rpc-router/src/main/java/com/networknt/rpc/router/JsonHandler.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import com.networknt.handler.LightHttpHandler;
44
import com.networknt.httpstring.AttachmentConstants;
5-
import com.networknt.rpc.Handler;
5+
import com.networknt.rpc.HybridHandler;
66
import com.networknt.utility.Constants;
77
import io.undertow.server.HttpServerExchange;
88
import io.undertow.util.StatusCodes;
@@ -36,7 +36,7 @@ public void handleRequest(HttpServerExchange exchange) throws Exception {
3636
setExchangeStatus(exchange, STATUS_HANDLER_NOT_FOUND);
3737
return;
3838
}
39-
Handler handler = RpcStartupHookProvider.serviceMap.get(serviceId);
39+
HybridHandler handler = RpcStartupHookProvider.serviceMap.get(serviceId);
4040
Map<String, Object> data = (Map<String, Object>)auditInfo.get(Constants.HYBRID_SERVICE_DATA);
4141
ByteBuffer result = handler.handle(exchange, data);
4242
if(result == null) {

rpc-router/src/main/java/com/networknt/rpc/router/RpcStartupHookProvider.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import com.networknt.config.Config;
44
import com.networknt.resource.PathResourceProvider;
55
import com.networknt.resource.PredicatedHandlersProvider;
6-
import com.networknt.rpc.Handler;
6+
import com.networknt.rpc.HybridHandler;
77
import com.networknt.server.Server;
88
import com.networknt.server.StartupHookProvider;
99
import com.networknt.service.SingletonServiceFactory;
@@ -29,7 +29,7 @@ public class RpcStartupHookProvider implements StartupHookProvider {
2929
static final Logger logger = LoggerFactory.getLogger(RpcStartupHookProvider.class);
3030
static RpcRouterConfig config;
3131

32-
public static final Map<String, Handler> serviceMap = new HashMap<>();
32+
public static final Map<String, HybridHandler> serviceMap = new HashMap<>();
3333
public static PathResourceProvider[] pathResourceProviders;
3434
public static PredicatedHandlersProvider[] predicatedHandlersProviders;
3535
public RpcStartupHookProvider() {
@@ -57,7 +57,7 @@ public void onStartup() {
5757
try {
5858
Class handler = Class.forName(className);
5959
ServiceHandler a = (ServiceHandler)handler.getAnnotation(ServiceHandler.class);
60-
serviceMap.put(a.id(), (Handler)handler.getConstructor().newInstance());
60+
serviceMap.put(a.id(), (HybridHandler)handler.getConstructor().newInstance());
6161
if(logger.isDebugEnabled()) logger.debug("RpcStartupHookProvider add id {} maps to {}", a.id(), className);
6262
if(config.isRegisterService()) Server.serviceIds.add(a.id().replace('/', '.'));
6363
} catch (Exception e) {

rpc-router/src/main/java/com/networknt/rpc/router/SchemaHandler.java

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,10 @@
33
import com.fasterxml.jackson.core.type.TypeReference;
44
import com.networknt.config.Config;
55
import com.networknt.config.JsonMapper;
6+
import com.networknt.handler.Handler;
67
import com.networknt.handler.MiddlewareHandler;
78
import com.networknt.httpstring.AttachmentConstants;
8-
import com.networknt.rpc.Handler;
9+
import com.networknt.rpc.HybridHandler;
910
import com.networknt.status.Status;
1011
import com.networknt.utility.Constants;
1112
import com.networknt.utility.ModuleRegistry;
@@ -124,7 +125,7 @@ private void processRequest(HttpServerExchange exchange, String message) {
124125
Map<String, Object> map = JsonMapper.string2Map(message);
125126
String serviceId = getServiceId(map);
126127
logger.debug("serviceId = {}", serviceId);
127-
Handler handler = RpcStartupHookProvider.serviceMap.get(serviceId);
128+
HybridHandler handler = RpcStartupHookProvider.serviceMap.get(serviceId);
128129
if(handler == null) {
129130
this.handleMissingHandler(exchange, serviceId);
130131
return;
@@ -155,10 +156,15 @@ private void processRequest(HttpServerExchange exchange, String message) {
155156
auditInfo.put(Constants.HYBRID_SERVICE_DATA, data);
156157
exchange.putAttachment(AttachmentConstants.AUDIT_INFO, auditInfo);
157158

158-
// if exchange is not ended, then do the processing.
159-
ByteBuffer result = handler.handle(exchange, data);
160-
if(logger.isDebugEnabled()) logger.debug(result.toString());
161-
this.completeExchange(result, exchange);
159+
// if exchange is not ended, then call the next handler in the chain.
160+
if(logger.isTraceEnabled()) logger.trace("SchemaHandler.handleRequest ends.");
161+
try {
162+
Handler.next(exchange, next);
163+
} catch (Exception e) {
164+
logger.error("Exception:", e);
165+
exchange.setStatusCode(StatusCodes.INTERNAL_SERVER_ERROR);
166+
exchange.endExchange();
167+
}
162168
}
163169

164170
void completeExchange(ByteBuffer result, HttpServerExchange exchange) {

rpc-router/src/test/java/com/networknt/rpc/router/AccountServiceHandler.java renamed to rpc-router/src/test/java/com/networknt/rpc/router/AccountServiceHybridHandler.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package com.networknt.rpc.router;
22

3-
import com.networknt.rpc.Handler;
3+
import com.networknt.rpc.HybridHandler;
44
import io.undertow.server.HttpServerExchange;
55
import org.slf4j.Logger;
66
import org.slf4j.LoggerFactory;
@@ -11,8 +11,8 @@
1111
* Created by steve on 12/04/17.
1212
*/
1313
@ServiceHandler(id="www.networknt.com/account/credit/1.0.0")
14-
public class AccountServiceHandler implements Handler {
15-
static private final Logger logger = LoggerFactory.getLogger(AccountServiceHandler.class);
14+
public class AccountServiceHybridHandler implements HybridHandler {
15+
static private final Logger logger = LoggerFactory.getLogger(AccountServiceHybridHandler.class);
1616

1717
@Override
1818
public ByteBuffer handle(HttpServerExchange exchange, Object input) {

0 commit comments

Comments
 (0)