文章目录
- 一、前端
- 1. 组件创建
- 2. src/router/index.ts
- 3. src/permission.ts
 
- 二、后端
- 1. 设计思想
- 2. ruoyi-gateway.yml
- 3. 开发Controller
 
 
| 版本 | |
|---|---|
| RuoYiCloudPlus | v2.1.2 | 
| plus-ui | Vue3 ts | 
以新增一个公开的课程搜索页面为例。
一、前端
1. 组件创建
在view目录下创建一个页面的vue代码,比如
src/views/customer/searchPage/index.vue
2. src/router/index.ts
为其编制一个路由。在constantRoutes中添加一组dict信息。比如
{
    path: '/courseSearch',
    component: () => import('@/views/customer/searchPage/index.vue'),
    hidden: true
},
3. src/permission.ts
把页面加入前端的whiteList。
const whiteList = [
  '/login',
  '/register',
  '/social-callback',
  '/courseSearch'
];
在浏览器输入http://localhost/courseSearch,至此这个页面已经不用登录就可以访问了。
二、后端
但是后端是有网关和认证模块的,虽然前端页面可以不用登陆了,但是如果这个页面还需要从后端获取数据,那么后端对应的controller也应该被open。
1. 设计思想
不同模块有不同的url前缀,比如
routes:
   # 认证中心
   - id: ruoyi-auth
     uri: lb://ruoyi-auth
     predicates:
       - Path=/auth/**
     filters:
       - StripPrefix=1
   # 代码生成
   - id: ruoyi-gen
     uri: lb://ruoyi-gen
     predicates:
       - Path=/tool/**
     filters:
       - StripPrefix=1
并且每个模块都有可能需要open一些controller,不需要认证。那么我们进行统一设定,比如课程模块,url前缀为course,那么/course/open/**就都是被公开的端点。于是在gateway只需要把/*/open/**加入白名单即可。
2. ruoyi-gateway.yml
在nacos中修改gateway的配置文件,把/*/open/**加入whites。
security:
	ignore:
		whites:
			- /auth/code
			- /auth/logout
			- /auth/login
			- /auth/binding/*
			- /auth/social/callback
			- /auth/register
			- /auth/tenant/list
			- /resource/sms/code
			- /*/v3/api-docs
			- /*/error
			- /csrf
			- /*/open/**
3. 开发Controller
在course模块中,新建一个CourseOpenController.java,内容示例如下
package org.dromara.course.controller;
import org.dromara.course.domain.bo.CourseCategoryBo;
import org.dromara.course.domain.vo.CourseCategoryVo;
import org.dromara.course.service.CourseCategoryService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController
@RequestMapping("/open")
public class CourseOpenController {
    @Autowired
    CourseCategoryService categoryService;
    @GetMapping("/category/list")
    public List<CourseCategoryVo> list(CourseCategoryBo bo) {
        return categoryService.queryList(bo);
    }
}
重启网关和课程模块即可。





![【Hadoop】-Apache Hive概述  Hive架构[11]](https://img-blog.csdnimg.cn/direct/f5070b63db8f4e439514474a37c5a988.png)













![下列程序定义了NxN的二维数组,并在主函数中自动赋值。请编写函数fun(int a[][N],int n),该函数的功能是:使数组右上半三角元素中的值乘以m。](https://img-blog.csdnimg.cn/direct/810d3107b3ec45bc8500a4afedf90d0e.png)
