Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
Y
yudao-cloud
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
hblj
yudao-cloud
Commits
3ff9f1b3
提交
3ff9f1b3
authored
5月 09, 2019
作者:
YunaiV
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
- 新建 mall-spring-boot 项目,用于提供通用组件的自动配置
- 封装 AdminMVCConfiguration 和 UserConfiguration 组件
上级
ddf2f0ea
显示空白字符变更
内嵌
并排
正在显示
19 个修改的文件
包含
177 行增加
和
167 行删除
+177
-167
request.js
admin-web/src/utils/request.js
+2
-1
pom.xml
common/mall-spring-boot/pom.xml
+37
-0
RootRequestPath.java
...cn/iocoder/mall/spring/boot/constant/RootRequestPath.java
+17
-0
AdminMVCConfiguration.java
...n/iocoder/mall/spring/boot/web/AdminMVCConfiguration.java
+49
-0
UserMVCConfiguration.java
...cn/iocoder/mall/spring/boot/web/UserMVCConfiguration.java
+49
-0
spring.factories
...-spring-boot/src/main/resources/META-INF/spring.factories
+3
-0
MVCConfiguration.java
...coder/mall/order/application/config/MVCConfiguration.java
+0
-15
MVCConfiguration.java
...iocoder/mall/pay/application/config/MVCConfiguration.java
+0
-8
MVCConfiguration.java
...der/mall/product/application/config/MVCConfiguration.java
+0
-8
MVCConfiguration.java
...r/mall/promotion/application/config/MVCConfiguration.java
+0
-8
MVCConfiguration.java
...oder/mall/search/application/config/MVCConfiguration.java
+0
-8
pom.xml
system/system-application/pom.xml
+5
-0
MVCConfiguration.java
...coder/mall/admin/application/config/MVCConfiguration.java
+0
-61
AdminController.java
.../admin/application/controller/admins/AdminController.java
+2
-1
application.yaml
...em/system-application/src/main/resources/application.yaml
+3
-3
AdminSecurityInterceptor.java
.../mall/admin/sdk/interceptor/AdminSecurityInterceptor.java
+4
-1
pom.xml
user/user-application/pom.xml
+5
-0
UserApplication.java
...ava/cn/iocoder/mall/user/application/UserApplication.java
+1
-0
MVCConfiguration.java
...ocoder/mall/user/application/config/MVCConfiguration.java
+0
-53
没有找到文件。
admin-web/src/utils/request.js
浏览文件 @
3ff9f1b3
...
...
@@ -137,7 +137,8 @@ export default function request(url, option) {
// 将登陆的 accessToken 放到 header
const
loginToken
=
getLoginToken
();
if
(
loginToken
&&
loginToken
.
accessToken
)
{
if
(
loginToken
&&
loginToken
.
accessToken
&&
url
.
indexOf
(
'/passport/login'
)
===
-
1
)
{
// TODO 芋艿,临时这么加,可能不是很优雅
const
headers
=
{
...
newOptions
.
headers
,
Authorization
:
`Bearer
${
loginToken
.
accessToken
}
`
,
...
...
common/mall-spring-boot/pom.xml
浏览文件 @
3ff9f1b3
...
...
@@ -11,5 +11,42 @@
<artifactId>
mall-spring-boot
</artifactId>
<dependencies>
<dependency>
<groupId>
cn.iocoder.mall
</groupId>
<artifactId>
common-framework
</artifactId>
<version>
1.0-SNAPSHOT
</version>
</dependency>
<dependency>
<groupId>
cn.iocoder.mall
</groupId>
<artifactId>
system-sdk
</artifactId>
<version>
1.0-SNAPSHOT
</version>
<optional>
true
</optional>
</dependency>
<dependency>
<groupId>
cn.iocoder.mall
</groupId>
<artifactId>
user-sdk
</artifactId>
<version>
1.0-SNAPSHOT
</version>
<optional>
true
</optional>
</dependency>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter
</artifactId>
</dependency>
<dependency>
<groupId>
org.springframework
</groupId>
<artifactId>
spring-webmvc
</artifactId>
<optional>
true
</optional>
</dependency>
<dependency>
<groupId>
javax.servlet
</groupId>
<artifactId>
servlet-api
</artifactId>
<optional>
true
</optional>
</dependency>
</dependencies>
</project>
common/mall-spring-boot/src/main/java/cn/iocoder/mall/spring/boot/constant/RootRequestPath.java
0 → 100644
浏览文件 @
3ff9f1b3
package
cn
.
iocoder
.
mall
.
spring
.
boot
.
constant
;
/**
* 全局请求路径枚举类,用于定义不同用户类型的根请求路径
*/
public
interface
RootRequestPath
{
/**
* 管理员
*/
String
ADMIN
=
"/admins"
;
/**
* 用户
*/
String
USER
=
"/users"
;
}
common/mall-spring-boot/src/main/java/cn/iocoder/mall/spring/boot/web/AdminMVCConfiguration.java
0 → 100644
浏览文件 @
3ff9f1b3
package
cn
.
iocoder
.
mall
.
spring
.
boot
.
web
;
import
cn.iocoder.mall.admin.sdk.interceptor.AdminAccessLogInterceptor
;
import
cn.iocoder.mall.admin.sdk.interceptor.AdminSecurityInterceptor
;
import
cn.iocoder.mall.spring.boot.constant.RootRequestPath
;
import
org.springframework.boot.autoconfigure.condition.ConditionalOnClass
;
import
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean
;
import
org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.web.servlet.DispatcherServlet
;
import
org.springframework.web.servlet.config.annotation.CorsRegistry
;
import
org.springframework.web.servlet.config.annotation.InterceptorRegistry
;
import
org.springframework.web.servlet.config.annotation.WebMvcConfigurer
;
@Configuration
@ConditionalOnWebApplication
(
type
=
ConditionalOnWebApplication
.
Type
.
SERVLET
)
// TODO 芋艿,未来可能考虑 REACTIVE
@ConditionalOnClass
({
DispatcherServlet
.
class
,
WebMvcConfigurer
.
class
,
// 有 Spring MVC 容器
AdminSecurityInterceptor
.
class
,
AdminAccessLogInterceptor
.
class
})
// 有引入 system-sdk
public
class
AdminMVCConfiguration
implements
WebMvcConfigurer
{
@Bean
@ConditionalOnMissingBean
(
AdminSecurityInterceptor
.
class
)
public
AdminSecurityInterceptor
adminSecurityInterceptor
()
{
return
new
AdminSecurityInterceptor
();
}
@Bean
@ConditionalOnMissingBean
(
AdminAccessLogInterceptor
.
class
)
public
AdminAccessLogInterceptor
adminAccessLogInterceptor
()
{
return
new
AdminAccessLogInterceptor
();
}
@Override
public
void
addInterceptors
(
InterceptorRegistry
registry
)
{
registry
.
addInterceptor
(
adminAccessLogInterceptor
()).
addPathPatterns
(
RootRequestPath
.
ADMIN
+
"/**"
);
registry
.
addInterceptor
(
adminSecurityInterceptor
()).
addPathPatterns
(
RootRequestPath
.
ADMIN
+
"/**"
);
}
@Override
public
void
addCorsMappings
(
CorsRegistry
registry
)
{
registry
.
addMapping
(
RootRequestPath
.
USER
+
"/**"
)
.
allowedOrigins
(
"*"
)
.
allowedMethods
(
"*"
)
.
allowedHeaders
(
"*"
)
.
allowCredentials
(
true
).
maxAge
(
1800
);
}
}
common/mall-spring-boot/src/main/java/cn/iocoder/mall/spring/boot/web/UserMVCConfiguration.java
0 → 100644
浏览文件 @
3ff9f1b3
package
cn
.
iocoder
.
mall
.
spring
.
boot
.
web
;
import
cn.iocoder.mall.spring.boot.constant.RootRequestPath
;
import
cn.iocoder.mall.user.sdk.interceptor.UserAccessLogInterceptor
;
import
cn.iocoder.mall.user.sdk.interceptor.UserSecurityInterceptor
;
import
org.springframework.boot.autoconfigure.condition.ConditionalOnClass
;
import
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean
;
import
org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.web.servlet.DispatcherServlet
;
import
org.springframework.web.servlet.config.annotation.CorsRegistry
;
import
org.springframework.web.servlet.config.annotation.InterceptorRegistry
;
import
org.springframework.web.servlet.config.annotation.WebMvcConfigurer
;
@Configuration
@ConditionalOnWebApplication
(
type
=
ConditionalOnWebApplication
.
Type
.
SERVLET
)
// TODO 芋艿,未来可能考虑 REACTIVE
@ConditionalOnClass
({
DispatcherServlet
.
class
,
WebMvcConfigurer
.
class
,
// 有 Spring MVC 容器
UserSecurityInterceptor
.
class
,
UserAccessLogInterceptor
.
class
})
// 有引入 system-sdk
public
class
UserMVCConfiguration
implements
WebMvcConfigurer
{
@Bean
@ConditionalOnMissingBean
(
UserAccessLogInterceptor
.
class
)
public
UserAccessLogInterceptor
userAccessLogInterceptor
()
{
return
new
UserAccessLogInterceptor
();
}
@Bean
@ConditionalOnMissingBean
(
UserSecurityInterceptor
.
class
)
public
UserSecurityInterceptor
userSecurityInterceptor
()
{
return
new
UserSecurityInterceptor
();
}
@Override
public
void
addInterceptors
(
InterceptorRegistry
registry
)
{
registry
.
addInterceptor
(
userAccessLogInterceptor
()).
addPathPatterns
(
RootRequestPath
.
USER
+
"/**"
);
registry
.
addInterceptor
(
userSecurityInterceptor
()).
addPathPatterns
(
RootRequestPath
.
USER
+
"/**"
);
}
@Override
public
void
addCorsMappings
(
CorsRegistry
registry
)
{
registry
.
addMapping
(
RootRequestPath
.
USER
+
"/**"
)
.
allowedOrigins
(
"*"
)
.
allowedMethods
(
"*"
)
.
allowedHeaders
(
"*"
)
.
allowCredentials
(
true
).
maxAge
(
1800
);
}
}
common/mall-spring-boot/src/main/resources/META-INF/spring.factories
0 → 100644
浏览文件 @
3ff9f1b3
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
cn.iocoder.mall.spring.boot.web.AdminMVCConfiguration, \
cn.iocoder.mall.spring.boot.web.UserMVCConfiguration
order/order-application/src/main/java/cn/iocoder/mall/order/application/config/MVCConfiguration.java
浏览文件 @
3ff9f1b3
...
...
@@ -49,21 +49,6 @@ public class MVCConfiguration implements WebMvcConfigurer {
return
registrationBean
;
}
// @Override
// public void addViewControllers(ViewControllerRegistry registry) {
// registry.addRedirectViewController("/api/v2/api-docs", "/v2/api-docs");
// registry.addRedirectViewController("/api/swagger-resources/configuration/ui", "/swagger-resources/configuration/ui");
// registry.addRedirectViewController("/api/swagger-resources/configuration/security", "/swagger-resources/configuration/security");
// registry.addRedirectViewController("/api/swagger-resources", "/swagger-resources");
// }
@Override
public
void
addResourceHandlers
(
ResourceHandlerRegistry
registry
)
{
// 解决 swagger-ui.html 的访问,参考自 https://stackoverflow.com/questions/43545540/swagger-ui-no-mapping-found-for-http-request 解决
registry
.
addResourceHandler
(
"swagger-ui.html**"
).
addResourceLocations
(
"classpath:/META-INF/resources/swagger-ui.html"
);
registry
.
addResourceHandler
(
"webjars/**"
).
addResourceLocations
(
"classpath:/META-INF/resources/webjars/"
);
}
// TODO 芋艿,允许跨域
@Override
public
void
addCorsMappings
(
CorsRegistry
registry
)
{
...
...
pay/pay-application/src/main/java/cn/iocoder/mall/pay/application/config/MVCConfiguration.java
浏览文件 @
3ff9f1b3
...
...
@@ -5,7 +5,6 @@ import org.springframework.context.annotation.Configuration;
import
org.springframework.context.annotation.Import
;
import
org.springframework.web.servlet.config.annotation.CorsRegistry
;
import
org.springframework.web.servlet.config.annotation.EnableWebMvc
;
import
org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry
;
import
org.springframework.web.servlet.config.annotation.WebMvcConfigurer
;
@EnableWebMvc
...
...
@@ -28,13 +27,6 @@ public class MVCConfiguration implements WebMvcConfigurer {
// .excludePathPatterns("/admins/passport/login"); // 排除登陆接口
// }
@Override
public
void
addResourceHandlers
(
ResourceHandlerRegistry
registry
)
{
// 解决 swagger-ui.html 的访问,参考自 https://stackoverflow.com/questions/43545540/swagger-ui-no-mapping-found-for-http-request 解决
registry
.
addResourceHandler
(
"swagger-ui.html**"
).
addResourceLocations
(
"classpath:/META-INF/resources/swagger-ui.html"
);
registry
.
addResourceHandler
(
"webjars/**"
).
addResourceLocations
(
"classpath:/META-INF/resources/webjars/"
);
}
// TODO 芋艿,允许跨域
@Override
public
void
addCorsMappings
(
CorsRegistry
registry
)
{
...
...
product/product-application/src/main/java/cn/iocoder/mall/product/application/config/MVCConfiguration.java
浏览文件 @
3ff9f1b3
...
...
@@ -11,7 +11,6 @@ import org.springframework.context.annotation.Configuration;
import
org.springframework.context.annotation.Import
;
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
;
@EnableWebMvc
...
...
@@ -32,13 +31,6 @@ public class MVCConfiguration implements WebMvcConfigurer {
registry
.
addInterceptor
(
adminSecurityInterceptor
).
addPathPatterns
(
"/admins/**"
);
}
@Override
public
void
addResourceHandlers
(
ResourceHandlerRegistry
registry
)
{
// 解决 swagger-ui.html 的访问,参考自 https://stackoverflow.com/questions/43545540/swagger-ui-no-mapping-found-for-http-request 解决
registry
.
addResourceHandler
(
"swagger-ui.html**"
).
addResourceLocations
(
"classpath:/META-INF/resources/swagger-ui.html"
);
registry
.
addResourceHandler
(
"webjars/**"
).
addResourceLocations
(
"classpath:/META-INF/resources/webjars/"
);
}
@Bean
public
FilterRegistrationBean
<
CorsFilter
>
corsFilter
()
{
FilterRegistrationBean
<
CorsFilter
>
registrationBean
=
new
FilterRegistrationBean
<>();
...
...
promotion/promotion-application/src/main/java/cn/iocoder/mall/promotion/application/config/MVCConfiguration.java
浏览文件 @
3ff9f1b3
...
...
@@ -13,7 +13,6 @@ import org.springframework.context.annotation.Configuration;
import
org.springframework.context.annotation.Import
;
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
;
@EnableWebMvc
...
...
@@ -46,13 +45,6 @@ public class MVCConfiguration implements WebMvcConfigurer {
registry
.
addInterceptor
(
adminSecurityInterceptor
).
addPathPatterns
(
"/admins/**"
);
}
@Override
public
void
addResourceHandlers
(
ResourceHandlerRegistry
registry
)
{
// 解决 swagger-ui.html 的访问,参考自 https://stackoverflow.com/questions/43545540/swagger-ui-no-mapping-found-for-http-request 解决
registry
.
addResourceHandler
(
"swagger-ui.html**"
).
addResourceLocations
(
"classpath:/META-INF/resources/swagger-ui.html"
);
registry
.
addResourceHandler
(
"webjars/**"
).
addResourceLocations
(
"classpath:/META-INF/resources/webjars/"
);
}
@Bean
public
FilterRegistrationBean
<
CorsFilter
>
corsFilter
()
{
FilterRegistrationBean
<
CorsFilter
>
registrationBean
=
new
FilterRegistrationBean
<>();
...
...
search/search-application/src/main/java/cn/iocoder/mall/search/application/config/MVCConfiguration.java
浏览文件 @
3ff9f1b3
...
...
@@ -8,7 +8,6 @@ import org.springframework.context.annotation.Configuration;
import
org.springframework.context.annotation.Import
;
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
;
@EnableWebMvc
...
...
@@ -41,13 +40,6 @@ public class MVCConfiguration implements WebMvcConfigurer {
// registry.addInterceptor(adminSecurityInterceptor).addPathPatterns("/admins/**");
}
@Override
public
void
addResourceHandlers
(
ResourceHandlerRegistry
registry
)
{
// 解决 swagger-ui.html 的访问,参考自 https://stackoverflow.com/questions/43545540/swagger-ui-no-mapping-found-for-http-request 解决
registry
.
addResourceHandler
(
"swagger-ui.html**"
).
addResourceLocations
(
"classpath:/META-INF/resources/swagger-ui.html"
);
registry
.
addResourceHandler
(
"webjars/**"
).
addResourceLocations
(
"classpath:/META-INF/resources/webjars/"
);
}
@Bean
public
FilterRegistrationBean
<
CorsFilter
>
corsFilter
()
{
FilterRegistrationBean
<
CorsFilter
>
registrationBean
=
new
FilterRegistrationBean
<>();
...
...
system/system-application/pom.xml
浏览文件 @
3ff9f1b3
...
...
@@ -17,6 +17,11 @@
<artifactId>
common-framework
</artifactId>
<version>
1.0-SNAPSHOT
</version>
</dependency>
<dependency>
<groupId>
cn.iocoder.mall
</groupId>
<artifactId>
mall-spring-boot
</artifactId>
<version>
1.0-SNAPSHOT
</version>
</dependency>
<dependency>
<groupId>
cn.iocoder.mall
</groupId>
...
...
system/system-application/src/main/java/cn/iocoder/mall/admin/application/config/MVCConfiguration.java
deleted
100644 → 0
浏览文件 @
ddf2f0ea
package
cn
.
iocoder
.
mall
.
admin
.
application
.
config
;
import
cn.iocoder.common.framework.config.GlobalExceptionHandler
;
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.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
@Import
(
value
=
{
GlobalExceptionHandler
.
class
,
// 统一全局返回
AdminAccessLogInterceptor
.
class
,
AdminSecurityInterceptor
.
class
})
public
class
MVCConfiguration
implements
WebMvcConfigurer
{
// @Autowired
// private UserSecurityInterceptor securityInterceptor;
@Autowired
private
AdminSecurityInterceptor
adminSecurityInterceptor
;
@Autowired
private
AdminAccessLogInterceptor
adminAccessLogInterceptor
;
@Value
(
"${auth.ignore-urls}"
)
private
Set
<
String
>
ignoreUrls
;
@Override
public
void
addInterceptors
(
InterceptorRegistry
registry
)
{
registry
.
addInterceptor
(
adminAccessLogInterceptor
).
addPathPatterns
(
"/admins/**"
);
registry
.
addInterceptor
(
adminSecurityInterceptor
.
setIgnoreUrls
(
ignoreUrls
)).
addPathPatterns
(
"/admins/**"
)
.
excludePathPatterns
(
"/admins/passport/login"
);
// 排除登陆接口
}
@Override
public
void
addResourceHandlers
(
ResourceHandlerRegistry
registry
)
{
// 解决 swagger-ui.html 的访问,参考自 https://stackoverflow.com/questions/43545540/swagger-ui-no-mapping-found-for-http-request 解决
registry
.
addResourceHandler
(
"swagger-ui.html**"
).
addResourceLocations
(
"classpath:/META-INF/resources/swagger-ui.html"
);
registry
.
addResourceHandler
(
"webjars/**"
).
addResourceLocations
(
"classpath:/META-INF/resources/webjars/"
);
}
@Bean
public
FilterRegistrationBean
<
CorsFilter
>
corsFilter
()
{
FilterRegistrationBean
<
CorsFilter
>
registrationBean
=
new
FilterRegistrationBean
<>();
registrationBean
.
setFilter
(
new
CorsFilter
());
registrationBean
.
addUrlPatterns
(
"/*"
);
return
registrationBean
;
}
}
system/system-application/src/main/java/cn/iocoder/mall/admin/application/controller/admins/AdminController.java
浏览文件 @
3ff9f1b3
...
...
@@ -18,6 +18,7 @@ import cn.iocoder.mall.admin.application.vo.AdminPageVO;
import
cn.iocoder.mall.admin.application.vo.AdminRoleVO
;
import
cn.iocoder.mall.admin.application.vo.AdminVO
;
import
cn.iocoder.mall.admin.sdk.context.AdminSecurityContextHolder
;
import
cn.iocoder.mall.spring.boot.constant.RootRequestPath
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiImplicitParam
;
import
io.swagger.annotations.ApiImplicitParams
;
...
...
@@ -29,7 +30,7 @@ import java.util.*;
import
java.util.stream.Collectors
;
@RestController
@RequestMapping
(
"admins
/admin"
)
@RequestMapping
(
RootRequestPath
.
ADMIN
+
"
/admin"
)
@Api
(
"管理员模块"
)
public
class
AdminController
{
...
...
system/system-application/src/main/resources/application.yaml
浏览文件 @
3ff9f1b3
...
...
@@ -8,9 +8,9 @@ server:
servlet
:
context-path
:
/admin-api/
# auth
auth
:
ignore-urls
:
/admin-api/admins/admin
/passport/login, /admin-api/admins/file/get_qiniu_token
admins
:
security
:
ignore_urls
:
/admin-api/admins
/passport/login, /admin-api/admins/file/get_qiniu_token
# qiniu
qiniu
:
...
...
system/system-sdk/src/main/java/cn/iocoder/mall/admin/sdk/interceptor/AdminSecurityInterceptor.java
浏览文件 @
3ff9f1b3
...
...
@@ -9,6 +9,7 @@ import cn.iocoder.mall.admin.api.constant.AdminErrorCodeEnum;
import
cn.iocoder.mall.admin.sdk.context.AdminSecurityContext
;
import
cn.iocoder.mall.admin.sdk.context.AdminSecurityContextHolder
;
import
org.apache.dubbo.config.annotation.Reference
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Component
;
import
org.springframework.web.servlet.handler.HandlerInterceptorAdapter
;
...
...
@@ -24,9 +25,11 @@ public class AdminSecurityInterceptor extends HandlerInterceptorAdapter {
@Reference
(
validation
=
"true"
,
version
=
"${dubbo.consumer.OAuth2Service.version:1.0.0}"
)
private
OAuth2Service
oauth2Service
;
/**
* 忽略的 URL 集合,即无需经过认证
*/
@Value
(
"${admins.security.ignore_url:#{null}}"
)
private
Set
<
String
>
ignoreUrls
;
public
AdminSecurityInterceptor
setIgnoreUrls
(
Set
<
String
>
ignoreUrls
)
{
...
...
@@ -67,7 +70,7 @@ public class AdminSecurityInterceptor extends HandlerInterceptorAdapter {
}
// 校验是否需要已授权
// TODO sin 暂时不校验
checkPermission
(
request
,
authentication
);
//
checkPermission(request, authentication);
// 返回成功
return
super
.
preHandle
(
request
,
response
,
handler
);
}
...
...
user/user-application/pom.xml
浏览文件 @
3ff9f1b3
...
...
@@ -21,6 +21,11 @@
<artifactId>
common-framework
</artifactId>
<version>
1.0-SNAPSHOT
</version>
</dependency>
<dependency>
<groupId>
cn.iocoder.mall
</groupId>
<artifactId>
mall-spring-boot
</artifactId>
<version>
1.0-SNAPSHOT
</version>
</dependency>
<dependency>
<groupId>
cn.iocoder.mall
</groupId>
...
...
user/user-application/src/main/java/cn/iocoder/mall/user/application/UserApplication.java
浏览文件 @
3ff9f1b3
...
...
@@ -2,6 +2,7 @@ package cn.iocoder.mall.user.application;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.boot.autoconfigure.SpringBootApplication
;
import
org.springframework.web.servlet.config.annotation.EnableWebMvc
;
@SpringBootApplication
(
scanBasePackages
=
{
"cn.iocoder.mall.user"
})
public
class
UserApplication
{
...
...
user/user-application/src/main/java/cn/iocoder/mall/user/application/config/MVCConfiguration.java
deleted
100644 → 0
浏览文件 @
ddf2f0ea
package
cn
.
iocoder
.
mall
.
user
.
application
.
config
;
import
cn.iocoder.common.framework.config.GlobalExceptionHandler
;
import
cn.iocoder.common.framework.servlet.CorsFilter
;
import
cn.iocoder.mall.admin.sdk.interceptor.AdminSecurityInterceptor
;
import
cn.iocoder.mall.user.sdk.interceptor.UserAccessLogInterceptor
;
import
cn.iocoder.mall.user.sdk.interceptor.UserSecurityInterceptor
;
import
org.springframework.beans.factory.annotation.Autowired
;
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.*
;
@EnableWebMvc
@Configuration
@Import
(
value
=
{
GlobalExceptionHandler
.
class
,
// 统一全局返回
UserSecurityInterceptor
.
class
,
UserAccessLogInterceptor
.
class
,
AdminSecurityInterceptor
.
class
})
// 安全拦截器,实现认证和授权功能。
public
class
MVCConfiguration
implements
WebMvcConfigurer
{
@Autowired
private
UserSecurityInterceptor
userSecurityInterceptor
;
@Autowired
private
UserAccessLogInterceptor
userAccessLogInterceptor
;
@Autowired
private
AdminSecurityInterceptor
adminSecurityInterceptor
;
@Override
public
void
addInterceptors
(
InterceptorRegistry
registry
)
{
// 用户
registry
.
addInterceptor
(
userAccessLogInterceptor
).
addPathPatterns
(
"/users/**"
);
registry
.
addInterceptor
(
userSecurityInterceptor
).
addPathPatterns
(
"/users/**"
);
// 只拦截我们定义的接口
// 管理员
registry
.
addInterceptor
(
adminSecurityInterceptor
).
addPathPatterns
(
"/admins/**"
);
// 只拦截我们定义的接口
}
@Override
public
void
addResourceHandlers
(
ResourceHandlerRegistry
registry
)
{
// 解决 swagger-ui.html 的访问,参考自 https://stackoverflow.com/questions/43545540/swagger-ui-no-mapping-found-for-http-request 解决
registry
.
addResourceHandler
(
"swagger-ui.html**"
).
addResourceLocations
(
"classpath:/META-INF/resources/swagger-ui.html"
);
registry
.
addResourceHandler
(
"webjars/**"
).
addResourceLocations
(
"classpath:/META-INF/resources/webjars/"
);
}
@Bean
public
FilterRegistrationBean
<
CorsFilter
>
corsFilter
()
{
FilterRegistrationBean
<
CorsFilter
>
registrationBean
=
new
FilterRegistrationBean
<>();
registrationBean
.
setFilter
(
new
CorsFilter
());
registrationBean
.
addUrlPatterns
(
"/*"
);
return
registrationBean
;
}
}
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论