一、该问题的重现步骤是什么?
现在所有的鉴权操作全是通过gateway,在开发的过程中发现单体服务启动之后,直接通过ip:端口访问单服务内的接口时不会鉴权直接返回数据,客户现场安全要求很高,所有的服务都需要鉴权,请问该怎么操作?
二、你期待的结果是什么?实际看到的又是什么?
三、你正在使用的是什么产品,什么版本?在什么操作系统上?
四、请提供详细的错误堆栈信息,这很重要。
五、若有更多详细信息,请在下面提供。
每个服务创建一个config类,并加入如下配置,开启内部鉴权。
可以这么做但没有必要,因为部署的时候最终只会把gateway暴露在外,内部服务是无法访问到的。外部也无法进行渗透攻击,如果加上二次鉴权,那么token解析也会做两次,性能减半。
这只是一个想当然的“安全隐患”但根本不存在,为了解决这个“隐患”要搭上一倍的性能不划算。
/** * 安全框架配置 */ @Bean public SecureRegistry secureRegistry() { SecureRegistry secureRegistry = new SecureRegistry(); secureRegistry.setEnabled(true); secureRegistry.excludePathPatterns("/menu/routes"); secureRegistry.excludePathPatterns("/menu/auth-routes"); secureRegistry.excludePathPatterns("/menu/top-menu"); secureRegistry.excludePathPatterns("/tenant/info"); secureRegistry.excludePathPatterns("/process/resource-view"); secureRegistry.excludePathPatterns("/process/diagram-view"); secureRegistry.excludePathPatterns("/manager/check-upload"); secureRegistry.excludePathPatterns("/doc.html"); secureRegistry.excludePathPatterns("/js/**"); secureRegistry.excludePathPatterns("/webjars/**"); secureRegistry.excludePathPatterns("/swagger-resources/**"); secureRegistry.excludePathPatterns("/druid/**"); return secureRegistry; }
作者追问:2023-06-05 11:23
感谢回复,还有一个问题,所有的服务在同一台服务器上可以只暴露网关端口即可,那如果服务是分开部署,A服务器部署基础模块,B服务器部署biz业务模块,是不是B服务器也需要部署一个网关?前端在调用的时候会自动请求对应的网关吗?
回答:
2023-06-05 11:28
分开服务器部署分两种情况
1. 如果是k8s就不用担心这个。内部通讯自动处理好了
2. 如果是jar部署,做服务器内网通讯,对外网依旧是一个gateway就行
所以你也不用担心暴露外网和多个gateway的问题
讨论(0)
- 热议问题
-
物联网组态系统:设备绑定后请求不到数据
1
-
Saber3手机端或者窄屏宽度下菜单样式显示不正常
1
-
多数据源的情况下,能否为每个数据源单独指定mybatis-plus分页器?
1
-
如何把下拉框中的值传给文本框
1
-
组态大屏系统请求未授权
1
-
minio如何通过文件上传的方式进行文件替换?
1
-
代码生成器 sqlserver数据库 带不出备注信息 表/字段都没有
1
-
设备clientId设置
2
-
avue-crud
1
-
默认分配角色后,未配置数据权限,希望实现:默认没有数据显示
1
扫一扫访问 Blade技术社区 移动端