coody-icop 正在参加 2021 年度 OSC 中国开源项目评选,请投票支持!
coody-icop 在 2021 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
2021 年度 OSC 中国开源项目评选 正在火热进行中,快来投票支持你喜欢的开源项目!
2021 年度 OSC 中国开源项目评选 >>> 中场回顾
coody-icop 获得 2021 年度 OSC 中国开源项目评选「最佳人气项目」 !
授权协议 GPL
开发语言 Java
操作系统 跨平台
软件类型 开源软件
所属分类 Web应用开发Web框架
开源组织
地区 国产
投 递 者 Coody
适用人群 未知
收录时间 2018-02-26

软件简介

coody-icop,纯代码模拟 IOC+AOP+MVC 体系。

1. 项目背景:

由于笔者近期参与的一些项目体系未使用到任何框架,而笔者对spring体系特别向往,故此研发本项目。

2. 功能说明:

本项目实现注解形式的bean加载、依赖注入、切面等功能。简单实现mvc。

3. 项目特点:

本项目使用cglib。秉承轻量、易用、简单、高效等原则。依赖jar:cglib-nodep-3.1.jar fastjson-1.2.31.jar log4j-1.2.17.jar  依赖jar包其余版本自行测试。

4. 环境说明:

JDK1.8+

5.目录结构: 

6. 程序架构:

由于在撰写本文背景下无作图环境,故此略去架构图。以下提供一些结构说明

1、包说明

org.coody.framework.entity常用实体包。

org.coody.framework.util  常用工具包

org.coody.framework.box  核心实现包

org.coody.framework.box.adapt 适配器包

org.coody.framework.box.annotation 注解包

org.coody.framework.box.container 容器包

org.coody.framework.box.constant 常量包

org.coody.framework.box.iface 接口包

org.coody.framework.box.init 初始化入口包

org.coody.framework.box.mvc MVC实现包

org.coody.framework.box.proyx 动态代理包

org.coody.framework.box.wrapper 包装类

2、类说明-注解

org.coody.framework.box.annotation.Around环绕通知注解标识,用于切面实现

org.coody.framework.box.annotation.InitBean初始化Bean。类似于spring的Service等注解,标记一个bean类

org.coody.framework.box.annotation.JsonSerialize序列化JSON输出,用于controller方法标识。类似于spring的ResponseBody注解

org.coody.framework.box.annotation.OutBean 输出Bean。类似于Resource/AutoWired注解

org.coody.framework.box.annotation.PathBinding 输出Bean。类似于Resource/AutoWired注

3、类说明-适配器

org.coody.framework.box.adapt.ParamsAdapt  参数适配器,用于MVC下参数的装载(目前只实现request、response、session三个参数的自动装载)

4、类说明-容器

org.coody.framework.box.container.BeanContainer 容器,用于存储bean,类似于spring的application

org.coody.framework.box.container.MappingContainer  Mvc映射地址容器

5、类说明-接口

org.coody.framework.box.iface.InitFace 初始化接口,凡是实现该接口的bean需实现init方法。在容器启动完成后执行。

6、类说明-启动器

org.coody.framework.box.init.BoxRute 容器入口。通过该类的init(packet)方法指定扫描包路径

org.coody.framework.box.init.BoxServletListen 监听器,配置在webxml用于引导容器初始化

7、类说明-mvc分发器

org.coody.framework.box.mvc.DispatServlet 类似于spring的DispatServlet

8、类说明-代理工具

org.coody.framework.box.proyx.CglibProxy 基于cglib字节码创建子类的实现

9、类说明-包装类

org.coody.framework.box.wrapper.AspectWrapper 本处命名可能不尽规范。本类用于多切面的调度和适配  

7. 实现效果:

 

8. 版权说明:

在本项目源代码中,已有测试demo,包括mvc、切面等示例

作者:Coody

反馈邮箱:644556636@qq.com

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论

点击加入讨论🔥(7)
暂无内容
发表了博客
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
发表了问答
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
Apache Log4j 代码问题漏洞
反序列化
当攻击者对 Log4j 配置具有写访问权限或配置引用攻击者有权访问的 LDAP 服务时,所有 Log4j 1.x 版本中的 JMSSink 都容易受到不受信任数据的反序列化。攻击者可以提供一个 TopicConnectionFactoryBindingName 配置,使 JMSSink 执行 JNDI 请求,从而以类似于 CVE-2021-4104 的方式执行远程代码。请注意,此问题仅在专门配置为使用 JMSSink(不是默认设置)时影响 Log4j 1.x。 Apache Log4j 1.2 已于 2015 年 8 月结束生命周期。用户应升级到 Log4j 2,因为它解决了以前版本中的许多其他问题。
CVE-2022-23302 MPS-2022-1446
2022-08-08 20:55
Fastjson 1.2.25-1.2.47版本远程代码执行漏洞
使用外部可控制的输入来选择类或代码(不安全的反射)
Fastjson 是Java语言实现的快速JSON解析和生成器,在1.2.25-1.2.47版本中攻击者可通过精心构造的JSON请求,绕过此前修复机制,远程执行任意代码。 漏洞原因: 攻击者可通过白名单类java.lang.Class绕过checkAutotype方法,利用fastjson的cache机制引入恶意类,并调用连接远程rmi主机,通过其中的恶意类执行代码。
MPS-2018-27011
2022-08-08 20:55
Apache Log4j 代码问题漏洞
反序列化
Log4j是美国阿帕奇(Apache)软件基金会的一款基于Java的开源日志记录工具。Log4j 1.2版本中包含一个SocketServer类,在未经验证的情况下,该SocketServe类很容易接受序列化的日志事件并对其进行反序列化,在结合反序列化工具使用时,可以利用该类远程执行任意代码。
CVE-2019-17571 MPS-2019-17271
2022-08-08 20:55
Fastjson < 1.2.60 版本拒绝服务漏洞
拒绝服务
Fastjson 是Java语言实现的快速JSON解析和生成器,在<1.2.60的版本中攻击者可通过精心构造的JSON请求,造成服务器内存和CPU等资源耗尽,最终系统宕机。 漏洞原因: fastjson处理\x转义字符不当,json中包含恶意构造的请求时可能引发OOM。
MPS-2019-28848
2022-08-08 20:55
Apache Ant 信息泄露漏洞
将资源暴露给错误范围
Apache Ant是美国阿帕奇(Apache)基金会的一套用于Java软件开发的自动化工具。该工具主要用于软件的编译、测试和部署等。 Apache Ant 1.1版本至1.9.14版本和1.10.0版本至1.10.7版本中存在信息泄露漏洞。攻击者可利用该漏洞泄漏敏感信息。
CVE-2020-1945 MPS-2020-7418
2022-08-08 20:55
Apache Log4j 代码问题漏洞
反序列化
CVE-2020-9493 发现了 Apache Chainsaw 中存在的反序列化问题。在 Chainsaw V2.0 之前,Chainsaw 是 Apache Log4j 1.2.x 的一个组件,存在同样的问题。
CVE-2022-23307 MPS-2022-1445
2022-08-08 20:55
c3p0 存在 XXE 漏洞
XXE
c3p0是一款支持高并发的开源JDBC连接池库。 c3p0 0.9.5.2版本中com/mchange/v2/c3p0/cfg/C3P0ConfigXmlUtils.java文件的extractXmlConfigFromInputStream存在跨站脚本漏洞。远程攻击者可利用该漏洞注入任意的Web脚本或THML。
CVE-2018-20433 MPS-2018-16252
2022-08-08 20:55
Apache Log4j 信任管理问题漏洞
证书验证不恰当
Apache Log4j是美国阿帕奇(Apache)基金会的一款基于Java的开源日志记录工具。 Apache Log4j中存在信任管理问题漏洞,该漏洞源于SmtpAppender没有验证主机名称与SMTPS连接的SSL/TLS证书是否匹配。攻击者可通过实施中间人攻击利用该漏洞拦截SMTPS连接,获取日志消息。
CVE-2020-9488 MPS-2020-6684
2022-08-08 20:55
fastjson < 1.2.83 任意代码执行漏洞
反序列化
Fastjson 是Java语言实现的快速JSON解析和生成器。 fastjson 使用黑白名单用于防御反序列化漏洞,1.2.80及以下版本在特定条件下可绕过默认autoType关闭限制,攻击远程服务器。 攻击者可利用该漏洞远程执行恶意代码。
CVE-2022-25845 MPS-2022-11320
2022-08-08 20:55
Apache Log4j SQL注入漏洞
SQL注入
根据设计,Log4j 1.2.x 中的 JDBCAppender 接受 SQL 语句作为配置参数,其中要插入的值是来自 PatternLayout 的转换器。消息转换器 %m 可能总是包含在内。这允许攻击者通过将精心制作的字符串输入到记录的应用程序的输入字段或标题中来操纵 SQL,从而允许执行意外的 SQL 查询。请注意,此问题仅在专门配置为使用 JDBCAppender(不是默认设置)时才会影响 Log4j 1.x。从 2.0-beta8 版本开始,重新引入了 JDBCAppender,适当支持参数化 SQL 查询,并进一步自定义写入日志的列。 Apache Log4j 1.2 已于 2015 年 8 月结束生命周期。用户应升级到 Log4j 2,因为它解决了以前版本中的许多其他问题。
CVE-2022-23305 MPS-2022-1444
2022-08-08 20:55
Fastjson <=1.2.68 远程代码执行漏洞
使用外部可控制的输入来选择类或代码(不安全的反射)
Fastjson 是Java语言实现的快速JSON解析和生成器,在<=1.2.68的版本中攻击者可通过精心构造的JSON请求,远程执行恶意代码。 漏洞原因: Fastjson采用黑白名单的方法来防御反序列化漏洞,导致当黑客不断发掘新的反序列化Gadgets类时,发现在AutoTypeSupport关闭的情况下仍然可能可以绕过黑白名单防御机制,造成远程命令执行漏洞。 本次绕过通过继承自 Throwable 异常类的白名单类gadget实现,漏洞点为ThrowableDeserializer#deserialze。
MPS-2020-39708
2022-08-08 20:55
Fastjson <= 1.2.60 版本远程代码执行漏洞
使用外部可控制的输入来选择类或代码(不安全的反射)
Fastjson 是Java语言实现的快速JSON解析和生成器,在<=1.2.60的版本中攻击者可通过精心构造的JSON请求,在autoType显式开启的情况下,绕过黑名单机制,远程执行任意代码。 漏洞原因: 攻击者发现了两个类JNDIConfiguration和OracleManagedConnectionFactory不在黑名单中,可调用连接远程rmi主机,通过其中的恶意类执行代码。
MPS-2019-28847
2022-08-08 20:55
c3p0 存在 XXE 漏洞
XXE
c3p0是一款支持高并发的开源JDBC连接池库。 c3p0 0.9.5.4之前版本中存在 XXE 注入漏洞。攻击者可利用该漏洞造成拒绝服务。
CVE-2019-5427 MPS-2019-4274
2022-08-08 20:55
Apache Log4j 安全漏洞
当攻击者对 Log4j 配置具有写访问权限时,Log4j 1.2 中的 JMSAppender 容易受到不受信任数据的反序列化。攻击者可以提供 TopicBindingName 和 TopicConnectionFactoryBindingName 配置,导致 JMSAppender 执行 JNDI 请求,从而以类似于 CVE-2021-44228 的方式执行远程代码。请注意,此问题仅在专门配置为使用 JMSAppender(不是默认设置)时影响 Log4j 1.2。 Apache Log4j 1.2 已于 2015 年 8 月结束生命周期。用户应升级到 Log4j 2,因为它解决了以前版本中的许多其他问题。
CVE-2021-4104 MPS-2021-38359
2022-08-08 20:55
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
7 评论
87 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部