普元EOS学习笔记-EOS项目HTTP访问安全和权限控制

前言

对于企业应用系统,出于安全和权限控制的目的,需要对http请求做若干控制。

比如文件上传的时候要控制不允许上传的文件后缀。

又比如控制应用程序中的哪些资源不允许被访问。

EOS项目通过 xml配置文件来实现这一需求。

Http访问管理模块

在EOS项目中,Http的请求控制是通过 user-config.xml文件来配置的。

在boot构建包中,可以找到一个 user_config.xml 文件。

编辑 user-config.xml文件,可以找到一个 Access-Http的xml片段。

    <!-- http access configuration--><module name="Access-Http"><group name="FileUpload"><configValue key="TempDir">upload</configValue><configValue key="MaxSize">104857600</configValue><configValue key="InMemorySize">10240</configValue><!--files with specified ext names are not accespted when uploading  --><configValue key="Exclude">exe,java,jsp,html,htm,class,jar</configValue></group><group name="Encoding"><!-- the charset of the incoming HttpServletRequest--><configValue key="Request">UTF-8</configValue></group><group name="Suspend"><!-- the time to suspend, waiting for the xsd loading,in seconds.--><configValue key="TimeOut">60</configValue></group><group name="Login-Filter"><!-- pages that can be accessed by any one including those not login --><configValuekey="Exclude">/api/afc/login/third-party/validate,/api/afc/login/third-party/types,/api/taskcenter/push-task/*,/api/bfp/messagecenter/send-process-message,/api/afc/component-centers,/api/lowcode/resources/*/runtimes,/api/afc/preferences/info/*,/api/lowcode/shares/actions/*,/api/afc/login/clientId,/,*.gif,*.svg,.ttf,*.woff2,*.woff,*.jpg,*.json,*.ico,*.js,*.css,*.png,*.html,/api/afc/oauth2/*,/api/afc/login/third-party/auth,/api/afc/login/third-party/qrConnect,/api/afc/validation-code,/swagger-ui.html,/v2/api-docs,/webjars/*,/swagger-resources/*,/afc,/afc/,/api/afc/login,/api/afc/login/password/key,/actuator/*,/om/*,/common.remote,/jmxDefault.jmx,/common.download,/api/afc/materials/font/*,/api/afc/components/*,/api/afc/job/api/*</configValue><!-- <configValue key="Include">*.flow,*.flowx,*.jsp,*.html,*.ajax,*.ext,*.action,*.beanx</configValue> --><configValue key="Include">/*</configValue><!-- the page to display when user not login --><configValue key="LoginPage"></configValue></group><group name="Accessed-Mode"><configValue key="Portal">false</configValue></group><group name="Http-Security"><configValue key="isOpenSecurity">false</configValue><configValue key="Exclude">**/common.download</configValue><configValue key="regexs">eval\s*?\([^\)]+?\),alert\s*?\([^\)]+?\),new\s+?Function\s*?\([^\)]+?\),window\[[^\]]+?\]\s*?=</configValue></group></module>

这段配置信息的大概意思如下:

  • FileUpload(文件上传):

    • TempDir:指定上传文件的临时目录为 upload
    • MaxSize:设置上传文件的最大大小为 104857600 字节(即 100 MB)。
    • InMemorySize:设置内存中存储的上传文件的最大大小为 10240 字节。
    • Exclude:定义不允许上传的文件扩展名,包括 exe, java, jsp, html, htm, class, jar
  • Encoding(编码):

    • Request:设置接收 HTTP 请求的字符集为 UTF-8
  • Suspend(挂起):

    • TimeOut:设置等待 XSD 加载挂起的超时时间为 60 秒。
  • Login-Filter(登录过滤器):

    • Exclude:列出可以被任何人访问的页面,包括未登录的用户。列出了各种 API 端点和静态资源,如图片、JavaScript、CSS 等等。
    • Include:设置允许所有页面(/*)。
    • LoginPage:定义未登录用户访问时显示的页面。
  • Accessed-Mode(访问模式):

    • Portal:设置为 false,表示未启用门户模式。
  • Http-Security(HTTP 安全):

    • isOpenSecurity:设置为 false,表示未启用 HTTP 安全。
    • Exclude:排除特定的 URL 匹配模式 **/common.download
    • regexs:定义正则表达式模式,用于防止安全漏洞,如 eval, alert, new Function, window[] 的直接赋值。

更细节的解释,就希望各位自己多研究研究了。

什么时候需要维护Access-Http

如果发现EOS项目在浏览器访问的时候,总是提示"登录信息已过期!"

大概率是因为 Login-Filter 这部分的配置出现了问题。

还有,当文件上传出现文件太大,上传失败的问题,也是这个部分的xml需要调整一下。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/51415.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C++版本】protobuf与gRPC

文章目录 一、Protobuf二、安装以及使用protoc参考 一、Protobuf Google Protocol Buffers&#xff08;protobuf&#xff09;是一种语言中立、平台中立的序列化协议&#xff0c;旨在高效地将结构化数据进行序列化和反序列化。它主要用于通信协议、数据存储和其他需要高效编码和…

封装和桥接Unity 协程体系

简介 协程&#xff08;Coroutine&#xff09;在C#中是一种特殊的函数&#xff0c;它允许开发者编写可以暂停执行并在未来某个时刻恢复执行的代码块。协程通常用于实现异步操作&#xff0c;如延时执行、等待某个事件发生、或者分段执行复杂的任务。在Unity游戏引擎中&#xff0c…

(Arxiv-2023)MobileDiffusion:移动设备上即时文本到图像生成

MobileDiffusion&#xff1a;移动设备上即时文本到图像生成 Paper Title&#xff1a;MobileDiffusion: Instant Text-to-Image Generation on Mobile Devices Paper是谷歌出品 Paper地址 图 1&#xff1a;MobileDiffusion 用于 (a) 文本到图像的生成。(b) Canny 边缘到图像、风…

docker容器cuda不可用,怎么解决?

通过Docker 构建的镜像中,启动之后,发现容器内部读取不到显卡驱动nvidia-smi 1、设置 NVIDIA Docker 存储库 distribution=$(. /etc/os-release;echo $ID$VERSION_ID) curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add

Docker容器基础篇

一.Docker容器简要介绍 Docker 是一个开源项目&#xff0c;旨在提供轻量级的应用容器化解决方案。它允许开发者打包应用及其所有依赖项到一个标准化的单元中&#xff0c;称为容器。这些容器可以在开发人员的工作环境中构建&#xff0c;然后轻松地在不同的计算机、服务器或云平…

Redis的分布式锁

目录 一、定义与原理 基于Redis的分布式锁 获取锁 释放锁 锁误删问题&#xff1a;因为key值一样,将别人的锁删掉了 锁误判问题二&#xff1a;判断锁和释放锁不是原子性的 Lua脚本 分布式锁&#xff1a;满足分布式系统或集群模式下多进程可见并且互斥的锁 分布式锁的优点…

Spring Cache常用注解

依赖代码如下&#xff1a; <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-cache</artifactId></dependency> 常用注解详解 1. Cacheable 作用&#xff1a;主要用于配置方法&#xff0c;使其…

Java编写SIP协议

1、编写Server代码 package com.genersoft.iot.vmp.sip; import javax.sip.*; import javax.sip.message.*; import javax.sip.header.*; import java.util.*;public class SimpleSipServer implements SipListener {private SipFactory sipFactory;private SipStack sipStack…

【前端】一文带你了解 CSS

文章目录 1. CSS 是什么2. CSS 引入方式2.1 内部样式2.2 外部样式2.3 内联样式 3. CSS 常见选择器3.1 基础选择器3.1.1 标签选择器3.1.2 类选择器3.1.3 id 选择器3.1.4 通配符选择器 3.2 复合选择器3.2.1 后代选择器 4. CSS 常用属性4.1 字体相关4.2 文本相关4.3 背景相关4.4 设…

前端必备基础【网络通信】(2024最新版)

Ajax Asynchronous Javascript and XML 的缩写&#xff0c;是使用 JS 发起网络通信的技术统称&#xff0c;具体步骤为&#xff1a; 创建 XMLHttpRequest 实例发出 HTTP 请求接收服务器传回的数据更新网页数据&#xff08;通常是部分内容&#xff0c;而不是整个网页&#xff09…

LLM - 理解 大模型 Batch 推理的 Padding Side (左填充或右填充)

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/140697827 免责声明:本文来源于个人知识与公开资料,仅用于学术交流,欢迎讨论,不支持转载。 使用 Left Padding (左填充) 或者 Right Padding (右填充),HuggingFac…

DBeaver安装与使用教程 免费的连接mysql数据库软件

一、DBeaver安装 &#xff08;一&#xff09;Dbeaver下载 DBeaver 是一个通用的数据库管理工具和 SQL 客户端&#xff0c;免费&#xff0c;跨平台&#xff0c;支持 MySQL, PostgreSQL, Oracle, DB2, MSSQL, Sybase, Mimer, HSQLDB, Derby, 以及其他兼容 JDBC 的数据库。 官网…

带你学会Git必会操作

文章目录 带你学会Git必会操作1Git的安装2.Git基本操作2.1本地仓库的创建2.2配置本地仓库 3.认识一些Git的基本概念3.1操作流程&#xff1a; 4.一些使用场景4.1添加文件场景一4.2查看git文件4.3修改文件4.4Git版本回退4.5git撤销修改 5.分支管理5.1查看分支5.2创建本地分支5.3切…

【C++进阶】AVL树详解

文章目录 1. AVL树的概念2. AVL树结点的定义3. AVL 树的插入3.1 关于平衡因子3.2 插入代码 4. AVL 树的旋转逻辑4.1 不需要旋转4.2 左旋4.3 右旋4.4 双旋4.4.1 先右后左单旋&#xff08;RL 旋转&#xff09;4.4.2 先左后右单旋&#xff08;LR 旋转&#xff09; 4.5 完整插入代码…

C语言 | Leetcode C语言题解之第301题删除无效的括号

题目&#xff1a; 题解&#xff1a; struct Next { int l, r, cl, cr; };void vec_push(char*** v, int* n, char* s) {if (!(*n & *n1)) {*v realloc(*v, sizeof(char*) * ((*n << 1) | 1));}(*v)[(*n)] s; }void dfs(const char* s, int i, struct Next next[],…

图片格式怎么转换?这几种图片格式转换方法简单又高效

图片已成为我们日常生活与工作中不可或缺的一部分。然而&#xff0c;不同平台和应用往往对图片格式有着特定的要求&#xff0c;这就使得图片格式的转换成为了一项必备技能。下面给大家分享5种能够简单高效的转换图片格式方法&#xff0c;快来一起学习下吧。 方法一&#xff1a;…

JavaFX布局-TitledPane

JavaFX布局-TitledPane 常用属性textcontentgraphicexpandedcollapsibleanimated 实现方式Javafxml 提供了一个可折叠的标题栏和一个内容区域内容区域可以嵌套其他布局 常用属性 text 设置标题 titledPane.setText("测试标题");content 内容区域&#xff0c;可以单…

【MySQL是怎样运行的 | 第二篇】MySQL三大日志文件

文章目录 2.MySQL三大日志文件2.1日志文件列表2.1.1 redo log2.1.2 bin log2.1.3 undo log 2.2redo log日志详讲2.3 binglog和redo log有什么区别&#xff1f;2.4一条更新语句的执行过程 2.MySQL三大日志文件 2.1日志文件列表 redo log&#xff1a;重做日志&#xff0c;记录了…

JDK 8 升级 17 及 springboot 2.x 升级 3.x 指南

JDK 8 升级 17 简介 从 JDK 8 升级到 JDK 17 的过程中&#xff0c;有几个主要的变化&#xff0c;特别是 Java Platform Module System (JPMS) 的引入&#xff0c;以及一些包路径的调整。以下是与 JDK 17 相关的一些重要变化&#xff1a; Java Platform Module System (JPMS) …

面试题:MySQL 索引

1. 谈一下你对于MySQL索引的理解?(为什么MySQL要选择B+树来存储索引) MySQL的索引选择B+树作为数据结构来进行存储,使用B+树的本质原因在于可以减少IO次数,提高查询的效率,简单来说就是可以保证在树的高度不变的情况下存储更多的数据: IO效率的提高:在MySQL数据库中,…