Skip to content

[fix](plugin) Allow legacy unversioned authentication plugins - #67286

Open
CalvinKirs wants to merge 1 commit into
apache:masterfrom
CalvinKirs:fix-auth-plugin-legacy-api-compat
Open

[fix](plugin) Allow legacy unversioned authentication plugins#67286
CalvinKirs wants to merge 1 commit into
apache:masterfrom
CalvinKirs:fix-auth-plugin-legacy-api-compat

Conversation

@CalvinKirs

@CalvinKirs CalvinKirs commented Aug 28, 2026

Copy link
Copy Markdown
Member

What problem does this PR solve?

#66211

Problem Summary:

The authentication plugin API-version gate rejects every plugin jar that does not contain Doris-Authentication-Plugin-Api-Version. Authentication plugins were distributed before this manifest contract existed, so upgrading FE breaks those legacy artifacts even when they implement the current v1 API.

This change adds an opt-in legacy mapping to the generic API gate and configures only the authentication family to treat a genuinely absent declaration as API 1.0:

  • unversioned legacy authentication plugins load with an operator warning;
  • empty, malformed, and explicitly incompatible declarations remain rejected;
  • connector, filesystem, lineage, and other strict gates keep their existing fail-closed behavior;
  • when the FE authentication API moves to another major, legacy v1 plugins are rejected automatically.

Enterprise OIDC regression fixes for the Iceberg Groovy concatenation and invalid-token preflight are separate because those cases live in the enterprise-plugins repository.

Release note

Preserve compatibility with legacy unversioned authentication plugins when upgrading to a Doris FE that serves authentication plugin API 1.x.

Check List (For Author)

  • Test

    • Regression test
    • Unit Test
    • Manual test (add detailed scripts or steps below)
    • No need to test or manual test.

    Ran:

    mvn -f fe/pom.xml -pl fe-extension-loader,fe-authentication/fe-authentication-handler -am test

    Focused results:

    • ApiVersionGateTest: 16 passed
    • AuthenticationPluginManagerTest: 20 passed
    • Maven reactor and Checkstyle: passed
  • Behavior changed:

    • No.
    • Yes. Missing authentication plugin API declarations are treated as legacy API 1.0 and logged; explicit incompatible declarations are still rejected.
  • Does this need documentation?

    • No.
    • Yes.

Check List (For Reviewer who merge this PR)

  • Confirm the release note
  • Confirm test cases
  • Confirm document
  • Add branch pick label

@hello-stephen

Copy link
Copy Markdown
Contributor

Thank you for your contribution to Apache Doris.
Don't know what should be done next? See How to process your PR.

Please clearly describe your PR:

  1. What problem was fixed (it's best to include specific error reporting information). How it was fixed.
  2. Which behaviors were modified. What was the previous behavior, what is it now, why was it modified, and what possible impacts might there be.
  3. What features were added. Why was this function added?
  4. Which code was refactored and why was this part of the code refactored?
  5. Which functions were optimized and what is the difference before and after the optimization?

@CalvinKirs

Copy link
Copy Markdown
Member Author

run buildall

@hello-stephen

Copy link
Copy Markdown
Contributor
TPC-H: Total hot run time: 16967 ms
machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
scripts: https://github.com/apache/doris/tree/master/tools/tpch-tools
Tpch sf100 test result on commit fe4c9b72bc58eae60b24c73aefe3e45741b0feca, data reload: false

------ Round 1 ----------------------------------
============================================
q1	17619	3115	3124	3115
q2	2144	252	248	248
q3	10190	877	518	518
q4	4672	247	210	210
q5	7665	631	391	391
q6	139	117	94	94
q7	529	504	386	386
q8	9242	938	917	917
q9	3460	2409	2378	2378
q10	6531	855	691	691
q11	403	198	181	181
q12	620	264	194	194
q13	18127	1526	1174	1174
q14	164	151	141	141
q15	q16	451	400	368	368
q17	1354	840	793	793
q18	3151	2245	2268	2245
q19	1256	929	761	761
q20	366	280	207	207
q21	5610	1727	1809	1727
q22	334	274	228	228
Total cold run time: 94027 ms
Total hot run time: 16967 ms

----- Round 2, with runtime_filter_mode=off -----
============================================
q1	3513	3436	3390	3390
q2	511	400	405	400
q3	2251	2379	2233	2233
q4	1198	1186	923	923
q5	2228	2116	2118	2116
q6	168	119	86	86
q7	1011	925	854	854
q8	1603	1443	1441	1441
q9	3178	3169	3128	3128
q10	1864	1797	1608	1608
q11	355	277	254	254
q12	460	432	355	355
q13	1487	1534	1172	1172
q14	175	173	158	158
q15	q16	409	409	361	361
q17	3643	3280	3223	3223
q18	4857	4442	4765	4442
q19	994	890	872	872
q20	1022	986	826	826
q21	3932	3203	3283	3203
q22	410	360	313	313
Total cold run time: 35269 ms
Total hot run time: 31358 ms

@hello-stephen

Copy link
Copy Markdown
Contributor
TPC-DS: Total hot run time: 82569 ms
machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
scripts: https://github.com/apache/doris/tree/master/tools/tpcds-tools
TPC-DS sf100 test result on commit fe4c9b72bc58eae60b24c73aefe3e45741b0feca, data reload: false

query5	4261	397	322	322
query6	425	132	132	132
query7	4938	423	233	233
query8	301	125	124	124
query9	8699	2885	2895	2885
query10	456	240	173	173
query11	5382	1040	915	915
query12	111	69	69	69
query13	1205	430	320	320
query14	6126	2208	2103	2103
query14_1	1985	1982	1991	1982
query15	177	119	116	116
query16	924	375	356	356
query17	830	454	381	381
query18	2330	357	229	229
query19	164	134	103	103
query20	74	72	68	68
query21	207	100	88	88
query22	5368	5271	5297	5271
query23	6668	6185	6217	6185
query23_1	5947	6208	6241	6208
query24	7285	1100	764	764
query24_1	779	768	774	768
query25	411	288	238	238
query26	1220	226	134	134
query27	2788	435	256	256
query28	4655	1484	1501	1484
query29	938	427	341	341
query30	250	151	133	133
query31	813	402	324	324
query32	124	89	69	69
query33	462	217	180	180
query34	991	830	474	474
query35	406	393	353	353
query36	570	574	509	509
query37	122	82	71	71
query38	1007	846	800	800
query39	500	493	485	485
query39_1	470	468	474	468
query40	204	88	76	76
query41	55	52	52	52
query42	74	74	72	72
query43	237	240	211	211
query44	1031	552	548	548
query45	113	101	96	96
query46	797	840	546	546
query47	757	757	708	708
query48	318	320	243	243
query49	575	244	201	201
query50	783	270	198	198
query51	8510	8317	8220	8220
query52	68	76	66	66
query53	193	222	203	203
query54	259	183	176	176
query55	79	60	57	57
query56	202	194	165	165
query57	730	690	598	598
query58	209	171	169	169
query59	1259	1275	1120	1120
query60	260	174	179	174
query61	116	115	119	115
query62	386	204	179	179
query63	164	150	138	138
query64	2856	666	597	597
query65	1655	1594	1628	1594
query66	1771	267	197	197
query67	10138	9735	9821	9735
query68	2984	1083	738	738
query69	354	228	192	192
query70	652	621	629	621
query71	258	164	169	164
query72	2413	1788	1585	1585
query73	651	609	349	349
query74	2022	1222	1137	1137
query75	1196	1089	955	955
query76	2382	719	541	541
query77	240	253	217	217
query78	3929	3682	3163	3163
query79	2808	895	617	617
query80	1635	326	266	266
query81	516	153	133	133
query82	959	127	99	99
query83	289	211	191	191
query84	298	111	91	91
query85	871	409	300	300
query86	482	195	180	180
query87	1033	974	879	879
query88	3066	2106	2114	2106
query89	304	199	180	180
query90	2104	129	130	129
query91	130	117	101	101
query92	98	67	73	67
query93	2062	1113	679	679
query94	673	245	219	219
query95	587	260	229	229
query96	805	585	264	264
query97	1076	1080	986	986
query98	181	135	127	127
query99	436	350	314	314
Total cold run time: 181068 ms
Total hot run time: 82569 ms

@hello-stephen

Copy link
Copy Markdown
Contributor
ClickBench: Total hot run time: 14.73 s
machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
scripts: https://github.com/apache/doris/tree/master/tools/clickbench-tools
ClickBench test result on commit fe4c9b72bc58eae60b24c73aefe3e45741b0feca, data reload: false

query1	0.00	0.01	0.00
query2	0.08	0.04	0.03
query3	0.25	0.11	0.11
query4	1.60	0.09	0.09
query5	0.17	0.17	0.16
query6	1.22	0.68	0.69
query7	0.04	0.01	0.00
query8	0.05	0.03	0.03
query9	0.29	0.21	0.22
query10	0.37	0.36	0.35
query11	0.17	0.11	0.11
query12	0.14	0.12	0.12
query13	0.32	0.30	0.31
query14	0.45	0.45	0.45
query15	0.37	0.35	0.34
query16	0.22	0.21	0.24
query17	0.69	0.69	0.70
query18	0.19	0.18	0.17
query19	1.19	1.16	1.16
query20	0.01	0.01	0.01
query21	15.48	0.16	0.13
query22	5.07	0.04	0.04
query23	16.16	0.25	0.10
query24	3.04	0.34	0.25
query25	0.10	0.05	0.04
query26	0.72	0.17	0.13
query27	0.03	0.03	0.03
query28	3.60	0.58	0.27
query29	12.46	3.22	2.59
query30	0.25	0.12	0.12
query31	2.76	0.37	0.18
query32	3.44	0.33	0.24
query33	1.47	1.54	1.39
query34	15.40	2.16	1.78
query35	1.75	1.76	1.70
query36	0.47	0.29	0.30
query37	0.06	0.04	0.04
query38	0.06	0.03	0.03
query39	0.04	0.03	0.03
query40	0.11	0.07	0.07
query41	0.08	0.03	0.02
query42	0.03	0.03	0.02
query43	0.03	0.02	0.03
Total cold run time: 90.43 s
Total hot run time: 14.73 s

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants