From f377c199d531128eaf70c0efa3a6e120f70dbbc7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E7=BF=8A=20SionYang?= <263976490@qq.com> Date: Fri, 31 Jul 2020 14:53:12 +0800 Subject: [PATCH] [ISSUE#3091] Fix address server can't start up by implement an empty auth manager. (#3456) * Fix #3091 by empty auth manager. * Fix #3091 by empty auth manager. * Use conditional to solve bean conflict --- .../auth/AddressServerAuthManager.java | 43 +++++++++++++++++++ .../AddressServerSpringConfiguration.java | 38 ++++++++++++++++ 2 files changed, 81 insertions(+) create mode 100644 address/src/main/java/com/alibaba/nacos/address/auth/AddressServerAuthManager.java create mode 100644 address/src/main/java/com/alibaba/nacos/address/configuration/AddressServerSpringConfiguration.java diff --git a/address/src/main/java/com/alibaba/nacos/address/auth/AddressServerAuthManager.java b/address/src/main/java/com/alibaba/nacos/address/auth/AddressServerAuthManager.java new file mode 100644 index 000000000..fb7c08b98 --- /dev/null +++ b/address/src/main/java/com/alibaba/nacos/address/auth/AddressServerAuthManager.java @@ -0,0 +1,43 @@ +/* + * Copyright 1999-2018 Alibaba Group Holding Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.alibaba.nacos.address.auth; + +import com.alibaba.nacos.core.auth.AccessException; +import com.alibaba.nacos.core.auth.AuthManager; +import com.alibaba.nacos.core.auth.Permission; +import com.alibaba.nacos.core.auth.User; + +/** + * Address server auth manager. + * + *

For #3091, Only implement an empty auth manager so that address server can startup.

+ * + * @author xiweng.yy + */ +public class AddressServerAuthManager implements AuthManager { + + @Override + public User login(Object request) throws AccessException { + User result = new User(); + result.setUserName("nacos"); + return result; + } + + @Override + public void auth(Permission permission, User user) throws AccessException { + } +} diff --git a/address/src/main/java/com/alibaba/nacos/address/configuration/AddressServerSpringConfiguration.java b/address/src/main/java/com/alibaba/nacos/address/configuration/AddressServerSpringConfiguration.java new file mode 100644 index 000000000..bd822b1ce --- /dev/null +++ b/address/src/main/java/com/alibaba/nacos/address/configuration/AddressServerSpringConfiguration.java @@ -0,0 +1,38 @@ +/* + * Copyright 1999-2018 Alibaba Group Holding Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.alibaba.nacos.address.configuration; + +import com.alibaba.nacos.address.auth.AddressServerAuthManager; +import com.alibaba.nacos.core.auth.AuthManager; +import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +/** + * Address server spring configuration. + * + * @author xiweng.yy + */ +@Configuration +public class AddressServerSpringConfiguration { + + @Bean + @ConditionalOnMissingBean(value = AuthManager.class) + public AuthManager getAuthManager() { + return new AddressServerAuthManager(); + } +}