Spring AOP在DWR安全上的应用

Vue项目部署全攻略:从构建到Nginx配置与自动化上线 在现代Web开发中,前端项目的部署上线是连接开发与生产环境的关键环节。其核心原理在于将开发阶段的源代码通过构建工具(如Webpack或Vite)打包、压缩和优化,生成静态资源文件,以实现高性能与小体积。这一过程的技术价值在于确保应用在生产环境的稳定性、安全性和访问速度。典型的应用场景包括将单页应用(SPA)部署到云服务器,并通过Nginx等Web服务器提供高效的静态文件服务和路由管理。其中,**Nginx配置**是实现SPA路由Fallback(回退)的核心,而**环境变量**的管理则是保障前后端API正确 阅读详情

SpringAOP在DWR安全上的应用

 
 
【IT168技术文档】让 DWR自动往Service里面注入一个与Servlet相关的对象,作为参数。只是这样,要每个Service都加上这样的一个参数,奇丑无比!想了 想,决定就让DWR污染一下,Service保留原样。只是增加一个MethodBeforeAdvice(正是它让DWR的API污染了一下。),来对 Service的方法进行拦截,可以在Service的调用之前对操作进行所谓的身份验证,授权之类的操作。完整的拦截模块几个类文件加个Spring配 置文件搞定。
实现拦截功能的类有:

一、MainInteceptor,主拦截器,所以DWR的远程调用都会被拦截,当然, 调用是细到方法级的,可配置的,该类实现了Spring AOP的MethodBeforeAdvice接口,该类有一个集合成员变量,成员为IInteceptor。

二、IInteceptor,是一个接口,仅有一个execute(AopContext context)函数。该接口是拦截器(与前面的主拦截器不同,本接口定义的拦截器是可以由用户去实现,并且可以有多个)。实现接口只需要实现方法。这些 拦截器会被主拦截器回调。 比如要实现一个身份验证的拦截,SecuityInteceptor,在配置文件中把这个拦截器设置为主拦截器的属性即可获得回调。

三、AopContext,Aop上下文。在主拦截器调用IInteceptor的对象时,把这个上下文对象作为参数来调用子拦截器。从该上下文可获得一系列信息,如HttpSession,HttpRequest等。甚至你可以自已设置属性。

下面看一些代码片断:
    
MainInteceptor: private List < IInterceptor > interceptors; // 定义一系列的子拦截器 public void setInterceptors(List < IInterceptor > interceptors) { this .interceptors = interceptors; } 在before(Method method, Object[] params , Object target)方法里: WebContext ctx = WebContextFactory. get (); // 唯一被DWR污染的地方 HttpSession session = ctx.getSession(); AopContext context = new AopContext(); context.setSession(session); for (Iterator it = interceptors.iterator(); it.hasNext();){ IInterceptor interceptor = (IInterceptor) it.next(); interceptor.execute(context); } IInterceptor: public interface IInterceptor { public void execute(AopContext context); }
AopContext就不必贴出来了, 随自已定义些什么属性,不过就内置了一个Map,用来保存数据罢了。

下面来看看配置文件:
    
< beans > <!-- 将要暴露给DWR的Service --> < bean id = " bookManager " class = " org.springframework.aop.framework.ProxyFactoryBean " > < property name = " proxyInterfaces " > < value > net.jf.ajax.business.BookManager </ value > </ property > < property name = " target " > < ref local = " bookManagerImpl " /> </ property > < property name = " interceptorNames " > < list > < value > dwrAdvisor </ value > </ list > </ property > </ bean > < bean id = " bookManagerImpl " class = " net.jf.ajax.business.impl.BookManagerImpl " /> <!-- 装配器?如果看不懂,先看看Spring的Aop吧 :P --> < bean id = " dwrAdvisor " class = " org.springframework.aop.support.RegexpMethodPointcutAdvisor " > < property name = " advice " > < ref local = " dwrInterceptor " /> </ property > < property name = " patterns " > < list > < value > . * . *</ value > </ list > </ property > </ bean >
<!--主拦截器,给它设置子拦截器-->
    
< bean id = " dwrInterceptor " class = " net.jf.ajax.iterceptor.MainInterceptor " > < property name = " interceptors " > < list > < ref bean = " test " /> </ list > </ property > </ bean > <!-- 其中一个子拦截器的实现 --> < bean id = " test " class = " net.jf.ajax.iterceptor.TestInterceptor " /> </ beans >

就 这样,在配置DWR的配置文件时,配置<creator>时使用Spring的Creator就可以直接使用上面的Service了。当 DWR远程请求时,在配置范围内的方法的调用都会被主拦截器拦截,并且遍历、执行所有子拦截器。原有的Service不需要改动,只需要多加一个 Spring的配置文件,将原有的Service再加一层Aop的轻纱。

这是一种实现方法。如果有别的方法让DWR更安全、有效,请一定告知。:)

掌握企业级Web应用:Spring、DWR、Hibernate与iBATIS综合教程 本文还有配套的精品资源,点击获取 简介:Spring、DWR、Hibernate和iBATIS是构建企业级Web应用的关键Java技术框架。本教程深入讲解了这些框架的集成与实际应用,包括Spring的依赖注入与面向切面编程、Hibernate和iBATIS的对象关系映射、以及DWR实现的AJAX功能。本课程还将涉及如何将这些技术整合到一起,提供一个高效的Web应用开发解决方... 阅读详情

相关推荐

延迟相乘叠加求和 DMAS (Field II 仿真代码)

(Delay Multiply and Sum, DMAS)算法,最初是为雷达微波系统设计的,研究者们对 DMAS 波束合成方法进行了修改,并应用超声成像。结果表明,DMAS 波束合成在模拟和实验中的表现都优于传统的延时叠加(Delay and Sum, DAS),这种新方法带来的主要改进是对比度分辨率明显提高(即主瓣和侧瓣更窄),从而增加了动态范围,提高了 B 型超声图像质量。与传统 DAS 相似,DMAS 算法通过对来自超声换能器阵元的信号应用几何计算延迟来聚焦接收到的波束。

weixin_38452364的博客 3083

Spring读源码系列之AOP--05---aop常用工具类学习

Spring读源码系列之AOP--05---aop常用工具类学习引言环境搭建AopUtils---aop常用方法抽离AopUtils使用演示AopConfigUtils---自动代理创建器的管理AopNamespaceUtils---xml形式aop处理AopProxyUtils---获取代理接口和代理类的相关操作AopContext---aop上下文AutoProxyUtils---是否应该被代理,获得目标对象类型和是否暴露目标对象AspectJAopUtils---前置和后置增强判断AspectJPro

m0_53157173的博客 1970

混合部署 操作系统混合部署

在openEuler Embedded 22.03中,已经集成了OpenAMP相关支持,并与openEuler的SIG Zephyr合作实现了openEuler Embedded与实时操作系统Zephyr在QEMU平台上的混合部署。具体的混合部署方式取决于设备的硬件和软件支持。例如,可以使用虚拟机软件(如VirtualBox)在Linux操作系统上运行Android虚拟机,从而实现Linux和Android的混合部署。需要注意的是,混合部署涉及到设备的硬件和软件兼容性,以及操作系统的配置和管理。

dianqicyuyan的博客 1763

Spring AOP 在DWR安全上的应用

在上一篇文章里提到了可以让 DWR自动往Service里面注入一个与Servlet相关的对象,作为参数。只是这样,要每个Service都加上这样的一个参数,奇丑无比!想了 想,决定就让DWR污染一下,Service保留原样。只是增加一个MethodBeforeAdvice(正是它让DWR的API污染了一下。),来对 Service的方法进行拦截,可以在Service的调用之前对操作进行所谓的身份验...

像一颗晨土 163

YDOOK: ANSYS Maxwell 19 教程7:Maxwell 2D 材料管理 添加新增 永磁材料

使用ANSYS Maxwell 19 添加新增 永磁材料 1. 点击 Add material 按钮后,在左下方的下拉框中下拉选择永磁材料,弹出用材料设置框: 2. 按照下面数据输入 3. 输入 Hc 与 Br/Ap 两项后,其他项的数据将自动计算给出 4. 点击OK后再,为了使得材料属性的完整性,在 Bulk Conductivity 属性行中输入 材料电导率的数值。 ...

YDOOK 1万+

手把手教你用Qt和QScada框架,从零搭建一个简易的工业组态监控界面

本文详细介绍了如何使用Qt和QScada框架从零搭建工业组态监控界面,涵盖环境配置、界面设计、动态数据绑定及高级功能实现。通过实战案例演示,帮助开发者快速掌握SCADA系统开发技巧,提升工业自动化项目的开发效率。

weixin_32932149的博客 340

DWR+SpringMVC整合的3种方式之二

方式二:使用springmvc的控制器代替dwr的,加上相应的mapping,省掉了dwr.xml文件 说明:dwr与spring耦合度提高,做这个例子的时候,我原来是用的spring4.0以上的版本,结果很遗憾,一直搞定不了,原因就是dwr好像还不支持spring高的版本。 主要错误如下: java.lang.NoSuchMethodError: org.springframework.u

Java Farmer 3377

【OTFS与信号处理:论文阅读4】OTFS时延多普勒域嵌入导频辅助信道估计(已更新)

【OTFS与信号处理:论文阅读】Embedded Pilot-Aided Channel Estimation for OTFS in Delay–Doppler Channel(快来看看OTFS嵌入式导频设计的经典之作!!!)

Cuby的博客 5335

DWR+SpringMVC整合的3种方式之一

早上写了一篇dwr的基础文章,下午看了孔浩老师的dwr与springmvc的整合视频,自己跟着动手把各种方式都练习了一下,遇到些问题,记录给自己以后用dwr的时候复制吧。 方式一:各干各的,耦合度低 说明:方式一遇到的问题最少,可以说是顺利通过。 1、pom.xml 4.0.0 com.lessony dwr-spring01 1.0-

Java Farmer 4070

SAP S/4HANA Public Cloud 配置全景实践

本文提供SAP S/4HANA Public Cloud配置的实用指南,重点介绍三大核心工具:CBC(范围界定与配置)、SAP Activate(方法论与路线图)和Cloud ALM(项目执行与运维)。文章详解了不同系统架构(2SL/3SL)的配置路径,并以制造企业案例说明端到端实施流程。同时提供了工具协同操作方法、初始访问安全建议和常见问题的专家意见,帮助项目团队高效完成实施工作。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 562

Python 爬虫实战:爬取哔哩哔哩知识区,抓取高赞课程信息

哔哩哔哩(Bilibili)是一个广受欢迎的综合性视频社区,其中的知识区汇聚了大量优质的教育、科普、技术等课程内容。本文将指导读者如何使用 Python 爬虫技术从哔哩哔哩知识区抓取高赞课程信息,并进行数据分析。本文深入探究了利用 Python 爬虫技术从哔哩哔哩知识区抓取高赞课程信息的全流程。从前期的环境搭建、模拟登录,到核心的课程数据抓取、存储,再到后续的数据分析与可视化,都详细展开讲解并提供代码支持。通过此方法所获取的数据,能够助力创作者优化内容、用户发现优质课程、平台洞察用户需求。

u014481728的博客 1137

dwr整合spring

dwr整合spring时,出现以下异常。throw allowScriptTagRemoting is false.;//#DWR-INSERT//#DWR-REPLYdwr.engine.remote.handleException("2","0",{javaClassName:"java.lang.Throwable",message:"Error"});java.lang.Ill

jianw2007的专栏 9993

别再写XPath改DOM了!用OpenClaw零代码搞定爬虫全流程(抓取+清洗+存储)

免费版的大模型调用次数有限制(每天100次),但企业版是无限的,还能私有化部署;大模型分析DOM结构有时候会慢1-2秒,但比起节省的时间,完全可以接受;自定义Skill的文档还不够完善,但社区很活跃,有问题在Discord里问,很快就能得到回复。但总的来说,OpenClaw真的改变了我写爬虫的方式——以前我是“代码的奴隶”,现在我是“需求的提出者”,把时间花在更有价值的业务逻辑上,而不是重复繁琐的DOM调试上。如果你也在被传统爬虫折磨,强烈建议你试试OpenClaw,相信我,用了就回不去了。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1314

dwr整合spring 收藏

dwr整合spring 收藏 dwr整合spring时,出现以下异常。 throw 'allowScriptTagRemoting is false.'; //#DWR-INSERT //#DWR-REPLY dwr.engine.remote.handleException("2","0",{javaClassName:"java.lang.Throwable",message:...

wangzhenwangzhen的专栏 481

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Spring与DWR整合

Spring与DWR整合

1306

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

使用MyEclipse集成SSH和DWR(三)整合Spring和DWR

 开发环境: JDK 1.5Tomcat 6.0Spring 2.5Struts 1.3Hibernate 3.2DWR 2.0MyEclipse 6.5SQL Server 2005本系列文章PDF格式及示例源代码请到此处下载。 Spring与DWR整合的价值在于DWR使用的BO全部交给Spring管理,从而充分利用Spring强大的IoC和A

金庸Ematrix 5195

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Spring完全整合DWR

DWR的优势在项目中很容易体现出来,近乎完美的封装,超级简单的配置,在现在的Web项目中不使用DWR不是明智的举动。 给人直观的感觉就是可以在JSP页面中直接调用Service Bean中的方法,并且将返回值返回到页面,页面中可以直接使用。 如果项目中同时使用到了Spring和DWR,就必须对两者进行整合,原因很简单,因为DWR负责进行远程创建对象,在DWR进行远程创建的过程中...

zfsn7722483的专栏 201

在Spring 2中整合DWR 2

Spring 2基于XML Schema的配置 众所周知,Spring 2通过XML Schema配置方式极大地简化的其配置,而且使得第三方扩展变为可能。配置如下代码所示: &lt;? xml version="1.0" encoding="UTF-8" ?&gt; &lt; beans xmlns ="http://www.springframework.org/schema/beans"...

yufeng_web的博客 153

DWR2 SPRING2 AOP proxy 设置方法

在DWR文档中的,有这样的描述: Aspects & DWRIf youre receiving the dreaded object is not an instance of declaring class error always check these things: You have an interface and an implementation You have

老得不能再老的程序员 1025

集成SSH 和 DWR(三) 整合Spring和DWR

Spring与DWR整合的价值在于DWR使用的BO全部交给Spring管理,从而充分利用Spring强大的IoC和AOP特性。 1. 添加dwr.jar到WEB-INF/lib下,并在web.xml中添加对DWR的加载代码  servlet>    servlet-name>dwr-invokerservlet-name>servlet-class>org.directwebremot

蜗牛天堂 877

dwr与servlet spring 整合

使用DWR做Remote,完全绕过传统的MVC框架,如Struts、Webwork,单用一个DWRServlet来做控制器。DWR向客户端暴露了服务端的服务接口,很有可能有没有任何限制的情况下被客户端调用所暴露的接口。如果使用传统的MVC框架,可以很方便地解决很多问题诸如身份验证、权限控制等。而DWR提供的功能是给客户端暴露服务接口。上面所涉及的问题却少有牵涉。不过,解决方案还是有的。其中之一就是

lovemay520的专栏 1499

dwr学习 之 一、dwr+spring的简单集成

dwr学习 之 一、dwr+spring的简单集成 1. 环境搭建 我采用的环境为SpringMVC + myBatis + mySql + maven; 关于使用Eclipse构建Maven的SpringMVC项目,请参考: http://limingniha...

dengzi2536的博客 182

『转』整合SSH和DWR(3)spring+DWR

转文声明:收藏好文和方便学习。----------------------------------------------------------------------------------------------------------------------------------------------------------------------------             

Chatopera 1440

DWR与Spring的集成

DWR与Spring的集成       今天复习一下DWR与Spring的集成。1.       导入DWR框架的包,2.       配置spring配置文件xml version="1.0" encoding="UTF-8"?>beans xmlns="http://www.springframework.org/schema/beans"    xml

sz_bdqn的专栏 1734
上一篇: ProxyFactoryBean属性介绍
下一篇: AOP下的权限控制实现
moonsbird
博客等级 码龄20年 5粉丝 21原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值