Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitc5f6d5d

Browse files
committed
wip: plugin endpoint authentication
1 parent083110c commitc5f6d5d

File tree

3 files changed

+20
-8
lines changed

3 files changed

+20
-8
lines changed

‎server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/framework/configuration/CustomWebFluxConfigurationSupport.java‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,5 +13,4 @@ protected RouterFunctionMapping createRouterFunctionMapping()
1313
{
1414
returnnewReloadableRouterFunctionMapping();
1515
}
16-
1716
}

‎server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/framework/plugin/endpoint/PluginEndpointHandlerImpl.java‎

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
importorg.lowcoder.plugin.api.data.EndpointRequest;
2222
importorg.lowcoder.plugin.api.data.EndpointResponse;
2323
importorg.lowcoder.sdk.exception.BaseException;
24+
importorg.springframework.beans.factory.support.DefaultListableBeanFactory;
2425
importorg.springframework.context.ApplicationContext;
2526
importorg.springframework.context.support.GenericApplicationContext;
2627
importorg.springframework.core.ResolvableType;
@@ -30,7 +31,6 @@
3031
importorg.springframework.web.reactive.function.server.RouterFunction;
3132
importorg.springframework.web.reactive.function.server.ServerResponse;
3233
importorg.springframework.web.reactive.function.server.ServerResponse.BodyBuilder;
33-
importorg.springframework.web.reactive.function.server.support.RouterFunctionMapping;
3434

3535
importlombok.RequiredArgsConstructor;
3636
importlombok.extern.slf4j.Slf4j;
@@ -45,7 +45,7 @@ public class PluginEndpointHandlerImpl implements PluginEndpointHandler
4545
privateList<RouterFunction<ServerResponse>>routes =newArrayList<>();
4646

4747
privatefinalApplicationContextapplicationContext;
48-
privatefinalRouterFunctionMappingrouterFunctionMapping;
48+
privatefinalDefaultListableBeanFactorybeanFactory;
4949

5050
@Override
5151
publicvoidregisterEndpoints(StringpluginUrlPrefix,List<PluginEndpoint>endpoints)
@@ -54,20 +54,24 @@ public void registerEndpoints(String pluginUrlPrefix, List<PluginEndpoint> endpo
5454

5555
if (CollectionUtils.isNotEmpty(endpoints))
5656
{
57-
57+
List<EndpointExtension>toAuthorize =newArrayList<>();
5858
for (PluginEndpointendpoint :endpoints)
5959
{
6060
Method[]handlers =endpoint.getClass().getDeclaredMethods();
6161
if (handlers !=null &&handlers.length >0)
6262
{
6363
for (Methodhandler :handlers)
6464
{
65-
registerEndpointHandler(urlPrefix,endpoint,handler);
65+
toAuthorize.addAll(registerEndpointHandler(urlPrefix,endpoint,handler));
6666
}
6767
}
6868
}
6969

70-
((ReloadableRouterFunctionMapping)routerFunctionMapping).reloadFunctionMappings();
70+
((ReloadableRouterFunctionMapping)beanFactory.getBean("routerFunctionMapping")).reloadFunctionMappings();
71+
if (!toAuthorize.isEmpty())
72+
{
73+
// TODO: ludomikula: finish endpoint authorization
74+
}
7175
}
7276
}
7377

@@ -77,8 +81,10 @@ public List<RouterFunction<ServerResponse>> registeredEndpoints()
7781
returnroutes;
7882
}
7983

80-
privatevoidregisterEndpointHandler(StringurlPrefix,PluginEndpointendpoint,Methodhandler)
84+
privateList<EndpointExtension>registerEndpointHandler(StringurlPrefix,PluginEndpointendpoint,Methodhandler)
8185
{
86+
List<EndpointExtension>toAuthorize =newArrayList<>();
87+
8288
if (handler.isAnnotationPresent(EndpointExtension.class))
8389
{
8490
if (checkHandlerMethod(handler))
@@ -103,13 +109,20 @@ private void registerEndpointHandler(String urlPrefix, PluginEndpoint endpoint,
103109
routes.add(routerFunction);
104110
registerRouterFunctionMapping(endpointName,routerFunction);
105111

112+
if (endpointMeta.authenticated())
113+
{
114+
toAuthorize.add(endpointMeta);
115+
}
116+
106117
log.info("Registered endpoint: {} -> {}: {}",endpoint.getClass().getSimpleName(),endpointMeta.method(),urlPrefix +endpointMeta.uri());
107118
}
108119
else
109120
{
110121
log.error("Cannot register plugin endpoint: {} -> {}! Handler method must be defined as: public Mono<ServerResponse> {}(ServerRequest request)",endpoint.getClass().getSimpleName(),handler.getName(),handler.getName());
111122
}
112123
}
124+
125+
returntoAuthorize;
113126
}
114127

115128
privatevoidregisterRouterFunctionMapping(StringendpointName,RouterFunction<ServerResponse>routerFunction)

‎server/api-service/lowcoder-server/src/main/resources/selfhost/ce/application.yml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ spring:
1616
codec:
1717
max-in-memory-size:20MB
1818
webflux:
19-
context-path:/
19+
base-path:/
2020

2121
server:
2222
compression:

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp