在easyjweb应用中关于acegi安全配置的增强

本文介绍如何在EasyJWeb框架中使用easyJWebCommand参数指定控制器执行命令,并通过调整配置支持基于方法调用的权限控制,确保无论是GET还是POST请求都能有效实施权限验证。

  在easyjweb的应用程序中,我们习惯通过easyJWebCommand这一参数来指定服务器端控制器的执行命令。比如newsDocManage.ejf?easyJWebCommand=edit&id=1,将执行NewsDocManageAction中的doEdit方法。

  在acegi中,最简单也是最常用的权限控制是基于url拦截的权限控制。比如,为了对添加文章进行权限控制,我们需要添加一个类似如下URL资源:/newsDocManage.ejf/?easyJWebCommand=add.*。这样当用户点击这一连接的时候,将会进一步检查用户对该URL的访问权限,从而达到保护。

  在EasyJWeb的快速应用开发构架中,easyJWebCommand这一个命令参数都是以隐藏表示元素的形式存在的,比如,在表单中一般会包含下面的元素:。而大我数表单都是以post方式提交的。此时就无法使用基于URL拦截的方式对doEdit方法进行资源描述及权限控制,而只能使用基于方法调用的资源来描述。但acegi的方法调用需要使用AOP,特别是代理Bean的配置也比较麻烦,而且实现应用中是不会直接像acegi的示例那样直接修改配置文件的,而且这是MVC一级的东西,我们不宜使用AOP,(当然,直接通过AOP配置业务逻辑层组件的除外)。

  在今天更新的acegi集成的开发框架版本中,增加对NewsDocManageAction的doEdit方法进行描述及权限控制的支持。也就是说,不管使用get或者是post。在基于easyjweb的应用中,都可以直接使用get的方式来进行权限描述。比如上面的doEdit方法,可以直接使用下面的资源描述:/newsDocManage.ejf/?easyJWebCommand=edit.*
 
  这样,不管是post提交还是get提交,都可以使用一致的方式的对控制器中的方法进行权限设置了。


  注意要使用这个功能,需要调整一下web.xml的配置,特别是filter的配置。修改的事项:
  1、CharsetFilter需要放在Acegi Filter Chain Proxy的前面
  2、两个filter者url-pattern最好保持一致,否则就会在有的地方出现乱码。
  修改后的web.xml文件如下:

 

xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
 xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation
="http://java.sun.com/xml/ns/j2ee 
 http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
>
 
<context-param>
  
<param-name>easyjwebConfigLocation</param-name>
  
<param-value>/WEB-INF/mvc.xml,/WEB-INF/mvc-tms.xml</param-value>
 
</context-param>

 

 
<servlet>
  
<servlet-name>easyjf</servlet-name>
  
<servlet-class>com.easyjf.web.ActionServlet</servlet-class>
  
<load-on-startup>1</load-on-startup>
 
</servlet>

 
<servlet-mapping>
  
<servlet-name>easyjf</servlet-name>
  
<url-pattern>*.ejf</url-pattern>
 
</servlet-mapping>
 
<servlet-mapping>
  
<servlet-name>easyjf</servlet-name>
  
<url-pattern>/ejf/*</url-pattern>
 
</servlet-mapping>


 
<filter>
  
<filter-name>CharsetFilter</filter-name>
  
<filter-class>com.easyjf.web.CharsetFilter</filter-class>
  
<init-param>
   
<param-name>encoding</param-name>
   
<param-value>UTF-8</param-value>
  
</init-param>
  
<init-param>
   
<param-name>ignore</param-name>
   
<param-value>true</param-value>
  
</init-param>  
 
</filter>
 
 
<filter-mapping>
  
<filter-name>CharsetFilter</filter-name>
  
<url-pattern>/*</url-pattern>
 
</filter-mapping>

<filter>
  
<filter-name>Acegi Filter Chain Proxy</filter-name>
  
<filter-class>org.acegisecurity.util.FilterToBeanProxy</filter-class>
  
<init-param>
    
<param-name>targetClass</param-name>
    
<param-value>org.acegisecurity.util.FilterChainProxy</param-value>   
  
</init-param>
  
<init-param>
   
<param-name>init</param-name>
    
<param-value>lazy</param-value>
    
</init-param>
</filter>
<filter-mapping>
  
<filter-name>Acegi Filter Chain Proxy</filter-name>
  
<url-pattern>/*</url-pattern>
</filter-mapping>

</web-app> 



内容概要:本文介绍了一套针对智能穿戴设备的跑步/骑行轨迹记录系统实战方案,旨在解决传统运动APP存在的定位漂移、数据断层和路径分析单一等问题。系统基于北斗+GPS双模定位、惯性测量单元(IMU)和海拔传感器,实现高精度轨迹采集,并通过卡尔曼滤波算法修正定位误差,在信号弱环境下利用惯性导航补位,确保轨迹连续性。系统支持跑步与骑行两种场景的差异化功能,包括实时轨迹记录、多维度路径分析(如配速、坡度、能耗)、数据可视化(地图标注、曲线图、3D回放)、异常提醒及智能优化建议,并可通过蓝牙/Wi-Fi同步数据至手机APP,支持社交分享与专业软件导出。技术架构涵盖硬件层、设备端与手机端软件层以及云端数据存储,强调低功耗设计与用户体验优化。经过实测验证,系统在定位精度、续航能力和场景识别准确率方面均达到预期指标,具备良好的实用性和扩展性。; 适合人群:具备一定嵌入式开发或移动应用开发经验,熟悉物联网、传感器融合与数据可视化的技术人员,尤其是从事智能穿戴设备、运动健康类产品研发的工程师和产品经理;也适合高校相关专业学生作为项目实践参考。; 使用场景及目标:① 开发高精度运动轨迹记录功能,解决GPS漂移与断点问题;② 实现跑步与骑行场景下的差异化数据分析与个性化反馈;③ 构建完整的“终端采集-手机展示-云端存储”系统闭环,支持社交互动与商业拓展;④ 掌握低功耗优化、多源数据融合、动态功耗调节等关键技术在穿戴设备中的落地应用。; 阅读建议:此资源以真实项目为导向,不仅提供详细的技术实现路径,还包含硬件选型、测试验证与商业扩展思路,建议读者结合自身开发环境,逐步实现各模块功能,重点关注定位优化算法、功耗控制策略与跨平台数据同步机制的设计与调优。
内容概要:《QTools_V4.6.1用户手册》详细介绍了一款专为AutoCAD及CASS设计的辅助插件,涵盖测绘、设计等多个领域,提供超过400项实用功能。主要包括拓扑检查(如碎线、碎面、短边、弧段、锐角等检查)、图形与文字处理工具(如批量插图、文字对齐、编号、合并、替换等)、测绘专用工具(如断面、高程点、等高线、三角网处理)、以及图纸管理功能(如拆分、合并、解密、批量修改)等。插件支持云授权和加密锁两种激活方式,兼容AutoCAD 2004–2026及各版本CASS,并提供侧边栏、菜单栏、自定义命令等多种操作方式,同时具备自动更新与性能检测功能。; 适合人群:从事测绘、地理信息、建筑设计等相关领域的技术人员,熟悉AutoCAD/CASS操作,具备一定工程制图经验的从业人员。; 使用场景及目标:①用于地形图、地籍图、宗地图等专业图纸的自动化处理与质量检查;②提升CAD绘图效率,实现批量操作、数据提取、格式转换、拓扑修复等任务;③支持测绘项目中的断面绘制、高程分析、坐标展点、土方计算等核心流程;④解决图纸编辑受限、字体缺失、块无法分解等问题。; 阅读建议:建议结合实际项目操作手册中的功能命令,优先掌握常用快捷指令(如qq、tp、dm、gcd等),并利用“功能搜索”快速定位工具。使用前确保正确加载插件并完成授权,遇到问题可参考“常见问题”章节进行排查。定期关注更新内容以获取新功能和优化体验。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值