码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 若依RuoYi-Vue分离版—免登录直接访问


    若依RuoYi-Vue分离版—免登录直接访问

    • 官网说明:如何不登录直接访问
      • 前端:
      • 后端:
        • 方法1:在`SecurityConfig.java`中设置`httpSecurity`配置匿名访问
        • 方法2:在对应的方法或类上面使用`@Anonymous`注解。
    • 个人测试(菜单配置里面的页面 和 非菜单配置里面的页面)

    官网说明:如何不登录直接访问

    官网有说明:如何不登录直接访问

    前端:

    前端不登录如何直接访问

    如果是前端页面可以在src/permission.js配置whiteList属性白名单即可。

    在这里插入图片描述

    后端:

    方法1:在SecurityConfig.java中设置httpSecurity配置匿名访问

    // 使用 permitAll() 方法所有人都能访问,包括带上 token 访问
    .antMatchers("/admins/**").permitAll()
    
    // 使用 anonymous() 所有人都能访问,但是带上 token 访问后会报错
    .antMatchers("/admins/**").anonymous()
    

    方法2:在对应的方法或类上面使用@Anonymous注解。

    前提
    匿名访问的方法上面@PreAuthorize权限注解也需要去掉,因为已经使用匿名访问了,权限自然也不需要去验证了。

    // 类上定义匿名注解,作用于所有的方法
    @Anonymous
    @RestController
    @RequestMapping("/system/xxxx")
    public class SysXxxxController extends BaseController
    {
    }
    
    // 方法定义匿名注解,作用于单独的方法
    @Anonymous
    @GetMapping("/list")
    public List<SysXxxx> list(SysXxxx xxxx)
    {
        return xxxxList;
    }
    

    个人测试(菜单配置里面的页面 和 非菜单配置里面的页面)

    测试了 菜单配置里面的页面 和 非菜单配置里面的页面

    1.ruoyi-ui\src\router 路径下 修改 index.js

    在这里插入图片描述

      //该处为免登录访问的路由页面
      {
        path: '/centerprofile',
        component: () => import('@/views/yangdong/centerprofile'),
        hidden: true
      },
      {
        path: '/massend',
        component: () => import('@/views/yangdong/massend'),
        hidden: true
      },
    

    2.在src/permission.js配置whiteList属性白名单

    在这里插入图片描述

    //新的白名单路由
    const newRoutes = ['/centerprofile', '/massend'];
    // 使用扩展运算符合并数组
    whiteList.push(...newRoutes);
    

    3.效果展现

    3.1 访问地址 http://localhost/centerprofile (菜单管理里面的页面)

    在这里插入图片描述
    结果:
    成功实现了免登录展现页面,
    但是由于查询列表接口需要权限(因为这个页面是代码生成器生成的),所以就出现了上图的情况

    3.2 访问地址 http://localhost/massend (非菜单管理里面的页面)

    在这里插入图片描述

    这个页面的的vue代码如下

    <template>
      <div class="wrap">
        <div>
          第一个div:21312312312
        div>
        <div>
          第二个div:
          <iframe src="../centerprofile/index.vue" style="width: 30%;height: 500px">iframe>
          <iframe src="https://www.baidu.com/?tn=62095104_27_oem_dg&ch=1" style="width: 30%;height: 500px">iframe>
          <p v-html="htmlContent">p>
        div>
        <div>
          第三个div
          <iframe src="http://localhost/massend" style="width: 30%;height: 500px">iframe>
        div>
      div>
    template>
    
    <script>
    export default {
      name: "Index",
      data() {
        return {
          htmlContent: ''
        };
      },
      mounted() {
        // 在组件挂载时将HTML内容加载到htmlContent中
        //this.loadHtmlFile();
      },
      methods: {
        loadHtmlFile() {
          this.htmlContent = "";
          let xhr = new XMLHttpRequest()
          // 线上链接地址
          // xhr.open("GET", val.url, false);
          console.log("xhr",xhr);
          // public文件夹下的绝对路径
          // /xhr.open("GET", "佛山招聘教师.txt", false);
          xhr.open("GET", "群众首页.html", false);
          xhr.overrideMimeType("text/html;charset=utf-8")
          xhr.send(null)
          this.htmlContent = xhr.responseText;
        }
      },
    };
    script>
    
    
    <style lang="scss" scoped>
    .wrap{
      width: 100%;
      height: 500px;
    }
    style>
    
    

    结果:
    成功实现了免登录展现页面,
    现象一:由 iframe 去进行的内部页面访问时(…/centerprofile/index.vue) ,发现是需要登录
    现象二:由 iframe 去进行的请求地址访问时(http://localhost/massend) 访问时,发现不用登录
    现象三:由 iframe 去进行的请求地址访问时(https://www.baidu.com/?tn=62095104_27_oem_dg&ch=1) 访问时,发现不用登录

    所以这个就需要注意了

  • 相关阅读:
    (自学)黑客————网络安全技术
    用了Keras来构建一个卷积神经网络对MNIST数据集进行分类
    基于springboot的教师科研信息管理系统(含ssm版本)
    如果我们是那晚负责修复 B 站崩了的开发人员
    js算法:对一个数组进行乱序排序,要求每个元素不会落到原来的位置,且落到其他位置的概率相同
    亚马逊云AI大语言模型应用下的创新Amazon Transcribe的使用
    适合自学的网络安全基础技能“蓝宝书”:《CTF那些事儿》
    合宙4G模块Air724UG调试过程(短信发送、上传数据到华为云IOT)
    图像任务知识蒸馏调研(一)
    10. IO框架
  • 原文地址:https://blog.csdn.net/qq_20236937/article/details/139634849
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号