diff --git a/admin-web/src/components/Product/ProductSkuAddOrUpdateTable.js b/admin-web/src/components/Product/ProductSkuAddOrUpdateTable.js
index 8e9452b92..c383785ea 100644
--- a/admin-web/src/components/Product/ProductSkuAddOrUpdateTable.js
+++ b/admin-web/src/components/Product/ProductSkuAddOrUpdateTable.js
@@ -78,8 +78,8 @@ export default class ProductSkuAddOrUpdateTable extends PureComponent {
return ;
}
});
- return
;
+ return ;
// return ;
}
-}
\ No newline at end of file
+}
diff --git a/admin-web/src/pages/Product/ProductSpuAddOrUpdate.js b/admin-web/src/pages/Product/ProductSpuAddOrUpdate.js
index f0910898a..2e464d9fb 100644
--- a/admin-web/src/pages/Product/ProductSpuAddOrUpdate.js
+++ b/admin-web/src/pages/Product/ProductSpuAddOrUpdate.js
@@ -239,12 +239,6 @@ class ProductSpuAddOrUpdate extends Component {
initialValue: '', // TODO 修改
})()}
-
- {form.getFieldDecorator('description', {
- rules: [{ required: true, message: '请输入商品描述!' }],
- initialValue: '', // TODO 修改
- })()}
-
{form.getFieldDecorator('cid', {
rules: [{ required: true, message: '请输入分类编号!' }],
@@ -279,7 +273,12 @@ class ProductSpuAddOrUpdate extends Component {
{/**/}
-
+
+
+ {form.getFieldDecorator('description', {
+ rules: [{ required: true, message: '请输入商品描述!' }],
+ initialValue: '', // TODO 修改
+ })()}
diff --git a/admin/admin-application/pom.xml b/admin/admin-application/pom.xml
index 16dbb54e3..061cc411d 100644
--- a/admin/admin-application/pom.xml
+++ b/admin/admin-application/pom.xml
@@ -75,6 +75,11 @@
spring-boot-starter-actuator
+
+ com.qiniu
+ qiniu-java-sdk
+
+
diff --git a/admin/admin-application/src/main/java/cn/iocoder/mall/admin/application/config/MVCConfiguration.java b/admin/admin-application/src/main/java/cn/iocoder/mall/admin/application/config/MVCConfiguration.java
index b4f199ad4..163052c88 100644
--- a/admin/admin-application/src/main/java/cn/iocoder/mall/admin/application/config/MVCConfiguration.java
+++ b/admin/admin-application/src/main/java/cn/iocoder/mall/admin/application/config/MVCConfiguration.java
@@ -5,11 +5,17 @@ import cn.iocoder.common.framework.servlet.CorsFilter;
import cn.iocoder.mall.admin.sdk.interceptor.AdminAccessLogInterceptor;
import cn.iocoder.mall.admin.sdk.interceptor.AdminSecurityInterceptor;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
-import org.springframework.web.servlet.config.annotation.*;
+import org.springframework.web.servlet.config.annotation.EnableWebMvc;
+import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
+import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
+
+import java.util.Set;
@EnableWebMvc
@Configuration
@@ -24,13 +30,15 @@ public class MVCConfiguration implements WebMvcConfigurer {
private AdminSecurityInterceptor adminSecurityInterceptor;
@Autowired
private AdminAccessLogInterceptor adminAccessLogInterceptor;
-//
+
+ @Value("${auth.ignore-urls}")
+ private Set ignoreUrls;
+
@Override
public void addInterceptors(InterceptorRegistry registry) {
// registry.addInterceptor(securityInterceptor).addPathPatterns("/user/**", "/admin/**"); // 只拦截我们定义的接口
registry.addInterceptor(adminAccessLogInterceptor).addPathPatterns("/admins/**");
- registry.addInterceptor(adminSecurityInterceptor).addPathPatterns("/admins/**")
- .excludePathPatterns("/admins/passport/login"); // 排除登陆接口
+ registry.addInterceptor(adminSecurityInterceptor.setIgnoreUrls(ignoreUrls)).addPathPatterns("/admins/**");
}
@Override
diff --git a/admin/admin-application/src/main/java/cn/iocoder/mall/admin/application/config/QiniuConfiguration.java b/admin/admin-application/src/main/java/cn/iocoder/mall/admin/application/config/QiniuConfiguration.java
new file mode 100644
index 000000000..f01bf37f7
--- /dev/null
+++ b/admin/admin-application/src/main/java/cn/iocoder/mall/admin/application/config/QiniuConfiguration.java
@@ -0,0 +1,21 @@
+package cn.iocoder.mall.admin.application.config;
+
+import com.qiniu.util.Auth;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+@Configuration
+public class QiniuConfiguration {
+
+ @Value("${qiniu.access-key}")
+ private String accessKey;
+ @Value("${qiniu.secret-key}")
+ private String secretKey;
+
+ @Bean
+ public Auth auth() {
+ return Auth.create(accessKey, secretKey);
+ }
+
+}
diff --git a/admin/admin-application/src/main/java/cn/iocoder/mall/admin/application/controller/admins/FileController.java b/admin/admin-application/src/main/java/cn/iocoder/mall/admin/application/controller/admins/FileController.java
new file mode 100644
index 000000000..5000528d9
--- /dev/null
+++ b/admin/admin-application/src/main/java/cn/iocoder/mall/admin/application/controller/admins/FileController.java
@@ -0,0 +1,33 @@
+package cn.iocoder.mall.admin.application.controller.admins;
+
+import cn.iocoder.common.framework.vo.CommonResult;
+import com.qiniu.util.Auth;
+import io.swagger.annotations.Api;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+@RequestMapping("admins/file")
+@Api("文件模块")
+public class FileController {
+
+ private Logger logger = LoggerFactory.getLogger(getClass());
+
+ @Autowired
+ private Auth auth;
+ @Value("${qiniu.bucket}")
+ private String bucket;
+
+ @GetMapping("/get_qiniu_token")
+ public CommonResult getQiniuToken() {
+ String token = auth.uploadToken(bucket);
+ logger.info("[qiniu_token][token({}) get]", token);
+ return CommonResult.success(token);
+ }
+
+}
diff --git a/admin/admin-application/src/main/resources/application.yaml b/admin/admin-application/src/main/resources/application.yaml
index a37e6a54f..b17cc27bc 100644
--- a/admin/admin-application/src/main/resources/application.yaml
+++ b/admin/admin-application/src/main/resources/application.yaml
@@ -6,4 +6,14 @@ spring:
server:
port: 18083
servlet:
- context-path: /admin-api/
\ No newline at end of file
+ context-path: /admin-api/
+
+# auth
+auth:
+ ignore-urls: /admin-api/admins/admin/passport/login, /admin-api/admins/file/get_qiniu_token
+
+# qiniu
+qiniu:
+ access-key: YldfyUC7OewoWM63TPYTairqnq8GMJvNek9EGoID
+ secret-key: zZ7Q8wwZRyaklVvkyLmVydA4WygOBqtc_gTYzalS
+ bucket: onemall
diff --git a/admin/admin-sdk/src/main/java/cn/iocoder/mall/admin/sdk/interceptor/AdminSecurityInterceptor.java b/admin/admin-sdk/src/main/java/cn/iocoder/mall/admin/sdk/interceptor/AdminSecurityInterceptor.java
index df5227d2d..47ec86953 100644
--- a/admin/admin-sdk/src/main/java/cn/iocoder/mall/admin/sdk/interceptor/AdminSecurityInterceptor.java
+++ b/admin/admin-sdk/src/main/java/cn/iocoder/mall/admin/sdk/interceptor/AdminSecurityInterceptor.java
@@ -26,6 +26,15 @@ public class AdminSecurityInterceptor extends HandlerInterceptorAdapter {
@Reference(validation = "true")
@Autowired(required = false) // TODO 芋艿,初始化时,会存在 spring boot 启动时,服务无法引用的情况,先暂时这么解决。
private OAuth2Service oauth2Service;
+ /**
+ * 忽略的 URL 集合,即无需经过认证
+ */
+ private Set ignoreUrls;
+
+ public AdminSecurityInterceptor setIgnoreUrls(Set ignoreUrls) {
+ this.ignoreUrls = ignoreUrls;
+ return this;
+ }
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
@@ -50,7 +59,7 @@ public class AdminSecurityInterceptor extends HandlerInterceptorAdapter {
}
} else {
String url = request.getRequestURI();
- if (!url.equals("/admin/passport/login")) { // TODO 临时写死。非登陆接口,必须已经认证身份,不允许匿名访问
+ if (ignoreUrls != null && !ignoreUrls.contains(url)) { // TODO 临时写死。非登陆接口,必须已经认证身份,不允许匿名访问
throw new ServiceException(AdminErrorCodeEnum.OAUTH_NOT_LOGIN.getCode(), AdminErrorCodeEnum.OAUTH_NOT_LOGIN.getMessage());
}
}
diff --git a/pom.xml b/pom.xml
index f2bef62f1..741f51cdb 100644
--- a/pom.xml
+++ b/pom.xml
@@ -44,6 +44,8 @@
3.8.0
1.16.14
+ 7.2.18
+
1.8
@@ -164,6 +166,12 @@
+
+ com.qiniu
+ qiniu-java-sdk
+ ${qiniu.version}
+
+