﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-新建文件夹-文章分类-JAVAWEB</title><link>http://www.blogjava.net/kanssa/category/24050.html</link><description>我的小窝</description><language>zh-cn</language><lastBuildDate>Sat, 21 Jul 2007 16:18:49 GMT</lastBuildDate><pubDate>Sat, 21 Jul 2007 16:18:49 GMT</pubDate><ttl>60</ttl><item><title>关于权限控制问题的简单解决</title><link>http://www.blogjava.net/kanssa/articles/131585.html</link><dc:creator>当里个当</dc:creator><author>当里个当</author><pubDate>Fri, 20 Jul 2007 17:26:00 GMT</pubDate><guid>http://www.blogjava.net/kanssa/articles/131585.html</guid><wfw:comment>http://www.blogjava.net/kanssa/comments/131585.html</wfw:comment><comments>http://www.blogjava.net/kanssa/articles/131585.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kanssa/comments/commentRss/131585.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kanssa/services/trackbacks/131585.html</trackback:ping><description><![CDATA[<p>我们的项目中jsp页面分成多个模块，每个用户有自己的权限模块树，即A用户有模块1,2,3的权限，B用户有模块2，3，4的权限，要求系统对不同的用户所属的模块进行权限验证，即A用户不能访问模块4页面，同理B用户是不能访问模块1页面<br><br>大家知道在Struts中是可以通过直接输入/jsp/xxx.jsp的方式绕过Action的权限控制直接访问页面的，我们现在的解决方式是每个模块页面有一个共用的javaBean，该bean实现从session中取出登录用户，判断该用户权限树中是否有该模块页面的权限，如果没有则跳转到登录页面要求以另一用户登录<br><br>但是这种解决方式很死，需要为每个页面定义一个ID，在每次初始化时将登录用户所属的模块页面ID都存在session中，虽然可配置在数据库中，但是代码维护性还是较差<br><br>解决：<br>不知搂主是否使用过j2ee的web.xml的&lt;security-constraint&gt;用法，这个完全解决问题。<br><br>如果不用以上方法，则可以：<br>1、把jsp的所在的文件夹或文件本身的名字设计得有规律性；<br>2、把用户放到用户组中去，用户组与资源相关联；<br>3、创建一个web filter进行处理本web模块所有的请求，也就是&lt;url-pattern&gt;*&lt;/url-pattern&gt;；<br>4、在filter中，截取请求url的文件夹部分及文件名等，做逻辑处理构造或获取资源ID，再根据资源ID和登陆用户的用户组ID访问&#8220;用户组资源表&#8221;进行验证，如验证成功，则filterChain.doFilter(),否则，则response.redirect("没有权限.jsp")；<br><br>注意：逻辑处理时要考虑到哪些是受限资源，哪些不是，<br>如访问的是 "没有权限.jsp" 则要filterChain.doFilter()；<br>而不是response.redirect("没有权限.jsp")，否则就死循环了。<br><br><br><br></p>
<img src ="http://www.blogjava.net/kanssa/aggbug/131585.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kanssa/" target="_blank">当里个当</a> 2007-07-21 01:26 <a href="http://www.blogjava.net/kanssa/articles/131585.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>