apache / apache/pulsar-manager

After Pulsar-cluster enabling TLS, pulsar manager cannot add environment

Open
#545 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Vue
Stars
539
Forks
239
PR merge metrics
No merged PRs in 30d

Description

**Describe the bug**
When I enable TLS, I am unable to add a new pulsar cluster environment in pulsar manager。

**To Reproduce**
Steps to reproduce the behavior:
1.Deploying a pulsar cluster using pulsar-helm-chart 3.2.0(pulsar image 3.1.2) in Kubernetes(Offline environment)
2. Enable jwt and tls. pulsar-manager token use `pulsar-token-admin` 。
3. Create a new environment in pulse manager
4. `Service URL` : `https://pulsar-proxy:443`
5. `Bookie URL` : `https://pulsar-proxy:6651`
6. See error `Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Handler dispatch failed; nested exception is java.lang.NoClassDefFoundError: Could not initialize class org.apache.pulsar.common.util.SecurityUtility] with root cause`

**Expected behavior**
Creating a new environment normally in pulsar manager.

**Screenshots**
```java
Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Handler dispatch failed; nested exception is java.lang.NoClassDefFoundError: Could not initialize class org.apache.pulsar.common.util.SecurityUtility] with root cause

java.lang.NoClassDefFoundError: Could not initialize class org.apache.pulsar.common.util.SecurityUtility
at org.apache.pulsar.client.admin.internal.http.AsyncHttpConnector.(AsyncHttpConnector.java:152) ~[pulsar-client-admin-original-2.7.0.jar:2.7.0]
at org.apache.pulsar.client.admin.internal.http.AsyncHttpConnectorProvider.getConnector(AsyncHttpConnectorProvider.java:50) ~[pulsar-client-admin-original-2.7.0.jar:2.7.0]
at org.apache.pulsar.client.admin.PulsarAdmin.(PulsarAdmin.java:200) ~[pulsar-client-admin-original-2.7.0.jar:2.7.0]
at org.apache.pulsar.client.admin.internal.PulsarAdminBuilderImpl.build(PulsarAdminBuilderImpl.java:46) ~[pulsar-client-admin-original-2.7.0.jar:2.7.0]
at org.apache.pulsar.manager.service.impl.PulsarAdminServiceImpl.createPulsarAdmin(PulsarAdminServiceImpl.java:146) ~[pulsar-manager.jar:na]
at org.apache.pulsar.manager.service.impl.PulsarAdminServiceImpl.getPulsarAdmin(PulsarAdminServiceImpl.java:73) ~[pulsar-manager.jar:na]
at org.apache.pulsar.manager.service.impl.PulsarAdminServiceImpl.clusters(PulsarAdminServiceImpl.java:83) ~[pulsar-manager.jar:na]
at org.apache.pulsar.manager.controller.EnvironmentsController.addEnvironment(EnvironmentsController.java:124) ~[pulsar-manager.jar:na]
at org.apache.pulsar.manager.controller.EnvironmentsController$$FastClassBySpringCGLIB$$8f0ec792.invoke() ~[pulsar-manager.jar:na]
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204) ~[spring-core-5.0.6.RELEASE.jar:5.0.6.RELEASE]
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:746) ~[spring-aop-5.0.6.RELEASE.jar:5.0.6.RELEASE]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[spring-aop-5.0.6.RELEASE.jar:5.0.6.RELEASE]
at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:112) ~[spring-context-5.0.6.RELEASE.jar:5.0.6.RELEASE]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185) ~[spring-aop-5.0.6.RELEASE.jar:5.0.6.RELEASE]
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:688) ~[spring-aop-5.0.6.RELEASE.jar:5.0.6.RELEASE]
at org.apache.pulsar.manager.controller.EnvironmentsController$$EnhancerBySpringCGLIB$$1744d598.addEnvironment() ~[pulsar-manager.jar:na]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_312]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_312]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_312]
at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_312]
```

**Desktop (please complete the following information):**
- OS: Rocky 8.8
- K8S:v1.28.4
- Helm:3.13.3
- Chart:pulsar-helm-chart-pulsar-3.2.0
- Image:pulsar 3.1.2 pulsar-manager 0.3.0

**Additional context**
```yaml
tls:
enabled: true
ca_suffix: ca-tls
common:
duration: 26280h
renewBefore: 360h
organization:
- pulsar
keySize: 4096
keyAlgorithm: RSA
keyEncoding: PKCS8
proxy:
enabled: true
cert_name: tls-proxy
broker:
enabled: true
cert_name: tls-broker
bookie:
enabled: true
cert_name: tls-bookie
zookeeper:
enabled: true
cert_name: tls-zookeeper
autorecovery:
cert_name: tls-recovery
toolset:
cert_name: tls-toolset
function_instance:
enabled: false

auth:
authentication:
enabled: true
provider: "jwt"
jwt:
usingSecretKey: false
authorization:
enabled: true
superUsers:
broker: "broker-admin"
proxy: "proxy-admin"
client: "admin"
useProxyRoles: true

certs:
internal_issuer:
enabled: true
type: selfsigning
```
@lhotari @jeantil @sijie

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.