0


芋道源码yudao-cloud 二开日记(添加接口权限和页面固定路由)

今天的需求是单独开放两个接口,不用登录也能访问,于是看了下文档有几种方式,最快捷最方便的方式就是在方法上加注解
@PermitAll

,例如下面这样:

@GetMapping("/get/{configId}")@PermitAllpublicvoidgetConfig(@PathVariable("configId")Long configId)throwsException{// ...}

但如果是多个方法都需要放开,那建议还是用下面这种配置,找到对应服务下的

SecurityConfiguration.java

文件,比如我要放开

yudao-module-system

模块下

/system/mall/

下面的所有接口,那么文件目录是:

yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/framework/security/config/SecurityConfiguration.java
/**
 * System 模块的 Security 配置
 */@Configuration(proxyBeanMethods =false, value ="systemSecurityConfiguration")publicclassSecurityConfiguration{@Bean("systemAuthorizeRequestsCustomizer")publicAuthorizeRequestsCustomizerauthorizeRequestsCustomizer(){returnnewAuthorizeRequestsCustomizer(){@Overridepublicvoidcustomize(ExpressionUrlAuthorizationConfigurer<HttpSecurity>.ExpressionInterceptUrlRegistry registry){// Swagger 接口文档
                registry.antMatchers("/v3/api-docs/**").permitAll().antMatchers("/webjars/**").permitAll().antMatchers("/swagger-ui").permitAll().antMatchers("/swagger-ui/**").permitAll();// Druid 监控
                registry.antMatchers("/druid/**").anonymous();// Spring Boot Actuator 的安全配置
                registry.antMatchers("/actuator").anonymous().antMatchers("/actuator/**").anonymous();// RPC 服务的安全配置
                registry.antMatchers(ApiConstants.PREFIX+"/**").permitAll();// 添加如下
                registry.antMatchers("/system/mall/**").permitAll();}};}}

放开是没问题了,可一经测试,访问接口会出现

租户标识未传递的异常

,如下:

在这里插入图片描述

因为我们这是个多租户的框架,默认每一次请求都会带上

租户id

去查询。只要在

headers

添加

tenant-id:租户id

就可以,如下:
在这里插入图片描述

好了,接口是完成了,那么看看前端页面的配置。

我的需求是页面不用登陆也能访问页面,并且不需要管理的菜单栏,如下图:

在这里插入图片描述

1.找到路由文件添加固定路由,如下图:

在这里插入图片描述

2.并且添加不重定向的路由,如下图:

在这里插入图片描述

3.ok,试着访问一下,页面是打开了,但是接口报错,如下图:
在这里插入图片描述

还是我们刚刚上面测接口的问题,没有传

租户id

,那我们加上就是了,先看看

请求拦截器

怎么设置

租户id

,如下图:

在这里插入图片描述
4.既然知道了是从localStorege获取的,那我们在请求接口之前存上是不是就OK,嘿嘿。。先看看在登录的情况下是怎么存储的
在这里插入图片描述
5.知道了上面的存储结构,简单粗暴上代码。

onMounted(()=>{// 该页面设置固定租户id,否则请求会出现未传递租户id的异常const tenantCache ={"c":newDate().getTime(),// 当前时间戳"e":253402300799000,// 过期时间戳"v":"1"// 租户id}
  localStorage.setItem("tenantId",JSON.stringify(tenantCache));// 初始化接口init();})

测试访问成功。。。完成

标签: 微服务 架构 前端

本文转载自: https://blog.csdn.net/qq_31676725/article/details/140702452
版权归原作者 码农九零 所有, 如有侵权,请联系我们删除。

“芋道源码yudao-cloud 二开日记(添加接口权限和页面固定路由)”的评论:

还没有评论