??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲中文无码线在线观看,亚洲综合一区国产精品,亚洲成色www久久网站夜月http://m.tkk7.com/Metadmin/解开耦合Q权限不再编E,zh-cnSat, 10 May 2025 00:04:16 GMTSat, 10 May 2025 00:04:16 GMT60权限理最佛_践:四,数据U查询权限管?/title><link>http://m.tkk7.com/Metadmin/archive/2010/09/08/331430.html</link><dc:creator>l粒度权限管?/dc:creator><author>l粒度权限管?/author><pubDate>Wed, 08 Sep 2010 13:38:00 GMT</pubDate><guid>http://m.tkk7.com/Metadmin/archive/2010/09/08/331430.html</guid><wfw:comment>http://m.tkk7.com/Metadmin/comments/331430.html</wfw:comment><comments>http://m.tkk7.com/Metadmin/archive/2010/09/08/331430.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://m.tkk7.com/Metadmin/comments/commentRss/331430.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/Metadmin/services/trackbacks/331430.html</trackback:ping><description><![CDATA[<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "> </p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; ">-------------------------------------------- dU?---------------------------------</p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "><a style="color: #108ac6; text-decoration: underline; ">Ralasafe</a>开源有D|间了Q大U有2个月了。根据社区的反馈Q我打算围绕Ralasafe最佛_践,书写一pdBLOG?/p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "> </p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; ">大体内容有:</p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; ">1Q?nbsp;<a style="color: #108ac6; text-decoration: underline; ">d控制</a>Q?哪些面需要登录后才能讉KQ登录用户名、密码验证,d转向面Q?/p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; ">2Q?nbsp;<a style="color: #108ac6; text-decoration: underline; ">URL权限控制</a>Q哪些页面访问需要进行角色权限验证,怎样验证最单有效,如何处理验证p|情况Q?/p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "><a style="color: #108ac6; text-decoration: underline; ">3Q?数据U权限管理方案探讨:选择中间件呢q是框架Q?/a></p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "><a style="color: #108ac6; text-decoration: underline; ">4Q?Ralasafe体系l构Q?用户怎么dQ用h哪些字段Q怎样与应用基Q?/a></p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; ">5Q?数据U查询权限管理: 如何l不同的人分配不同的查询数据权限Q返回where条g呢,q是直接q回l果集?</p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; ">6Q?数据U决{权限管理: 如何l不同的人分配不同的数据操作权限Q当用户不具备权限怎么办?</p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; ">7Q?其他l小的权限控Ӟ 如下拉框昄内容Q按钮、链接是否显C,囄是否昄{?/p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; ">-------------------------------------------- ------- --------------------------------</p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "> </p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "> </p> <h1 style="font-size: 2em; line-height: 1.5em; margin-top: 0px; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: black; font-family: Arial, sans-serif, Helvetica, Tahoma; ">数据U权限管理需?/h1> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; ">数据U权限管理需求主要有Q?/p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; ">1Q支持不同用h询到数据是不同的Q?/p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; ">2Q支持数据库行、列U查询;</p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; ">3Q支持分|询——包?个方面:aQ分|出数据;bQ能告知L据条数是多少Q?/p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; ">4Q支持自定义条gQ比如:张三在自q查询权限范围内,查询50w以上的订单)?/p> <h1 style="font-size: 2em; line-height: 1.5em; margin-top: 0px; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: black; font-family: Arial, sans-serif, Helvetica, Tahoma; ">理论分析</h1> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; ">能够数据权限Q与业务分离出来——是多年来开发h员追求的目标。一旦遇到疑难杂症,马上会让惛_高难度的API~程Q或者绚丽的XML配置?/p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "> </p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; ">不过Q我今天的分析,会极其简单。不q我强烈大家看下厅R如果对该方案有所怀疑,请用你的应用案例进行试验。我当时不敢认的时候,是q么做的?/p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; ">Q当初,我提Ҏ的时候,我们团队认ؓ该方案过于简单,不可行。我坚持让他们实现该Ҏ。等产品做出来后Q他们略有所悟,认ؓ该方案可行。当Q我让他们做demo的时候,该Ҏq用于案例的时候,他们拍腿叫道Q超U太了Q我希望你也有该感受Q?/p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "> </p> <h2 style="font-size: 1.5em; line-height: 1.5em; margin-top: 0px; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: black; font-family: Arial, sans-serif, Helvetica, Tahoma; ">分类思想的提?/h2> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; ">首先Q我们思考这个问题:Z么我们在E序里面使用了if/elseQؓ什么数据权限难以处理Q?/p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; ">原因是Q?Q有很多U情况;2Q我们需要针对不同的人、不同的情况做不同的权限逻辑。比如:</p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "> </p> <div style="background-color: #eeeeee; font-size: 13px; border-left-color: #cccccc; padding-right: 5px; padding-bottom: 4px; padding-left: 4px; padding-top: 4px; width: 98%; word-break: break-all; "><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span style="color: #0000FF; ">if</span><span style="color: #000000; ">  是d司用P  then 查询所有订单;  <br /> </span><span style="color: #0000FF; ">else</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">  是分公司用户Q?nbsp; then 查询本分公司Q?{用户的公司}Q及下属子公司订单;  <br /> </span><span style="color: #0000FF; ">else</span><span style="color: #000000; "> </span><span style="color: #008000; ">//</span><span style="color: #008000; ">  是子公司用户?nbsp; </span><span style="color: #008000; "><br /> </span><span style="color: #000000; ">then 查询本子公司订单Q?{用户的公司}Q?nbsp;</span></div> <p> </p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; ">在RBAC模型里面有用Ll概念,也有不少开发h员将用户组引入数据U权限管理领域。群l很好的用户归l,但不之处是要事先将用户归入l内。比如,在将张三指定?#8220;d司用L”之前Q他不属于该用户l,即便张三的机构属性显CZ属于d司?/p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; ">我们对群l进行稍微改造:使用规则来定义群l,满该规则的用户Q我们则认ؓ该用户属于该组。传l编E里面的if/else判断条gQ基本都可以使用规则或者规则表辑ּl来描述。此Ӟ张三的机构属性显C是d司,那么他就属于d司用LQ如果他的机构属性是某个分公司,那么他就属于分公司用L了。无需q行额外操作Q指定、重新指zQ一切都是动态智能的Q?/p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "> </p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; ">OKQ至此,我们提出了用规则描q的“用户分类”。该规则应该能读取用户信息、上下文信息、数据查询等Qƈq行相关q算Q比较、集合运等Q?/p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "> </p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; ">xQ我们可以基于用戯分类Qؓ每个用户分类分配一个查询。(该查询可以接受相兛_敎ͼ比如用户参数、上下文参数{)</p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; ">那么上述例子Q用分cL想Q可以这么解冻I</p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; ">用户分类Qd司用L —?查询Q查询所有订?/p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; ">用户分类Q分公司用户c?—?查询Q查询本分公司及下属子公司订单;</p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; ">用户分类Q子公司用户c?—?查询Q查询本子公司订单?/p> <h2 style="font-size: 1.5em; line-height: 1.5em; margin-top: 0px; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: black; font-family: Arial, sans-serif, Helvetica, Tahoma; ">与功能权限结?/h2> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; ">我认为功能权限与数据权限分开非常合适。功能权限由企业IT理员维护;数据权限pY件开发商l护。有Z说这样不好,比如q个案例怎么处理Q?/p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; ">普通审查员可以审查50w财务数据Q中U审查员审查50w?00w的胦务数据。这?0w?00wQ企业需要自行维护?/p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "> </p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; ">OKQ我认ؓq?0w?00w应该UCؓ“权限{略数据”Q可以保存到数据库里面,做ؓ基础数据或者数据字典由企业通过界面自行l护。而Y件开发商Q开发的“数据U权?#8221;{略dq些数据。(当然Q你可以~存。。。。)</p> <h1 style="font-size: 2em; line-height: 1.5em; margin-top: 0px; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: black; font-family: Arial, sans-serif, Helvetica, Tahoma; ">RalasafeҎ</h1> <h2 style="font-size: 1.5em; line-height: 1.5em; margin-top: 0px; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: black; font-family: Arial, sans-serif, Helvetica, Tahoma; ">怎样实现数据U查询权?/h2> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; ">Z理解本节内容Q徏议下?a style="color: #108ac6; text-decoration: underline; ">ralasafe demo</a>应用Q对照图形界面,更容易理解些?/p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; ">Ralasafe使用理界面来定制用户分cR定制数据查询。ؓ了确保定制无误,Ralasafe支持在线试。比如定制用户分cdQ可以选择一个用戯行测试。数据查询等都是可以在线试的?/p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "> </p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; ">定制完毕后,用户分cd数据查询配对Q赋l特Ҏ限。一个权限,可以赋多个(用户分类——数据查询)配对。和前面的理论分析一栗?/p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "> </p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; ">具体定制Q怎样配对Q可以参考文档,配有囄Q在此不做多说?a style="color: #108ac6; text-decoration: underline; ">定制用户分类</a>Q?a style="color: #108ac6; text-decoration: underline; ">定制数据查询</a>Q?a style="color: #108ac6; text-decoration: underline; ">l权限授权策?/a>Q即配对Q?/p> <h2 style="font-size: 1.5em; line-height: 1.5em; margin-top: 0px; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: black; font-family: Arial, sans-serif, Helvetica, Tahoma; ">怎样与应用结?/h2> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; ">Ralasafe提供<a style="color: #108ac6; text-decoration: underline; ">org.ralasafe.Ralasafe</a>?a style="color: #108ac6; text-decoration: underline; ">org.ralasafe.WebRalasafe</a>两个接口cR里面的queryҎ对应数据U查询权限。在应用pȝ相应的地方,调用该方法即可。我在系l的控制层调用,卻Iservlet或者action?/p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "> </p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; ">ralasafe demo例子QEmployeServlet是q么调用的:Qdemo演示员工查询Q不是订单查?span style="font-family: Simsun; line-height: normal; font-size: medium; "><img border="0" align="absmiddle" src="/CuteSoft_Client/CuteEditor/images/emsmilep.gif" alt="" /></span>Q?/p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "> </p> <div style="background-color: #eeeeee; font-size: 13px; border-left-color: #cccccc; padding-right: 5px; padding-bottom: 4px; padding-left: 4px; padding-top: 4px; width: 98%; word-break: break-all; "><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span style="color: #008000; ">//</span><span style="color: #008000; "> 通过Ralasafe接口获取当前用户被授权查看的员工  </span><span style="color: #008000; "><br /> </span><span style="color: #000000; ">Collection employees </span><span style="color: #000000; ">=</span><span style="color: #000000; "> WebRalasafe.query(req, Privilege.QUERY_EMPLOYEE);  <br /> </span><span style="color: #008000; ">//</span><span style="color: #008000; "> 数据放入requestQ供前台展示  </span><span style="color: #008000; "><br /> </span><span style="color: #000000; ">req.setAttribute(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">employees</span><span style="color: #000000; ">"</span><span style="color: #000000; ">, employees);  </span></div> <p> </p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; ">OKQ就q么单。需要编E的工作量非帔R常少Q达C极致。世界从此清净了?/p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "> </p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; ">QWebRalasafe.queryҎ接受req<HttpRequest>参数Q从q里dUser。Ralasafe.queryҎ则直接传入UserQ可供非webcd用调用) </p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "><span style="font-size: 18px; font-weight: bold; ">pȝl构</span></p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; ">Ralasafe由权限引擎和理界面l成。权限引擎解析权限策略;理界面生成、维护权限策略。如囄Q?/p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "><img src="http://www.ralasafe.org/zh/images/stru.png" alt="" width="342" height="179" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; " /></p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "> </p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "> </p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; line-height: 18px; "><span style="line-height: 18px; font-family: Arial, sans-serif, Helvetica, Tahoma; "><span style="font-size: 12px; color: #323e32; line-height: 18px; font-family: simsun; ">注:ralasafe团队博客?a target="_blank" style="color: #008e7a; text-decoration: none; ">javaeye</a>/<a target="_blank" style="color: #008e7a; text-decoration: none; ">baidu</a>/<a href="http://m.tkk7.com/metadmin" style="color: #108ac6; text-decoration: underline; ">blogjava</a>{空_同步发布。ralasafe官方|站Q?/span></span><span style="line-height: 18px; font-family: Arial, sans-serif, Helvetica, Tahoma; "><span style="font-size: 12px; color: #323e32; line-height: 18px; font-family: simsun; "><a target="_blank" style="color: #008e7a; text-decoration: none; ">http://www.ralasafe.org/zh</a></span></span></span></p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "> </p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "> </p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "> </p> <img src ="http://m.tkk7.com/Metadmin/aggbug/331430.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/Metadmin/" target="_blank">l粒度权限管?/a> 2010-09-08 21:38 <a href="http://m.tkk7.com/Metadmin/archive/2010/09/08/331430.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>权限理最佛_践:?amp;四,数据U权限管理方案探?/title><link>http://m.tkk7.com/Metadmin/archive/2010/09/06/331258.html</link><dc:creator>l粒度权限管?/dc:creator><author>l粒度权限管?/author><pubDate>Mon, 06 Sep 2010 14:58:00 GMT</pubDate><guid>http://m.tkk7.com/Metadmin/archive/2010/09/06/331258.html</guid><wfw:comment>http://m.tkk7.com/Metadmin/comments/331258.html</wfw:comment><comments>http://m.tkk7.com/Metadmin/archive/2010/09/06/331258.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/Metadmin/comments/commentRss/331258.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/Metadmin/services/trackbacks/331258.html</trackback:ping><description><![CDATA[<div style="color: #000000; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; margin-top: 8px; margin-right: 8px; margin-bottom: 8px; margin-left: 8px; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; background-position: initial initial; background-repeat: initial initial; "> <p mce_style="padding: 0px; margin: 0px;" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">-------------------------------------------- dU?---------------------------------</p> <p mce_style="padding: 0px; margin: 0px;" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><a mce_>Ralasafe</a>开源有D|间了Q大U有2个月了。根据社区的反馈Q我打算围绕Ralasafe最佛_践,书写一pdBLOG?/p> <p mce_style="padding: 0px; margin: 0px;" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><br /> </p> <p mce_style="padding: 0px; margin: 0px;" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">大体内容有:</p> <p mce_style="padding: 0px; margin: 0px;" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">1Q?nbsp;<a href="http://m.tkk7.com/Metadmin/archive/2010/09/01/330609.html">d控制</a>Q?哪些面需要登录后才能讉KQ登录用户名、密码验证,d转向面Q?/p> <p mce_style="padding: 0px; margin: 0px;" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">2Q?nbsp;<a href="http://m.tkk7.com/Metadmin/archive/2010/09/02/330760.html">URL权限控制</a>Q哪些页面访问需要进行角色权限验证,怎样验证最单有效,如何处理验证p|情况Q?/p> <p mce_style="padding: 0px; margin: 0px;" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">3Q?数据U权限管理方案探讨:选择中间件呢q是框架Q?/p> <p mce_style="padding: 0px; margin: 0px;" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">4Q?Ralasafe体系l构Q?用户怎么dQ用h哪些字段Q怎样与应用基Q?/p> <p mce_style="padding: 0px; margin: 0px;" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">5Q?数据U查询权限管理: 如何l不同的人分配不同的查询数据权限Q返回where条g呢,q是直接q回l果集?</p> <p mce_style="padding: 0px; margin: 0px;" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">6Q?数据U决{权限管理: 如何l不同的人分配不同的数据操作权限Q当用户不具备权限怎么办?</p> <p mce_style="padding: 0px; margin: 0px;" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">7Q?其他l小的权限控Ӟ 如下拉框昄内容Q按钮、链接是否显C,囄是否昄{?/p> <p mce_style="padding: 0px; margin: 0px;" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">-------------------------------------------- ------- --------------------------------</p> <p mce_style="padding: 0px; margin: 0px;" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><br /> </p> <h1 style="font-size: 2em; ">数据U权?/h1> <p mce_style="padding: 0px; margin: 0px;" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">数据U权限,无外乎这些类型:</p> <p mce_style="padding: 0px; margin: 0px;" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">1Q数据库行列U:比如领导查询数据范围和普通员工查询的数据范围不同Q客L理能够查询客戯pL式字D,而其他h不能查看客户联系方式字段?/p> <p mce_style="padding: 0px; margin: 0px;" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">2Q字D内ҎӞ比如普通审查员审查50w以下财务数据Q刚入职客户l理只能客L别调整不能超q?U?/p> <p mce_style="padding: 0px; margin: 0px;" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><br /> </p> <p mce_style="padding: 0px; margin: 0px;" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">从用户与数据的交互方向可以分?大类Q?/p> <p mce_style="padding: 0px; margin: 0px;" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">1Q从pȝ获取数据Q查询)Q?/p> <p mce_style="padding: 0px; margin: 0px;" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">2Q向pȝ提交数据之前的判断?/p> <h1 style="font-size: 2em; ">现实困惑</h1> <p mce_style="padding: 0px; margin: 0px;" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">q种权限与业务紧密耦合Q很难找到通用Ҏ。绝大部分系l仍焉用if/else来编E,而且q种逻辑分散到系l的各个环节Q甚臌会在pȝ多处出现重复判断?/p> <p mce_style="padding: 0px; margin: 0px;" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">也有不少|友试5表模型等Q试N过数据模型构造好的ACCESS CONTROL LIST来控制。这U构造ENTRY模式Q当数据量小的时候,是可行的Q维护工作量也不大。当数据量大的时候,昄不能奏效。甚x法运行,l护工作量非常大?/p> <p mce_style="padding: 0px; margin: 0px;" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">主要表现在:</p> <p mce_style="padding: 0px; margin: 0px;" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">1Qwhere 语句里面的in(..., ..., ..., ..., ...) 子条件过长,或者用in (select ... from ACL_ENTRY where ... )性能也是非常低下的;</p> <p mce_style="padding: 0px; margin: 0px;" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">2Q当删除某用L时候,需要在ACL_ENTRY表里面,删除相关记录Q?/p> <p mce_style="padding: 0px; margin: 0px;" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">3Q当删除某业务数据的时候,也需要在ACL_ENTRY表里面,删除掉相兌录;</p> <p mce_style="padding: 0px; margin: 0px;" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">4Q数据量大,ACL_ENTRY数据量承几何U增ѝ?/p> <p mce_style="padding: 0px; margin: 0px;" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><br /> </p> <p mce_style="padding: 0px; margin: 0px;" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">也有企业试使用规则引擎来解冟뀂这是非常好的尝试,提升了系l开发效率、组件复用率?/p> <p mce_style="padding: 0px; margin: 0px;" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">主要表现在:</p> <p mce_style="padding: 0px; margin: 0px;" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">1Q首先,d的实践了一Ҏ佳项目实践:权限与业务松耦合?/p> <p mce_style="padding: 0px; margin: 0px;" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">2Q通过松耦合Q大q优化了pȝl构?/p> <p mce_style="padding: 0px; margin: 0px;" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">3Q进一步提高了lg复用率?/p> <p mce_style="padding: 0px; margin: 0px;" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">只是Q规则引擎毕竟不是专业于权限理领域Q对于复杂需求,或者有些需求实现v来还是很别扭。看h像if/else的规则表辄Ş了?/p> <p mce_style="padding: 0px; margin: 0px;" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><br /> </p> <p mce_style="padding: 0px; margin: 0px;" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">Ralasafe和IBM、Oracle商业产品一P都用规则进行描q。大家的区别在于Q谁满需求更多、更Ҏ了?/p> <h1 style="font-size: 2em; ">框架or中间?/h1> <p mce_style="padding: 0px; margin: 0px;" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">框架的好处,昄是有个体pȝ构,团队遵@该方式进行开发、组装即可。提供了一U标准和开发模式?/p> <p mce_style="padding: 0px; margin: 0px;" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">中间件的好处Q显然是提供了自由,而且易于l合、易于分工。提供了一U服务方式?/p> <p mce_style="padding: 0px; margin: 0px;" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><br /> </p> <p mce_style="padding: 0px; margin: 0px;" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">我本人希望自由,所以讨厌框Ӟ偏爱中间件。但我对选用中间件、框架的选择标准是非怸肯的Q供大家参考?/p> <p mce_style="padding: 0px; margin: 0px;" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><strong><span style="color: red; ">在系l结构分层的场景Q适合使用框架?br /> 在系l功能分ȝ场景Q适合使用中间件?/span></strong></p> <p mce_style="padding: 0px; margin: 0px;" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">那么具体到权限管理领域,昄是功能分,中间件更合适。这么做Q还不l原有系l、新开发系l的既定框架造成冲突。一个系l里面用多个框Ӟ是非常痛苦的事情?span mce_style="color: #ff0000;" style="color: #ff0000; ">D不知在SSH的vz里面,有多hN多时?#8220;Kill”在沙滩上Q!</span></p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "></p> <h1 style="font-size: 2em; ">Ralasafe体系l构及应用集?/h1> <p mce_style="padding: 0px; margin: 0px;" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">Ralasafe是中间gQ采用服务模型。在业务需要的地方Q调用Ralasafe接口Q或者将Ralasafe接口向LOG4J那样wrapC的aspect里面厅R?/p> <p mce_style="padding: 0px; margin: 0px;" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><br /> </p> <p mce_style="padding: 0px; margin: 0px;" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">Ralasafe按照权限的方向,提供2U数据权限理服务Q也正好对应2个接口:</p> <p mce_style="padding: 0px; margin: 0px;" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">1Q从pȝ获取数据Q?nbsp;<a mce_>Ralasafe</a>.query( int privilegeId, User user, CustomizedWhere where, int fromIndex, int size );</p> <p mce_style="padding: 0px; margin: 0px;" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">2Q向pȝ提交数据之前的判断,<a mce_>Ralasafe</a>.permit( int privilegeId, User user, Object businessData);</p> <p mce_style="padding: 0px; margin: 0px;" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><a mce_>Ralasafe</a>q针对web应用Q提供了<a mce_>WebRalasafe</a>?/p> <p mce_style="padding: 0px; margin: 0px;" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><br /> </p> <p mce_style="padding: 0px; margin: 0px;" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">接口非常单,在接口层只要告知RalasafeQ当前这个是谁,?Ҏq什么?/p> <p mce_style="padding: 0px; margin: 0px;" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">权限逻辑Q全部在Ralasafe囑Ş化管理界面,点击鼠标完成配置Qƈq行在线试。无需~程?/p> <p mce_style="padding: 0px; margin: 0px;" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">所以,使用Ralasafe~程工作量非常少?a mce_>也给不少开发h员造成“不知道怎样与应用集?#8221;的错觉?/a></p> <h1 style="font-size: 2em; ">Ralasafe的用h么?/h1> <p mce_style="padding: 0px; margin: 0px;" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">Ralasafeq不会给你的应用pȝ“假定”有哪些字Dc你的应用系l用户可以由L字段Q通过XML文g安装到Ralasafe卛_。该XML文gQ主要指明:用户存在那张表(也可以是视图Q这样可以从多张表关联读取数据。比如ralasafe-demoQ就兌到company表读取了companyLevel和companyName字段Q; 哪些字段是唯一字段Q?哪些字段是主键;各字D对应类型?/p> <p mce_style="padding: 0px; margin: 0px;" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><br /> </p> <p mce_style="padding: 0px; margin: 0px;" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">然后Q在所有权限规则里面,可以dq些用户字段。比如ralasafe-demo应用Q下载地址Q?/p> <p mce_style="padding: 0px; margin: 0px;" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><a mce_>http://www.ralasafe.org/zh/download/download.jsp</a> ) 用户含有companyLevel字段Q在定制“d?#8221;用户分类的时候,将该用户companyLevel字段与d司?#8220;1”q行比较?/p> <p mce_style="padding: 0px; margin: 0px;" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><br /> </p> <p mce_style="padding: 0px; margin: 0px;" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">Q下期真正开始探讨数据权限理实现了)</p> <p mce_style="padding: 0px; margin: 0px;" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><br /> </p> <p mce_style="padding: 0px; margin: 0px;" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><span mce_style="font-family: Arial, sans-serif, Helvetica, Tahoma; line-height: 18px;" style="font-family: Arial, sans-serif, Helvetica, Tahoma; line-height: 18px; "><span mce_style="line-height: 18px; font-family: Arial, sans-serif, Helvetica, Tahoma;" style="line-height: 18px; font-family: Arial, sans-serif, Helvetica, Tahoma; "><span mce_style="font-size: 12px; color: #323e32; line-height: 18px; font-family: simsun;" style="font-size: 12px; color: #323e32; line-height: 18px; font-family: simsun; ">注:ralasafe团队博客?a mce_style="color: #008e7a; text-decoration: none;" mce_href="/" target="_blank" style="color: #008e7a; text-decoration: none; ">javaeye</a>/<a mce_style="color: #008e7a; text-decoration: none;" mce_ target="_blank" style="color: #008e7a; text-decoration: none; ">baidu</a>/<a mce_style="color: #108ac6; text-decoration: underline;" href="http://m.tkk7.com/metadmin" mce_href="http://m.tkk7.com/metadmin" style="color: #108ac6; text-decoration: underline; ">blogjava</a>{空_同步发布。ralasafe官方|站Q?/span></span><span mce_style="line-height: 18px; font-family: Arial, sans-serif, Helvetica, Tahoma;" style="line-height: 18px; font-family: Arial, sans-serif, Helvetica, Tahoma; "><span mce_style="font-size: 12px; color: #323e32; line-height: 18px; font-family: simsun;" style="font-size: 12px; color: #323e32; line-height: 18px; font-family: simsun; "><a mce_style="color: #008e7a; text-decoration: none;" mce_ target="_blank" style="color: #008e7a; text-decoration: none; ">http://www.ralasafe.org/zh</a></span></span></span></p> <p mce_style="padding: 0px; margin: 0px;" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><br /> </p> <p mce_style="padding: 0px; margin: 0px;" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><br /> </p> </div> <img src ="http://m.tkk7.com/Metadmin/aggbug/331258.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/Metadmin/" target="_blank">l粒度权限管?/a> 2010-09-06 22:58 <a href="http://m.tkk7.com/Metadmin/archive/2010/09/06/331258.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>权限理最佛_践:二,URL权限控制http://m.tkk7.com/Metadmin/archive/2010/09/02/330760.htmll粒度权限管?/dc:creator>l粒度权限管?/author>Thu, 02 Sep 2010 13:55:00 GMThttp://m.tkk7.com/Metadmin/archive/2010/09/02/330760.htmlhttp://m.tkk7.com/Metadmin/comments/330760.htmlhttp://m.tkk7.com/Metadmin/archive/2010/09/02/330760.html#Feedback0http://m.tkk7.com/Metadmin/comments/commentRss/330760.htmlhttp://m.tkk7.com/Metadmin/services/trackbacks/330760.html Ralasafe开源有D|间了Q大U有2个月了。根据社区的反馈Q我打算围绕Ralasafe最佛_践,书写一pdBLOG?br />
大体内容有:
1Q?d控制Q?哪些面需要登录后才能讉KQ登录用户名、密码验证,d转向面Q?br /> 2Q?URL权限控制Q哪些页面访问需要进行角色权限验证,怎样验证最单有效,如何处理验证p|情况Q?br /> 3Q?数据U权限管理方案探讨:选择中间件呢q是框架Q?br /> 4Q?Ralasafe体系l构Q?用户怎么dQ用h哪些字段Q怎样与应用基Q?br /> 5Q?数据U查询权限管理: 如何l不同的人分配不同的查询数据权限Q返回where条g呢,q是直接q回l果集?
6Q?数据U决{权限管理: 如何l不同的人分配不同的数据操作权限Q当用户不具备权限怎么办?
7Q?其他l小的权限控Ӟ 如下拉框昄内容Q按钮、链接是否显C,囄是否昄{?br /> -------------------------------------------- ------- --------------------------------

今天说的URL权限控制Q内容主要有QURL权限控制Q当用户讉K某URLӞq行角色权限验证。如果有相应权限Q则允许其正常访问;否则Q{到拒l页面?br /> 我们依然通过一个Filter来实玎ͼq样无需在代码中增加权限判断Q也无需套用M框架。对于整个权限管理系l来_本节内容也非常简单?br />

理论分析

当Y件实施h员进行系l实施的时候,会将一些访问菜单定义ؓ权限。然后定义角Ԍ让角色拥有权限。然后再权限赋l用戗?br /> 所以,当用戯求某个URL的时候,要不该URL需要权限验证,要不是不需要权限验证?br /> 验标准就是:看权限表里面有没有该URL。检验的时候,唯一需要注意的是:URL参数Q比如employeeManage?op=add?br />

数据库模?br />

权限表:id<int>,name<varchar>,url<varchar>,description<varchar>   | pk(id)
角色表:id<int>,name<varchar>,description<varchar>                        | pk(id)
角色-权限关系表:roleId<int>,privilegeId<int>                                       | pk(roleId,privilegeId)
用户-角色关系表:userId<int>(Ҏ你系l的情况Q也可能是varchar{?,roleId<int> | pk(userId,roleId)

RalasafeҎ

Ralasafe权限理中间?下蝲地址)Q既可以理和控制功能权限Q也可以理和控制数据权限。开发者还可以Ҏ需求,只选择功能U控Ӟ或者只选择数据U控制?br />
?a >安装好用户元数据的时候,Ralasafe自动创徏所有权限表。相x限数据,都由Ralasafe界面q行理Q即录入Q?br />
Ralasafe的管理界面,在功能权限方面可以做刎ͼ
1Q管理权限界面;
2Q管理角色界面,q给角色赋权限;
3Q给用户分配角色界面。这里还需要注意:不同用户理可以l不同范围的用户分配角色。比如:d司的理员可以给所有h分配角色Q分公司理员可以给本分公司及下属子公司用户分配角色?br />
Ralasafe最后一点视为数据权限。详见:http://www.ralasafe.org/zh/guide/reference/safe.html#ralasafe ?a >http://www.ralasafe.org/jforum/posts/list/11.page


?a >org.ralasafe.webFilter.UrlAclFilter配置到web.xml卛_Q而且配置工作量极其少?br />
<filter>
    
<filter-name>ralasafe/UrlAclFilter</filter-name>
    
<filter-class>org.ralasafe.webFilter.UrlAclFilter</filter-class>
    
<init-param>
        
<param-name>loginPage</param-name>
        
<param-value>/ralasafe/demo/login.jsp</param-value>
    
</init-param>
    
<init-param>
        
<param-name>denyPage</param-name>
        
<param-value>/ralasafe/demo/noPrivilege.jsp</param-value>
    
</init-param>
</filter>
<filter-mapping>
    
<filter-name>ralasafe/UrlAclFilter</filter-name>
    
<url-pattern>/ralasafe/demo/*</url-pattern>
</filter-mapping>

 
该Filterhq些功能Q?br /> 1Q在用户h权限的时候,正常讉KQ?br /> 2Q在用户不具有权限的时候,转到拒绝面Q?br /> 3Q如果用h用登录,转到d面Q让用户先登录?br />

其他

q里我简单说说spring security?br /> spring security在控制功能权限的时候,q会帮助开发h员控制Dao/Service{组件。我个h认ؓq种控制是多余的?br /> 因ؓQ功能权限控制应该站在最l用戯度进行考虑。Dao/Service{编E开发的组Ӟq不是最l用户关心的事情。所以无需q行功能权限控制?br /> 另外Q大家在使用spring securityQ我功能权限控制攑֜数据库里面,而不是annotation到java code里面。因为annotation到java code里面Q最l用户就不能控制了?br />
注:ralasafe团队博客在javaeye/baidu/blogjava{空_同步发布。ralasafe官方|站Q?a >http://www.ralasafe.org/zh




]]>
RalasafeC֌l护原则http://m.tkk7.com/Metadmin/archive/2010/09/02/330728.htmll粒度权限管?/dc:creator>l粒度权限管?/author>Thu, 02 Sep 2010 07:04:00 GMThttp://m.tkk7.com/Metadmin/archive/2010/09/02/330728.htmlhttp://m.tkk7.com/Metadmin/comments/330728.htmlhttp://m.tkk7.com/Metadmin/archive/2010/09/02/330728.html#Feedback0http://m.tkk7.com/Metadmin/comments/commentRss/330728.htmlhttp://m.tkk7.com/Metadmin/services/trackbacks/330728.htmlhttp://www.ralasafe.org/jforum/posts/list/66.page
Ralasafe自从2010q??3日开源以来,得到q大|友的支持和鼓励Q在此非常感谢。Ralasafe团队也通过|站、论坛、博客、Email、QQ{各U方式与C֌互动QŞ成交。根据这D|间的C֌l护情况Q我们制定如下社区维护原则?

我们Ƣ迎q样的hQ乐于回{他们的问题Q?
1Q说话友好,q等切磋的hQ?
2Q勤于学习,而不论技术高低,不论新手老手。即便你是新手,但只要你肯予学习Q不断交,我们乐于提供帮助Q?
3Q带有个人偏见,但言之有物的人?

我们不欢q这L人,也不惛_{他们的问题Q?
1Q出a不逊,带有蔑视或者侮辱性语a的hQ?
2Q懒惰的人,其是没有看文档Q没有对Ralasafe-demoq行揣摩Q没有进行基本学习的人;Q文档没有看懂的Z外,实我们可能撰写方式有问题,个h理解力有差距{)
3Q带有个人偏见,且言之无物的人?

Ralasafe团队l保持开源,q致力于C֌l护工作。对于新手,只要乐于学习Q我们甚至会对学习难点,免费提供QQq程协助?/span>


]]>
权限理最佛_践:一Q登录控?/title><link>http://m.tkk7.com/Metadmin/archive/2010/09/01/330609.html</link><dc:creator>l粒度权限管?/dc:creator><author>l粒度权限管?/author><pubDate>Wed, 01 Sep 2010 11:41:00 GMT</pubDate><guid>http://m.tkk7.com/Metadmin/archive/2010/09/01/330609.html</guid><wfw:comment>http://m.tkk7.com/Metadmin/comments/330609.html</wfw:comment><comments>http://m.tkk7.com/Metadmin/archive/2010/09/01/330609.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://m.tkk7.com/Metadmin/comments/commentRss/330609.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/Metadmin/services/trackbacks/330609.html</trackback:ping><description><![CDATA[     摘要: Ralasafe是基于MIT协议开源的Q数据权限理中间件。开源有2个月了。根据社区的反馈Q我围绕Ralasafe最佛_践,书写一pdBLOG。今天说的登录控Ӟ内容主要有:哪些面需要登录控制、登录验证逻辑、登录后面转向哪里Q以及权限菜单等问题。虽然本pd讲解权限理Q尤其是数据U权限管理。但严格意义来说Q登录控Ӟq不属于权限理内容。它属于用户w䆾认证内容。权限基本都与用L养I用户首先涉及到用户名密码验证。所以我们从q里开始说赗?nbsp; <a href='http://m.tkk7.com/Metadmin/archive/2010/09/01/330609.html'>阅读全文</a><img src ="http://m.tkk7.com/Metadmin/aggbug/330609.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/Metadmin/" target="_blank">l粒度权限管?/a> 2010-09-01 19:41 <a href="http://m.tkk7.com/Metadmin/archive/2010/09/01/330609.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>《玩转细_度权限理?六,l粒度数据操作权?/title><link>http://m.tkk7.com/Metadmin/archive/2009/06/23/283683.html</link><dc:creator>l粒度权限管?/dc:creator><author>l粒度权限管?/author><pubDate>Tue, 23 Jun 2009 01:55:00 GMT</pubDate><guid>http://m.tkk7.com/Metadmin/archive/2009/06/23/283683.html</guid><wfw:comment>http://m.tkk7.com/Metadmin/comments/283683.html</wfw:comment><comments>http://m.tkk7.com/Metadmin/archive/2009/06/23/283683.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://m.tkk7.com/Metadmin/comments/commentRss/283683.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/Metadmin/services/trackbacks/283683.html</trackback:ping><description><![CDATA[     摘要: 很多pȝ对于黑客不堪一凅R请看这LCZQ?<br>1. 前台展现客户能查看的客户数据Q而且用户能删除的客户数据Q就是前台展现出来的数据Q?<br>2. 当用户选择某个用户Q点d除按钮,后台执行删除操作?<br>比如Q请求后台删除的url是:http://www.test.com/crm/customer.do?id=3 <br>假设Qid=13的客户在前台不显C(因ؓ当前用户没有对该客户数据有删除权限)Q但用户输入http://www.test.com/crm/customer.do?id=13 昄id=13的客户将被删除掉?<br> <br>有开发者徏议采用idg要用自增长型,而改用其他型Q比如hashcode{。这也不大合适,可以使用爬虫L地将漏洞爬出来?<br> <br>昄Q仅仅通过界面层次控制数据U权限是不够的?nbsp; <a href='http://m.tkk7.com/Metadmin/archive/2009/06/23/283683.html'>阅读全文</a><img src ="http://m.tkk7.com/Metadmin/aggbug/283683.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/Metadmin/" target="_blank">l粒度权限管?/a> 2009-06-23 09:55 <a href="http://m.tkk7.com/Metadmin/archive/2009/06/23/283683.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>夏至Chttp://m.tkk7.com/Metadmin/archive/2009/06/21/283482.htmll粒度权限管?/dc:creator>l粒度权限管?/author>Sun, 21 Jun 2009 13:52:00 GMThttp://m.tkk7.com/Metadmin/archive/2009/06/21/283482.htmlhttp://m.tkk7.com/Metadmin/comments/283482.htmlhttp://m.tkk7.com/Metadmin/archive/2009/06/21/283482.html#Feedback1http://m.tkk7.com/Metadmin/comments/commentRss/283482.htmlhttp://m.tkk7.com/Metadmin/services/trackbacks/283482.html

]]>
《玩转细_度权限理?五,l粒度数据查询权限(下)http://m.tkk7.com/Metadmin/archive/2009/06/21/283481.htmll粒度权限管?/dc:creator>l粒度权限管?/author>Sun, 21 Jun 2009 13:47:00 GMThttp://m.tkk7.com/Metadmin/archive/2009/06/21/283481.htmlhttp://m.tkk7.com/Metadmin/comments/283481.htmlhttp://m.tkk7.com/Metadmin/archive/2009/06/21/283481.html#Feedback0http://m.tkk7.com/Metadmin/comments/commentRss/283481.htmlhttp://m.tkk7.com/Metadmin/services/trackbacks/283481.html阅读全文

]]>
《玩转细_度权限理?四,l粒度数据查询权限(上)http://m.tkk7.com/Metadmin/archive/2009/06/19/283191.htmll粒度权限管?/dc:creator>l粒度权限管?/author>Fri, 19 Jun 2009 03:52:00 GMThttp://m.tkk7.com/Metadmin/archive/2009/06/19/283191.htmlhttp://m.tkk7.com/Metadmin/comments/283191.htmlhttp://m.tkk7.com/Metadmin/archive/2009/06/19/283191.html#Feedback2http://m.tkk7.com/Metadmin/comments/commentRss/283191.htmlhttp://m.tkk7.com/Metadmin/services/trackbacks/283191.html为此Q很多系l代码里面充满了if else逻辑判断Q造成业务与权限耦合。有更好的办法去除这U耦合吗?  阅读全文

]]>
《玩转细_度权限理?三,用户角色权限RBCAhttp://m.tkk7.com/Metadmin/archive/2009/06/18/282999.htmll粒度权限管?/dc:creator>l粒度权限管?/author>Thu, 18 Jun 2009 02:57:00 GMThttp://m.tkk7.com/Metadmin/archive/2009/06/18/282999.htmlhttp://m.tkk7.com/Metadmin/comments/282999.htmlhttp://m.tkk7.com/Metadmin/archive/2009/06/18/282999.html#Feedback2http://m.tkk7.com/Metadmin/comments/commentRss/282999.htmlhttp://m.tkk7.com/Metadmin/services/trackbacks/282999.html阅读全文

]]>
վ֩ģ壺 ѹۿŮƵ| ޾Ʒ͵벻av| þ޾Ʒ11p| avѸ߳ˮ| ޾Ʒþþþþ | 114һëƬ| ޻ɫƵ| ĻĻmv| ޾ƷŮþ777777| ͵Ƶѹۿ| ޳AVƬһ| þùƷ2020m3u8| Ļ| þùƵ| ƷAV| þù޾ƷӰԺ| Ƶ| һĻþ| ߳Ƶ| һ234| ޾Ʒþþþþ| þù׾Ʒǿ| ޹Ů޹| ߾ƷƵ| caopormѹƵ| ޹ᆱƷԲ߹ۿ | ߲Ƶ| Ļѿ| ޾Ʒ߹ۿ| ѿmvվ| ƷϵƵ | AV˿߹ۿ| 123Ʒ| ޺ݺɫۺ| ۺϾƷ㽶þ| ձvѷƵ| ۺһ| ޾ƷƵ| ˹ƷŮëƬѲ| Ƶ߹ۿ| Ƶ2ѹۿ|