Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
有来开源组织
youlai-mall
提交
1231caac
Y
youlai-mall
项目概览
有来开源组织
/
youlai-mall
通知
8
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
Y
youlai-mall
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
1231caac
编写于
4月 07, 2023
作者:
H
haoxr
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat: 添加禁用请求路径拦截
上级
4a2721b1
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
25 addition
and
6 deletion
+25
-6
youlai-gateway/src/main/java/com/youlai/gateway/config/OAuth2ClientSecurityConfig.java
...com/youlai/gateway/config/OAuth2ClientSecurityConfig.java
+25
-6
未找到文件。
youlai-gateway/src/main/java/com/youlai/gateway/config/OAuth2ClientSecurityConfig.java
浏览文件 @
1231caac
package
com.youlai.gateway.config
;
import
cn.hutool.core.collection.CollectionUtil
;
import
cn.hutool.core.convert.Convert
;
import
lombok.Setter
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.boot.context.properties.ConfigurationProperties
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.security.config.annotation.web.reactive.EnableWebFluxSecurity
;
import
org.springframework.security.config.web.server.ServerHttpSecurity
;
...
...
@@ -10,6 +14,9 @@ import org.springframework.web.cors.reactive.CorsConfigurationSource;
import
org.springframework.web.cors.reactive.UrlBasedCorsConfigurationSource
;
import
org.springframework.web.util.pattern.PathPatternParser
;
import
java.util.Collections
;
import
java.util.List
;
/**
* OAuth Client Security 配置
...
...
@@ -17,14 +24,26 @@ import org.springframework.web.util.pattern.PathPatternParser;
* @author haoxr
* @date 2022/8/28
*/
@ConfigurationProperties
(
prefix
=
"security"
)
@EnableWebFluxSecurity
@Slf4j
public
class
OAuth2ClientSecurityConfig
{
/**
* 禁用访问路径集合
*/
@Setter
private
List
<
String
>
forbiddenURIs
;
@Bean
public
SecurityWebFilterChain
springSecurityFilterChain
(
ServerHttpSecurity
http
)
{
if
(
CollectionUtil
.
isEmpty
(
forbiddenURIs
))
{
forbiddenURIs
=
Collections
.
EMPTY_LIST
;
}
http
.
authorizeExchange
()
.
pathMatchers
(
Convert
.
toStrArray
(
forbiddenURIs
)).
denyAll
()
// 放行交由资源服务器进行认证鉴权
.
anyExchange
().
permitAll
()
.
and
()
...
...
@@ -35,19 +54,19 @@ public class OAuth2ClientSecurityConfig {
@Bean
public
CorsConfigurationSource
corsConfigurationSource
()
{
UrlBasedCorsConfigurationSource
source
=
new
UrlBasedCorsConfigurationSource
(
new
PathPatternParser
());
UrlBasedCorsConfigurationSource
source
=
new
UrlBasedCorsConfigurationSource
(
new
PathPatternParser
());
CorsConfiguration
corsConfig
=
new
CorsConfiguration
();
// 允许所有请求方法
corsConfig
.
addAllowedMethod
(
"*"
);
corsConfig
.
addAllowedMethod
(
"*"
);
// 允许所有域,当请求头
corsConfig
.
addAllowedOriginPattern
(
"*"
);
corsConfig
.
addAllowedOriginPattern
(
"*"
);
// 允许全部请求头
corsConfig
.
addAllowedHeader
(
"*"
);
corsConfig
.
addAllowedHeader
(
"*"
);
// 允许携带 Authorization 头
corsConfig
.
setAllowCredentials
(
true
);
corsConfig
.
setAllowCredentials
(
true
);
// 允许全部请求路径
source
.
registerCorsConfiguration
(
"/**"
,
corsConfig
);
source
.
registerCorsConfiguration
(
"/**"
,
corsConfig
);
return
source
;
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录