This is an automated email from the ASF dual-hosted git repository.
smolnar82 pushed a change to branch knox_idf
in repository https://gitbox.apache.org/repos/asf/knox.git
from 4874c8a0c Knox as OIDC Provider (#1215)
new f209a1dce KNOX-3256: Refactor Docker build to use local Maven
artifacts and unify CI/Dev workflows (#1239)
new 7a73bf968 KNOX-3328: Add Docker-based integration tests for Knox LDAP
service (#1242)
new 072650537 KNOX-3331: Add Maven option to skip Angular UI modules
(#1241)
new 144c64f3e KNOX-3332: Add listeners on gateway config changes (#1243)
new f6472b2fd KNOX-3329: New database truststore type config (#1246)
new 5b5246b8f KNOX-3328: Implement recursive group resolution for LDAP
proxy (#1236)
new 780629ab3 KNOX-3339: Upgrade log4j2 to 2.26.0 (#1248)
new dc3adae65 KNOX-3318: document LDAP service (#1227)
new 27c279a36 KNOX-3330: Refactor LDAP Proxy configuration to support
multiple backends (#1240)
new 2dfcb1e09 KNOX-3336: New LDAP Service Factory (#1250)
new 258bc2c1a KNOX-3330: Handle interceptor name collisions (#1251)
new 97d22d249 KNOX-3337: Add optional LDAP role lookup support (#1247)
new c28a97415 KNOX-3342: Fixed NPE in HadoopGroupFilter when hadoopGroups
instance wasn't set (#1253)
new 598885ee5 KNOX-3343: Fix NPE when cacheKeyHeader is not found in the
request (#1254)
new 14a9b16f9 KNOX-3294: Upgrade bootstrap to 5+ on login,logout and
redirecting pages (#1252)
new 23a9980a3 KNOX-3445: ignore GatewayServerTest.testRefreshGatewayConfig
temporarily (#1255)
new c29303333 KNOX-3345: Fix intermittent testRefreshGatewayConfig test
issue (#1259)
new bcc970636 Bump org.apache.commons:commons-configuration2 from 2.10.1
to 2.15.0 (#1238)
new 7eb86ee46 KNOX-3348: Upgrade BouncyCastle to 1.84 (#1261)
new f82dcf752 KNOX-3335: Add pylint pre-push linting for
.github/workflows/tests Python integration tests (#1260)
new 2e1f17806 KNOX-3334 - Introduce ActorChainPrincipal for RFC 8693
instead of ImpersonatedPrincipal (#1257)
new b4703a469 KNOX-3340: Add Control for LDAPRolesLookupInterceptor (#1258)
new 168d2a46f KNOX-3352: Set scheme for Iceberg REST catalog based on ssl
enabled c… (#1265)
new 8d4d81dbe KNOX-3351: Resolve LDAP roles for users with no groups
(#1266)
new 542fb1178 KNOX-3347 - Introduce TokenExchangePrincipal for extending
Act claim … (#1262)
new cd506ae79 KNOX-3354: Remove index suffix from actor groups header for
roles in AbstractAuthResource (#1267)
new d0a12a69f KNOX-3352: k8s pre-auth validator for service account
annotation (#1268)
new 0aeacf732 KNOX-3353: Eliminate K8sPreAuthFederationFilter and
consolidate logic in ServiceAccountValidator (#1269)
new 01c04c2da KNOX-3356: Allow Cloudera Manager service discovery over
cleartext HTTP (#1272)
new 5041af985 KNOX:3353: Add Docker-based integration tests for k8s
ServiceAccountValidator (#1271)
new 9102311f8 KNOX-3358: Support configurable bind credentials for the
embedded Knox LDAP service (#1275)
new 9563c0636 KNOX-3234: Upgrade Admin UI Angular to 21+, bootstrap to 5+
(#1249)
new a67af63fa KNOX-3357: Upgrade Webshell UI frameworks/libraries (#1276)
new 6957e3e0c KNOX-3341: LDAP proxy backend handles general searches
(#1274)
new 1e0292ffb KNOX-3360: create-k8s-alias command to save aliases from k8s
secrets (#1279)
new 2549247c5 KNOX-3363: Document create-k8s-alias, create-list-aliases
and update export-cert and list-alias KnoxCLI commands (#1281)
new 8f9789cf3 KNOX-3364: New loadAliasesFromK8sSecrets method in
entrypoint.sh to load aliases from k8s secrets. Install jq in the container as
well. (#1282)
new 0d42c67fd KNOX-3365: New docs for k8s ServiceAccount validator (#1283)
new de9d8ddb3 KNOX-3341: LDAP proxy general search - review fixes and
hardening (#1284)
new abbe4b1f1 KNOX-3369: Bump requests from 2.32.4 to 2.33.0 and pytest
from 8.3.4 to 9.0.3 in /.github/workflows/tests (#1288)
new dd9119d20 KNOX-3367: Update Token State Service DB documentation
(#1287)
new a1f8d32da KNOX-3366 - Upgrade Mina-core to 2.2.8 (#1285) via
devaspati.krishnatri
new 02b354c1e KNOX-3370: Eliminate deprecated TokenStateService
implementations (#1289)
new 13e71dda3 KNOX-1608: Remove gateway-adapter module (#1263)
new 1b43be077 KNOX-3371: Fix broken error message on login page (#1290)
new 157af9580 KNOX-3316: Change downloaded keystore format based on FIPS
(#1292)
The 46 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
...e.api.UrlRewriteStepDescriptor => .dockerignore | 18 +-
.github/workflows/build/Dockerfile | 3 +-
.../workflows/build/conf/topologies/k8sauth.xml | 52 +
.../workflows/build/conf/topologies/knoxldap.xml | 10 +-
.github/workflows/build/gateway-site.xml | 92 +-
.github/workflows/compose/docker-compose.yml | 86 +-
.../workflows/compose/k8s/manifests/test-sa.yaml | 38 +
.github/workflows/tests.yml | 6 +-
.github/workflows/tests/common_utils.py | 8 +-
.github/workflows/tests/requirements.txt | 6 +-
.github/workflows/tests/test_health.py | 13 +-
.../tests/test_k8s_serviceaccount_validation.py | 94 +
..._LDAP.py => test_knox_auth_service_and_ldap.py} | 84 +-
.github/workflows/tests/test_knox_configs.py | 18 +-
.../workflows/tests/test_knox_ldap_proxy_search.py | 95 +
.../tests/test_knoxauth_preauth_and_paths.py | 4 +-
.github/workflows/tests/test_remote_auth.py | 19 +-
.../test_remoteauth_extauthz_additional_path.py | 15 +-
.../main/resources/build-tools/spotbugs-filter.xml | 5 -
gateway-adapter/pom.xml | 117 -
.../gateway/audit/log4j/layout/AuditLayout.java | 36 -
.../hadoop/gateway/dispatch/DefaultDispatch.java | 94 -
.../hadoop/gateway/dispatch/NiFiDispatch.java | 49 -
.../hadoop/gateway/dispatch/NiFiHaDispatch.java | 53 -
.../gateway/dispatch/PassAllHeadersDispatch.java | 28 -
.../dispatch/PassAllHeadersNoEncodingDispatch.java | 29 -
.../hadoopauth/filter/HadoopAuthFilter.java | 37 -
.../apache/hadoop/gateway/hbase/HBaseDispatch.java | 28 -
.../hdfs/dispatch/HdfsHttpClientDispatch.java | 51 -
.../gateway/hdfs/dispatch/WebHdfsHaDispatch.java | 54 -
.../apache/hadoop/gateway/hive/HiveDispatch.java | 34 -
.../apache/hadoop/gateway/hive/HiveHaDispatch.java | 38 -
.../federation/jwt/filter/JWTFederationFilter.java | 39 -
.../jwt/filter/SSOCookieFederationFilter.java | 52 -
.../hadoop/gateway/rm/dispatch/RMHaDispatch.java | 31 -
.../hadoop/gateway/rm/dispatch/RMUIHaDispatch.java | 33 -
.../gateway/shirorealm/KnoxLdapContextFactory.java | 41 -
.../hadoop/gateway/shirorealm/KnoxLdapRealm.java | 99 -
.../hadoop/gateway/shirorealm/KnoxPamRealm.java | 49 -
.../apache/hadoop/gateway/storm/StormDispatch.java | 28 -
.../apache/hadoop/gateway/topology/Service.java | 28 -
.../apache/hadoop/gateway/topology/Topology.java | 31 -
.../org/apache/hadoop/gateway/util/RegExUtils.java | 28 -
.../src/main/resources/META-INF/launcher.cfg | 17 -
.../gateway/shirorealm/KnoxLdapRealmTest.java | 105 -
.../gateway/shirorealm/KnoxPamRealmTest.java | 72 -
gateway-admin-ui/.eslintrc.json | 98 -
gateway-admin-ui/admin-ui/app/app.component.html | 16 +-
.../admin-ui/app/app.component.spec.ts | 53 -
gateway-admin-ui/admin-ui/app/app.component.ts | 28 +-
gateway-admin-ui/admin-ui/app/app.module.ts | 97 -
.../app/descriptor/descriptor.component.css | 0
.../app/descriptor/descriptor.component.html | 3 -
.../app/descriptor/descriptor.component.spec.ts | 41 -
.../gateway-version/gateway-version.component.css | 18 +
.../gateway-version/gateway-version.component.html | 5 +
.../gateway-version.component.ts | 14 +-
gateway-admin-ui/admin-ui/app/index.ts | 18 -
gateway-admin-ui/admin-ui/app/main.ts | 21 -
.../app/{resource-detail => model}/descriptor.ts | 2 +-
.../admin-ui/app/{ => model}/gateway-version.ts | 0
.../{resource-detail => model}/provider-config.ts | 0
.../admin-ui/app/{resource => model}/resource.ts | 2 -
.../admin-ui/app/{resource => model}/service.ts | 0
.../servicedefinition.ts | 4 -
.../session-information.ts} | 3 -
.../admin-ui/app/{ => model}/topology.ts | 0
.../new-desc-wizard/new-desc-wizard.component.css | 23 +
.../new-desc-wizard/new-desc-wizard.component.html | 244 +-
.../new-desc-wizard.component.spec.ts | 41 -
.../new-desc-wizard/new-desc-wizard.component.ts | 24 +-
.../provider-config-selector.component.html | 39 +-
.../provider-config-selector.component.spec.ts | 41 -
.../provider-config-selector.component.ts | 25 +-
.../AnonymousProviderConfig.ts | 2 +-
.../authentication-wizard.ts | 3 +-
.../provider-config-wizard/authorization-wizard.ts | 3 +-
.../app/provider-config-wizard/category-wizard.ts | 2 +-
.../provider-config-wizard/csrf-provider-config.ts | 3 +-
.../display-binding-provider-config.ts | 6 +-
.../app/provider-config-wizard/ha-wizard.ts | 2 +-
.../hostmap-provider-wizard.ts | 2 +-
.../identity-assertion-wizard.ts | 5 +-
.../provider-config-wizard/ldap-provider-config.ts | 4 +-
.../provider-config-wizard.component.html | 249 +-
.../provider-config-wizard.component.spec.ts | 41 -
.../provider-config-wizard.component.ts | 24 +-
.../provider-contributor-wizard.ts | 2 +-
.../webappsec-provider-config.ts | 2 +-
.../app/provider-config-wizard/webappsec-wizard.ts | 5 +-
.../resource-detail/resource-detail.component.css | 14 +-
.../resource-detail/resource-detail.component.html | 956 +--
.../resource-detail.component.spec.ts | 41 -
.../resource-detail/resource-detail.component.ts | 79 +-
.../admin-ui/app/resource/resource.component.css | 58 +
.../admin-ui/app/resource/resource.component.html | 88 +-
.../app/resource/resource.component.spec.ts | 41 -
.../admin-ui/app/resource/resource.component.ts | 52 +-
.../app/resourcetypes/resourcetypes.component.css | 45 +
.../app/resourcetypes/resourcetypes.component.html | 28 +-
.../resourcetypes/resourcetypes.component.spec.ts | 41 -
.../app/resourcetypes/resourcetypes.component.ts | 4 +-
.../new-service-definition.component.css | 24 +-
.../new-service-definition.component.html | 40 +-
.../new-service-definition.component.ts | 44 +-
.../app/service-definition/rewrite.rules.ts | 21 -
.../servicedefinition-detail.component.css | 76 +
.../servicedefinition-detail.component.html | 65 +
.../servicedefinition-detail.component.ts | 93 +-
.../app/{ => service}/gateway-version.service.ts | 19 +-
.../app/{resource => service}/resource.service.ts | 100 +-
.../resourcetypes.service.ts | 4 +-
.../servicedefinition.service.ts | 95 +-
.../session.information.service.ts | 19 +-
.../admin-ui/app/{ => service}/topology.service.ts | 68 +-
.../session.information.component.html | 0
.../session.information.component.ts | 11 +-
.../admin-ui/app/topology-detail.component.ts | 209 -
.../topology-detail/topology-detail.component.css | 80 +
.../topology-detail/topology-detail.component.html | 77 +
.../topology-detail/topology-detail.component.ts | 118 +
.../admin-ui/app/topology/topology.component.html | 19 +
.../app/{ => topology}/topology.component.ts | 30 +-
.../admin-ui/app/utils/json-pretty.pipe.ts | 4 +-
.../admin-ui/app/utils/modal.component.html | 10 +
.../modal.component.ts} | 27 +-
.../admin-ui/app/utils/tab.component.css | 3 +
.../admin-ui/app/utils/tab.component.html | 2 +
.../admin-ui/app/utils/tab.component.ts | 11 +-
.../admin-ui/app/utils/tabs.component.html | 7 +
.../admin-ui/app/utils/tabs.component.ts | 15 +-
.../admin-ui/app/utils/validation-utils.ts | 2 +-
gateway-admin-ui/admin-ui/app/utils/xml.pipe.ts | 4 +-
gateway-admin-ui/admin-ui/assets/sticky-footer.css | 24 -
gateway-admin-ui/admin-ui/index.html | 50 +-
gateway-admin-ui/admin-ui/main.ts | 28 +-
.../rewrite.rule.ts => material-theme.scss} | 11 +-
gateway-admin-ui/admin-ui/polyfills.ts | 20 +-
gateway-admin-ui/admin-ui/styles.css | 9 -
gateway-admin-ui/admin-ui/styles.scss | 354 ++
gateway-admin-ui/admin-ui/tsconfig.json | 11 +-
gateway-admin-ui/admin-ui/typings.d.ts | 18 -
gateway-admin-ui/angular.json | 45 +-
.../eslint.config.js | 7 +-
gateway-admin-ui/package.json | 75 +-
gateway-admin-ui/pom.xml | 8 +-
.../applications/knoxauth/app/js/knoxauth.js | 7 +-
.../resources/applications/knoxauth/app/login.html | 28 +-
.../resources/applications/knoxauth/app/logout.jsp | 15 +-
.../applications/knoxauth/app/redirecting.html | 17 +-
.../applications/knoxauth/app/redirecting.jsp | 13 +-
.../knoxauth/app/styles/bootstrap-icons.min.css | 5 +
.../knoxauth/app/styles/bootstrap.min.css | 6428 +-------------------
.../knoxauth/app/styles/fonts/bootstrap-icons.woff | Bin 0 -> 176032 bytes
.../app/styles/fonts/bootstrap-icons.woff2 | Bin 0 -> 130396 bytes
.../applications/knoxauth/app/styles/knox.css | 83 +-
.../knoxauth/app/styles/themes/modern/theme.css | 1 +
.../ClouderaManagerServiceDiscoveryMessages.java | 3 +
.../topology/discovery/cm/DiscoveryApiClient.java | 14 +
.../hive/IcebergRestServiceModelGenerator.java | 5 +-
.../cm/ClouderaManagerServiceDiscoveryTest.java | 30 +-
.../hive/IcebergRestServiceModelGeneratorTest.java | 20 +-
.../src/main/resources/docker/Dockerfile | 3 +-
.../main/resources/docker/gateway-entrypoint.sh | 55 +-
.../filter/AbstractIdentityAssertionFilter.java | 31 +-
.../pom.xml | 4 +
.../groups/filter/HadoopGroupProviderFilter.java | 60 +-
.../groups/filter/HadoopGroupProviderMessages.java | 3 +
.../filter/HadoopGroupProviderFilterTest.java | 74 +
.../knox/gateway/filter/RemoteAuthFilter.java | 2 +-
.../knox/gateway/filter/RemoteAuthFilterTest.java | 51 +-
.../federation/jwt/filter/AbstractJWTFilter.java | 21 +-
.../federation/jwt/filter/JWTFederationFilter.java | 151 +-
.../pom.xml | 44 +-
.../gateway/preauth/k8s/K8sLookupException.java | 9 +-
.../gateway/preauth/k8s/K8sPreAuthMessages.java | 59 +
.../preauth/k8s/K8sServiceAccountResolver.java | 122 +
.../preauth/k8s/ServiceAccountValidator.java | 143 +
.../apache/knox/gateway/preauth/k8s/SpiffeId.java | 55 +
...he.knox.gateway.preauth.filter.PreAuthValidator | 2 +-
.../preauth/k8s/K8sServiceAccountResolverTest.java | 214 +
.../preauth/k8s/ServiceAccountValidatorTest.java | 157 +
.../knox/gateway/preauth/k8s/SpiffeIdTest.java | 73 +
.../filter/AbstractPreAuthFederationFilter.java | 28 +-
.../gateway/preauth/filter/DefaultValidator.java | 10 +
.../knox/gateway/preauth/filter/IPValidator.java | 10 +
.../preauth/filter/PreAuthFederationFilter.java | 6 +-
.../gateway/preauth/filter/PreAuthService.java | 41 +-
.../gateway/preauth/filter/PreAuthValidator.java | 5 +
.../HeaderPreAuthFederationFilterTest.java | 29 +-
.../provider/federation/PreAuthServiceTest.java | 32 +-
.../gateway/shirorealm/KnoxLdapContextFactory.java | 15 +-
.../shirorealm/KnoxLdapContextFactoryTest.java | 16 +-
gateway-release/home/conf/users.ldif | 32 +
gateway-release/pom.xml | 8 +-
gateway-server/pom.xml | 30 +-
.../org/apache/knox/gateway/GatewayServer.java | 19 +
.../gateway/config/impl/GatewayConfigImpl.java | 44 +-
.../gateway/database/MysqlDataSourceFactory.java | 2 +-
.../gateway/database/OracleDataSourceFactory.java | 2 +-
.../knox/gateway/services/CLIGatewayServices.java | 5 +
.../gateway/services/DefaultGatewayServices.java | 10 +-
.../factory/LDAPRolesLookupServiceFactory.java | 54 +
...ServiceFactory.java => LdapServiceFactory.java} | 41 +-
.../services/factory/TokenStateServiceFactory.java | 25 +-
.../services/ldap/GroupLookupInterceptor.java | 158 -
.../services/ldap/KnoxLDAPServerManager.java | 260 +-
.../gateway/services/ldap/KnoxLDAPService.java | 73 +-
.../knox/gateway/services/ldap/LdapMessages.java | 97 +-
.../knox/gateway/services/ldap/LdapUtils.java | 67 +
.../services/ldap/SchemaManagerFactory.java | 83 +-
.../services/ldap/backend/BackendFactory.java | 23 +-
.../gateway/services/ldap/backend/FileBackend.java | 89 +-
.../services/ldap/backend/FileBackendFactory.java | 14 +-
.../ldap/backend/FilterMappingVisitor.java | 117 +
.../gateway/services/ldap/backend/LdapBackend.java | 40 +-
.../services/ldap/backend/LdapBackendFactory.java | 9 +-
.../services/ldap/backend/LdapProxyBackend.java | 658 +-
.../ldap/backend/LdapProxyBackendFactory.java | 14 +-
.../ldap/backend/RemoteSchemaConverter.java | 218 +
.../ldap/control/RolesLookupBypassControl.java | 9 +-
.../control/RolesLookupBypassControlDecorator.java | 74 +
.../control/RolesLookupBypassControlFactory.java | 68 +
.../ldap/control/RolesLookupBypassControlImpl.java | 28 +-
.../ldap/interceptor/DisabledUserInterceptor.java | 122 +
.../DisabledUserInterceptorFactory.java} | 20 +-
.../DuplicateUserFilteringInterceptor.java | 87 +
.../DuplicateUserFilteringInterceptorFactory.java} | 20 +-
.../ldap/interceptor/InterceptorFactory.java | 60 +
.../interceptor/KnoxLdapInterceptorFactory.java} | 51 +-
.../interceptor/LDAPRolesLookupInterceptor.java | 160 +
.../LDAPRolesLookupInterceptorFactory.java | 50 +
.../ldap/interceptor/UserSearchInterceptor.java | 150 +
.../interceptor/UserSearchInterceptorFactory.java} | 20 +-
.../ldap/roles/DefaultLDAPRolesLookupService.java | 74 +
.../ldap/roles/FileBasedLdapRolesLookup.java | 123 +
.../services/ldap/roles/LdapRolesLookup.java | 27 +-
.../ldap/roles/LdapRolesLookupFactory.java | 52 +
.../ldap/roles/LookupRolesRequest.java} | 39 +-
.../ldap/roles/LookupRolesResponse.java} | 40 +-
.../ldap/roles/RestApiLdapRolesLookup.java | 88 +
.../services/ldap/roles/RoleLookupException.java | 10 +-
.../token/impl/AliasBasedTokenStateService.java | 721 ---
.../token/impl/JournalBasedTokenStateService.java | 221 -
.../token/impl/ZookeeperTokenStateService.java | 185 -
.../java/org/apache/knox/gateway/util/KnoxCLI.java | 211 +-
.../knox/gateway/util/TokenMigrationTool.java | 9 +-
...org.apache.knox.gateway.services.ServiceFactory | 4 +-
....knox.gateway.services.ldap.backend.LdapBackend | 21 -
...ateway.services.ldap.backend.LdapBackendFactory | 5 +-
...ces.ldap.interceptor.KnoxLdapInterceptorFactory | 6 +-
.../src/main/resources/conf/gateway-site.xml | 159 +-
.../org/apache/knox/gateway/GatewayServerTest.java | 45 +-
.../gateway/database/DataSourceProviderTest.java | 23 +-
.../services/AbstractGatewayServicesTest.java | 1 +
.../factory/TokenStateServiceFactoryTest.java | 26 -
.../services/ldap/KnoxLDAPServerManagerTest.java | 396 +-
.../gateway/services/ldap/KnoxLDAPServiceTest.java | 105 +-
.../services/ldap/backend/BackendFactoryTest.java | 47 +-
.../ldap/backend/LdapProxyBackendTest.java | 713 ++-
.../RolesLookupBypassControlDecoratorTest.java | 128 +
.../RolesLookupBypassControlFactoryTest.java | 99 +
.../ConfigurableEntriesTestInterceptor.java | 55 +
.../interceptor/DisabledUserInterceptorTest.java | 142 +
.../DuplicateUserFilteringInterceptorTest.java | 124 +
.../ldap/interceptor/InterceptorTestUtils.java | 37 +-
.../LDAPRolesLookupInterceptorFactoryTest.java | 87 +
.../LDAPRolesLookupInterceptorTest.java | 194 +
.../ldap/roles/FileBasedLdapRolesLookupTest.java | 110 +
.../ldap/roles/RestApiLdapRolesLookupTest.java | 90 +
.../impl/AliasBasedTokenStateServiceTest.java | 943 ---
.../impl/JournalBasedTokenStateServiceTest.java | 331 -
.../token/impl/ZookeeperTokenStateServiceTest.java | 242 -
.../simple/ProviderConfigurationParserTest.java | 12 +-
.../topology/xml/TopologyRulesModuleTest.java | 4 +-
.../org/apache/knox/gateway/util/KnoxCLITest.java | 255 +
.../test/resources/ldap-proxy-backend-test.ldif | 19 +
.../src/test/resources/ldap-recursive-test.ldif | 181 +
.../topology-with-dispatch-parameters.xml | 2 +-
.../topology-with-dispatch.xml | 2 +-
.../gateway/service/auth/AbstractAuthResource.java | 37 +-
.../knox/gateway/service/auth/AuthMessages.java | 4 +
.../gateway/service/auth/ExtAuthzResourceTest.java | 41 +
.../gateway/service/auth/PreAuthResourceTest.java | 52 +-
.../services/elasticsearch/1.0.0/service.xml | 2 +-
.../gateway/service/knoxtoken/TokenResource.java | 41 +-
.../gateway/service/knoxtoken/ActorChainTest.java | 154 +
.../service/metadata/GeneralProxyInformation.java | 66 +
.../service/metadata/KnoxMetadataResource.java | 100 +-
.../org/apache/knox/gateway/GatewayTestConfig.java | 47 +-
.../apache/knox/gateway/config/GatewayConfig.java | 53 +-
.../config/GatewayConfigChangeListener.java | 6 +-
.../knox/gateway/security/ActorChainPrincipal.java | 85 +
.../gateway/security/ActorChainPrincipalImpl.java | 95 +
.../apache/knox/gateway/security/SubjectUtils.java | 21 +
.../gateway/security/TokenExchangePrincipal.java | 122 +
.../security/TokenExchangePrincipalImpl.java | 108 +
.../security/principal/SimplePrincipalMapper.java | 2 -
.../apache/knox/gateway/services/ServiceType.java | 1 +
.../LDAPRolesLookupService.java} | 21 +-
.../knox/gateway/services/ldap/RoleAssignment.java | 60 +-
.../ldap/model/constants/SchemaConstants.java | 16 +-
.../services/security/token/JWTokenAttributes.java | 39 +-
.../security/token/JWTokenAttributesBuilder.java | 34 +-
.../services/security/token/TokenUtils.java | 132 +-
.../services/security/token/impl/JWTToken.java | 16 +-
.../services/security/token/TokenUtilsTest.java | 244 +
.../hadoop/xml/HadoopXmlResourceParserTest.java | 2 +-
.../src/test/resources/testDelete.xml | 2 +-
.../src/test/resources/testDescriptor.xml | 2 +-
.../general.proxy.information.component.html | 2 +-
.../general.proxy.information.component.ts | 7 +
.../home/app/model/general.proxy.information.ts | 1 +
knox-site/docs/book_service-details.md | 4 +-
knox-site/docs/config_knox_token.md | 29 +-
knox-site/docs/config_preauth_sso_provider.md | 113 +-
knox-site/docs/knox_cli.md | 40 +-
knox-site/docs/service_ldap_server.md | 386 ++
knox-site/mkdocs.yml | 1 +
.../session.information.component.html | 1 -
.../session.information.component.html | 1 -
knox-webshell-ui/angular.json | 44 +-
.../eslint.config.js | 5 +-
knox-webshell-ui/package.json | 42 +-
knox-webshell-ui/pom.xml | 17 +-
knox-webshell-ui/tsconfig.app.json | 11 -
knox-webshell-ui/tsconfig.json | 18 -
knox-webshell-ui/webshell-ui/app/app.component.ts | 37 +-
knox-webshell-ui/webshell-ui/app/app.module.ts | 32 -
.../webshell-ui/environments/environment.ts | 13 -
knox-webshell-ui/webshell-ui/main.ts | 22 +-
knox-webshell-ui/webshell-ui/polyfills.ts | 67 +-
knox-webshell-ui/webshell-ui/styles.css | 6 +
.../webshell-ui}/tsconfig.json | 2 +-
pom.xml | 81 +-
335 files changed, 12318 insertions(+), 14568 deletions(-)
copy
gateway-provider-rewrite-step-secure-query/src/main/resources/META-INF/services/org.apache.knox.gateway.filter.rewrite.api.UrlRewriteStepDescriptor
=> .dockerignore (71%)
create mode 100644 .github/workflows/build/conf/topologies/k8sauth.xml
create mode 100644 .github/workflows/compose/k8s/manifests/test-sa.yaml
create mode 100644
.github/workflows/tests/test_k8s_serviceaccount_validation.py
rename .github/workflows/tests/{test_knox_auth_service_and_LDAP.py =>
test_knox_auth_service_and_ldap.py} (58%)
create mode 100644 .github/workflows/tests/test_knox_ldap_proxy_search.py
delete mode 100644 gateway-adapter/pom.xml
delete mode 100644
gateway-adapter/src/main/java/org/apache/hadoop/gateway/audit/log4j/layout/AuditLayout.java
delete mode 100644
gateway-adapter/src/main/java/org/apache/hadoop/gateway/dispatch/DefaultDispatch.java
delete mode 100644
gateway-adapter/src/main/java/org/apache/hadoop/gateway/dispatch/NiFiDispatch.java
delete mode 100644
gateway-adapter/src/main/java/org/apache/hadoop/gateway/dispatch/NiFiHaDispatch.java
delete mode 100644
gateway-adapter/src/main/java/org/apache/hadoop/gateway/dispatch/PassAllHeadersDispatch.java
delete mode 100644
gateway-adapter/src/main/java/org/apache/hadoop/gateway/dispatch/PassAllHeadersNoEncodingDispatch.java
delete mode 100644
gateway-adapter/src/main/java/org/apache/hadoop/gateway/hadoopauth/filter/HadoopAuthFilter.java
delete mode 100644
gateway-adapter/src/main/java/org/apache/hadoop/gateway/hbase/HBaseDispatch.java
delete mode 100644
gateway-adapter/src/main/java/org/apache/hadoop/gateway/hdfs/dispatch/HdfsHttpClientDispatch.java
delete mode 100644
gateway-adapter/src/main/java/org/apache/hadoop/gateway/hdfs/dispatch/WebHdfsHaDispatch.java
delete mode 100644
gateway-adapter/src/main/java/org/apache/hadoop/gateway/hive/HiveDispatch.java
delete mode 100644
gateway-adapter/src/main/java/org/apache/hadoop/gateway/hive/HiveHaDispatch.java
delete mode 100644
gateway-adapter/src/main/java/org/apache/hadoop/gateway/provider/federation/jwt/filter/JWTFederationFilter.java
delete mode 100644
gateway-adapter/src/main/java/org/apache/hadoop/gateway/provider/federation/jwt/filter/SSOCookieFederationFilter.java
delete mode 100644
gateway-adapter/src/main/java/org/apache/hadoop/gateway/rm/dispatch/RMHaDispatch.java
delete mode 100644
gateway-adapter/src/main/java/org/apache/hadoop/gateway/rm/dispatch/RMUIHaDispatch.java
delete mode 100644
gateway-adapter/src/main/java/org/apache/hadoop/gateway/shirorealm/KnoxLdapContextFactory.java
delete mode 100644
gateway-adapter/src/main/java/org/apache/hadoop/gateway/shirorealm/KnoxLdapRealm.java
delete mode 100644
gateway-adapter/src/main/java/org/apache/hadoop/gateway/shirorealm/KnoxPamRealm.java
delete mode 100644
gateway-adapter/src/main/java/org/apache/hadoop/gateway/storm/StormDispatch.java
delete mode 100644
gateway-adapter/src/main/java/org/apache/hadoop/gateway/topology/Service.java
delete mode 100644
gateway-adapter/src/main/java/org/apache/hadoop/gateway/topology/Topology.java
delete mode 100644
gateway-adapter/src/main/java/org/apache/hadoop/gateway/util/RegExUtils.java
delete mode 100644 gateway-adapter/src/main/resources/META-INF/launcher.cfg
delete mode 100644
gateway-adapter/src/test/java/org/apache/hadoop/gateway/shirorealm/KnoxLdapRealmTest.java
delete mode 100644
gateway-adapter/src/test/java/org/apache/hadoop/gateway/shirorealm/KnoxPamRealmTest.java
delete mode 100644 gateway-admin-ui/.eslintrc.json
delete mode 100644 gateway-admin-ui/admin-ui/app/app.component.spec.ts
delete mode 100644 gateway-admin-ui/admin-ui/app/app.module.ts
delete mode 100644
gateway-admin-ui/admin-ui/app/descriptor/descriptor.component.css
delete mode 100644
gateway-admin-ui/admin-ui/app/descriptor/descriptor.component.html
delete mode 100644
gateway-admin-ui/admin-ui/app/descriptor/descriptor.component.spec.ts
create mode 100644
gateway-admin-ui/admin-ui/app/gateway-version/gateway-version.component.css
create mode 100644
gateway-admin-ui/admin-ui/app/gateway-version/gateway-version.component.html
rename gateway-admin-ui/admin-ui/app/{ =>
gateway-version}/gateway-version.component.ts (76%)
delete mode 100644 gateway-admin-ui/admin-ui/app/index.ts
delete mode 100644 gateway-admin-ui/admin-ui/app/main.ts
rename gateway-admin-ui/admin-ui/app/{resource-detail => model}/descriptor.ts
(98%)
rename gateway-admin-ui/admin-ui/app/{ => model}/gateway-version.ts (100%)
rename gateway-admin-ui/admin-ui/app/{resource-detail =>
model}/provider-config.ts (100%)
rename gateway-admin-ui/admin-ui/app/{resource => model}/resource.ts (95%)
rename gateway-admin-ui/admin-ui/app/{resource => model}/service.ts (100%)
rename gateway-admin-ui/admin-ui/app/{service-definition =>
model}/servicedefinition.ts (89%)
rename
gateway-admin-ui/admin-ui/app/{sessionInformation/session.information.ts =>
model/session-information.ts} (91%)
rename gateway-admin-ui/admin-ui/app/{ => model}/topology.ts (100%)
delete mode 100644
gateway-admin-ui/admin-ui/app/new-desc-wizard/new-desc-wizard.component.spec.ts
delete mode 100644
gateway-admin-ui/admin-ui/app/provider-config-selector/provider-config-selector.component.spec.ts
delete mode 100644
gateway-admin-ui/admin-ui/app/provider-config-wizard/provider-config-wizard.component.spec.ts
delete mode 100644
gateway-admin-ui/admin-ui/app/resource-detail/resource-detail.component.spec.ts
delete mode 100644
gateway-admin-ui/admin-ui/app/resource/resource.component.spec.ts
delete mode 100644
gateway-admin-ui/admin-ui/app/resourcetypes/resourcetypes.component.spec.ts
delete mode 100644
gateway-admin-ui/admin-ui/app/service-definition/rewrite.rules.ts
create mode 100644
gateway-admin-ui/admin-ui/app/service-definition/servicedefinition-detail.component.css
create mode 100644
gateway-admin-ui/admin-ui/app/service-definition/servicedefinition-detail.component.html
rename gateway-admin-ui/admin-ui/app/{ => service}/gateway-version.service.ts
(77%)
rename gateway-admin-ui/admin-ui/app/{resource => service}/resource.service.ts
(80%)
rename gateway-admin-ui/admin-ui/app/{resourcetypes =>
service}/resourcetypes.service.ts (95%)
rename gateway-admin-ui/admin-ui/app/{service-definition =>
service}/servicedefinition.service.ts (53%)
rename gateway-admin-ui/admin-ui/app/{sessionInformation =>
service}/session.information.service.ts (83%)
rename gateway-admin-ui/admin-ui/app/{ => service}/topology.service.ts (67%)
rename gateway-admin-ui/admin-ui/app/{sessionInformation =>
session-information}/session.information.component.html (100%)
rename gateway-admin-ui/admin-ui/app/{sessionInformation =>
session-information}/session.information.component.ts (91%)
delete mode 100644 gateway-admin-ui/admin-ui/app/topology-detail.component.ts
create mode 100644
gateway-admin-ui/admin-ui/app/topology-detail/topology-detail.component.css
create mode 100644
gateway-admin-ui/admin-ui/app/topology-detail/topology-detail.component.html
create mode 100644
gateway-admin-ui/admin-ui/app/topology-detail/topology-detail.component.ts
create mode 100644
gateway-admin-ui/admin-ui/app/topology/topology.component.html
rename gateway-admin-ui/admin-ui/app/{ => topology}/topology.component.ts (60%)
create mode 100644 gateway-admin-ui/admin-ui/app/utils/modal.component.html
rename gateway-admin-ui/admin-ui/app/{descriptor/descriptor.component.ts =>
utils/modal.component.ts} (61%)
create mode 100644 gateway-admin-ui/admin-ui/app/utils/tab.component.css
create mode 100644 gateway-admin-ui/admin-ui/app/utils/tab.component.html
create mode 100644 gateway-admin-ui/admin-ui/app/utils/tabs.component.html
delete mode 100644 gateway-admin-ui/admin-ui/assets/sticky-footer.css
rename gateway-admin-ui/admin-ui/{app/service-definition/rewrite.rule.ts =>
material-theme.scss} (86%)
delete mode 100644 gateway-admin-ui/admin-ui/styles.css
create mode 100644 gateway-admin-ui/admin-ui/styles.scss
delete mode 100644 gateway-admin-ui/admin-ui/typings.d.ts
copy {knox-token-management-ui => gateway-admin-ui}/eslint.config.js (90%)
create mode 100644
gateway-applications/src/main/resources/applications/knoxauth/app/styles/bootstrap-icons.min.css
create mode 100644
gateway-applications/src/main/resources/applications/knoxauth/app/styles/fonts/bootstrap-icons.woff
create mode 100644
gateway-applications/src/main/resources/applications/knoxauth/app/styles/fonts/bootstrap-icons.woff2
copy {gateway-provider-identity-assertion-pseudo =>
gateway-provider-security-k8s}/pom.xml (71%)
copy
gateway-util-common/src/main/java/org/apache/knox/gateway/plang/SyntaxException.java
=>
gateway-provider-security-k8s/src/main/java/org/apache/knox/gateway/preauth/k8s/K8sLookupException.java
(82%)
create mode 100644
gateway-provider-security-k8s/src/main/java/org/apache/knox/gateway/preauth/k8s/K8sPreAuthMessages.java
create mode 100644
gateway-provider-security-k8s/src/main/java/org/apache/knox/gateway/preauth/k8s/K8sServiceAccountResolver.java
create mode 100644
gateway-provider-security-k8s/src/main/java/org/apache/knox/gateway/preauth/k8s/ServiceAccountValidator.java
create mode 100644
gateway-provider-security-k8s/src/main/java/org/apache/knox/gateway/preauth/k8s/SpiffeId.java
copy
gateway-i18n/src/test/resources/org/apache/knox/gateway/i18n/resources/ResourcesLocaleSubject_en.properties
=>
gateway-provider-security-k8s/src/main/resources/META-INF/services/org.apache.knox.gateway.preauth.filter.PreAuthValidator
(93%)
create mode 100644
gateway-provider-security-k8s/src/test/java/org/apache/knox/gateway/preauth/k8s/K8sServiceAccountResolverTest.java
create mode 100644
gateway-provider-security-k8s/src/test/java/org/apache/knox/gateway/preauth/k8s/ServiceAccountValidatorTest.java
create mode 100644
gateway-provider-security-k8s/src/test/java/org/apache/knox/gateway/preauth/k8s/SpiffeIdTest.java
create mode 100644
gateway-server/src/main/java/org/apache/knox/gateway/services/factory/LDAPRolesLookupServiceFactory.java
copy
gateway-server/src/main/java/org/apache/knox/gateway/services/factory/{ServiceRegistryServiceFactory.java
=> LdapServiceFactory.java} (53%)
delete mode 100644
gateway-server/src/main/java/org/apache/knox/gateway/services/ldap/GroupLookupInterceptor.java
create mode 100644
gateway-server/src/main/java/org/apache/knox/gateway/services/ldap/LdapUtils.java
copy
gateway-performance-test/src/main/java/org/apache/knox/gateway/performance/test/reporting/ReportEngine.java
=>
gateway-server/src/main/java/org/apache/knox/gateway/services/ldap/backend/FileBackendFactory.java
(69%)
create mode 100644
gateway-server/src/main/java/org/apache/knox/gateway/services/ldap/backend/FilterMappingVisitor.java
copy
gateway-performance-test/src/main/java/org/apache/knox/gateway/performance/test/reporting/ReportEngine.java
=>
gateway-server/src/main/java/org/apache/knox/gateway/services/ldap/backend/LdapBackendFactory.java
(80%)
copy
gateway-performance-test/src/main/java/org/apache/knox/gateway/performance/test/reporting/ReportEngine.java
=>
gateway-server/src/main/java/org/apache/knox/gateway/services/ldap/backend/LdapProxyBackendFactory.java
(69%)
create mode 100644
gateway-server/src/main/java/org/apache/knox/gateway/services/ldap/backend/RemoteSchemaConverter.java
copy
gateway-i18n/src/main/java/org/apache/knox/gateway/i18n/messages/MessageLoggerFactory.java
=>
gateway-server/src/main/java/org/apache/knox/gateway/services/ldap/control/RolesLookupBypassControl.java
(75%)
create mode 100644
gateway-server/src/main/java/org/apache/knox/gateway/services/ldap/control/RolesLookupBypassControlDecorator.java
create mode 100644
gateway-server/src/main/java/org/apache/knox/gateway/services/ldap/control/RolesLookupBypassControlFactory.java
copy
gateway-service-knoxtoken/src/main/java/org/apache/knox/gateway/service/knoxtoken/deploy/APIKeyServiceDeploymentContributor.java
=>
gateway-server/src/main/java/org/apache/knox/gateway/services/ldap/control/RolesLookupBypassControlImpl.java
(56%)
create mode 100644
gateway-server/src/main/java/org/apache/knox/gateway/services/ldap/interceptor/DisabledUserInterceptor.java
copy
gateway-server/src/{test/java/org/apache/knox/gateway/topology/discovery/test/extension/PropertiesFileServiceDiscoveryType.java
=>
main/java/org/apache/knox/gateway/services/ldap/interceptor/DisabledUserInterceptorFactory.java}
(66%)
create mode 100644
gateway-server/src/main/java/org/apache/knox/gateway/services/ldap/interceptor/DuplicateUserFilteringInterceptor.java
copy
gateway-server/src/{test/java/org/apache/knox/gateway/topology/discovery/test/extension/PropertiesFileServiceDiscoveryType.java
=>
main/java/org/apache/knox/gateway/services/ldap/interceptor/DuplicateUserFilteringInterceptorFactory.java}
(65%)
create mode 100644
gateway-server/src/main/java/org/apache/knox/gateway/services/ldap/interceptor/InterceptorFactory.java
copy
gateway-server/src/main/java/org/apache/knox/gateway/services/{DefaultServerInfoService.java
=> ldap/interceptor/KnoxLdapInterceptorFactory.java} (53%)
create mode 100644
gateway-server/src/main/java/org/apache/knox/gateway/services/ldap/interceptor/LDAPRolesLookupInterceptor.java
create mode 100644
gateway-server/src/main/java/org/apache/knox/gateway/services/ldap/interceptor/LDAPRolesLookupInterceptorFactory.java
create mode 100644
gateway-server/src/main/java/org/apache/knox/gateway/services/ldap/interceptor/UserSearchInterceptor.java
copy
gateway-server/src/{test/java/org/apache/knox/gateway/topology/discovery/test/extension/PropertiesFileServiceDiscoveryType.java
=>
main/java/org/apache/knox/gateway/services/ldap/interceptor/UserSearchInterceptorFactory.java}
(65%)
create mode 100644
gateway-server/src/main/java/org/apache/knox/gateway/services/ldap/roles/DefaultLDAPRolesLookupService.java
create mode 100644
gateway-server/src/main/java/org/apache/knox/gateway/services/ldap/roles/FileBasedLdapRolesLookup.java
copy
gateway-spi/src/main/java/org/apache/knox/gateway/services/GatewayServices.java
=>
gateway-server/src/main/java/org/apache/knox/gateway/services/ldap/roles/LdapRolesLookup.java
(57%)
create mode 100644
gateway-server/src/main/java/org/apache/knox/gateway/services/ldap/roles/LdapRolesLookupFactory.java
copy
gateway-server/src/main/java/org/apache/knox/gateway/{model/ProviderConfiguration.java
=> services/ldap/roles/LookupRolesRequest.java} (57%)
copy
gateway-server/src/main/java/org/apache/knox/gateway/{model/ProviderConfiguration.java
=> services/ldap/roles/LookupRolesResponse.java} (54%)
create mode 100644
gateway-server/src/main/java/org/apache/knox/gateway/services/ldap/roles/RestApiLdapRolesLookup.java
copy
gateway-discovery-cm/src/main/java/org/apache/knox/gateway/topology/discovery/cm/ServiceDiscoveryException.java
=>
gateway-server/src/main/java/org/apache/knox/gateway/services/ldap/roles/RoleLookupException.java
(77%)
delete mode 100644
gateway-server/src/main/java/org/apache/knox/gateway/services/token/impl/AliasBasedTokenStateService.java
delete mode 100644
gateway-server/src/main/java/org/apache/knox/gateway/services/token/impl/JournalBasedTokenStateService.java
delete mode 100644
gateway-server/src/main/java/org/apache/knox/gateway/services/token/impl/ZookeeperTokenStateService.java
delete mode 100644
gateway-server/src/main/resources/META-INF/services/org.apache.knox.gateway.services.ldap.backend.LdapBackend
copy
gateway-release/src/main/resources/META-INF/services/org.apache.knox.gateway.services.GatewayServices
=>
gateway-server/src/main/resources/META-INF/services/org.apache.knox.gateway.services.ldap.backend.LdapBackendFactory
(83%)
copy
gateway-discovery-ambari/src/main/resources/META-INF/services/org.apache.knox.gateway.topology.discovery.ServiceDiscoveryType
=>
gateway-server/src/main/resources/META-INF/services/org.apache.knox.gateway.services.ldap.interceptor.KnoxLdapInterceptorFactory
(70%)
create mode 100644
gateway-server/src/test/java/org/apache/knox/gateway/services/ldap/control/RolesLookupBypassControlDecoratorTest.java
create mode 100644
gateway-server/src/test/java/org/apache/knox/gateway/services/ldap/control/RolesLookupBypassControlFactoryTest.java
create mode 100644
gateway-server/src/test/java/org/apache/knox/gateway/services/ldap/interceptor/ConfigurableEntriesTestInterceptor.java
create mode 100644
gateway-server/src/test/java/org/apache/knox/gateway/services/ldap/interceptor/DisabledUserInterceptorTest.java
create mode 100644
gateway-server/src/test/java/org/apache/knox/gateway/services/ldap/interceptor/DuplicateUserFilteringInterceptorTest.java
copy
gateway-provider-security-preauth/src/test/java/org/apache/knox/gateway/provider/federation/DefaultValidatorTest.java
=>
gateway-server/src/test/java/org/apache/knox/gateway/services/ldap/interceptor/InterceptorTestUtils.java
(52%)
create mode 100644
gateway-server/src/test/java/org/apache/knox/gateway/services/ldap/interceptor/LDAPRolesLookupInterceptorFactoryTest.java
create mode 100644
gateway-server/src/test/java/org/apache/knox/gateway/services/ldap/interceptor/LDAPRolesLookupInterceptorTest.java
create mode 100644
gateway-server/src/test/java/org/apache/knox/gateway/services/ldap/roles/FileBasedLdapRolesLookupTest.java
create mode 100644
gateway-server/src/test/java/org/apache/knox/gateway/services/ldap/roles/RestApiLdapRolesLookupTest.java
delete mode 100644
gateway-server/src/test/java/org/apache/knox/gateway/services/token/impl/AliasBasedTokenStateServiceTest.java
delete mode 100644
gateway-server/src/test/java/org/apache/knox/gateway/services/token/impl/JournalBasedTokenStateServiceTest.java
delete mode 100644
gateway-server/src/test/java/org/apache/knox/gateway/services/token/impl/ZookeeperTokenStateServiceTest.java
create mode 100644 gateway-server/src/test/resources/ldap-recursive-test.ldif
create mode 100644
gateway-service-knoxtoken/src/test/java/org/apache/knox/gateway/service/knoxtoken/ActorChainTest.java
copy
gateway-util-configinjector/src/main/java/org/apache/knox/gateway/config/ConfigurationBinding.java
=>
gateway-spi/src/main/java/org/apache/knox/gateway/config/GatewayConfigChangeListener.java
(89%)
mode change 100755 => 100644
create mode 100644
gateway-spi/src/main/java/org/apache/knox/gateway/security/ActorChainPrincipal.java
create mode 100644
gateway-spi/src/main/java/org/apache/knox/gateway/security/ActorChainPrincipalImpl.java
create mode 100644
gateway-spi/src/main/java/org/apache/knox/gateway/security/TokenExchangePrincipal.java
create mode 100644
gateway-spi/src/main/java/org/apache/knox/gateway/security/TokenExchangePrincipalImpl.java
copy
gateway-spi/src/main/java/org/apache/knox/gateway/services/{knoxidf/federation/FederatedIdentityService.java
=> ldap/LDAPRolesLookupService.java} (64%)
copy
gateway-server/src/main/java/org/apache/knox/gateway/model/ProviderConfiguration.java
=>
gateway-spi/src/main/java/org/apache/knox/gateway/services/ldap/RoleAssignment.java
(51%)
copy
gateway-server/src/main/java/org/apache/knox/gateway/webshell/WebshellData.java
=>
gateway-spi/src/main/java/org/apache/knox/gateway/services/ldap/model/constants/SchemaConstants.java
(67%)
create mode 100644
gateway-spi/src/test/java/org/apache/knox/gateway/services/security/token/TokenUtilsTest.java
create mode 100644 knox-site/docs/service_ldap_server.md
copy {knox-homepage-ui => knox-webshell-ui}/eslint.config.js (93%)
delete mode 100644 knox-webshell-ui/tsconfig.app.json
delete mode 100644 knox-webshell-ui/tsconfig.json
delete mode 100644 knox-webshell-ui/webshell-ui/app/app.module.ts
copy {knox-homepage-ui/home => knox-webshell-ui/webshell-ui}/tsconfig.json
(91%)