﻿<?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-淡蓝色的轨迹……-随笔分类-一起的日子</title><link>http://www.blogjava.net/snoics/category/3767.html</link><description>&lt;SCRIPT language=JavaScript&gt; 
&lt;!--// 
var version = "other" ;
 browserName = navigator.appName;                                       browserVer = parseInt(navigator.appVersion); 

if (browserName == "Netscape" &amp;&amp; browserVer &gt;= 3) 
  version = "n3"; 
else if (browserName == "Netscape" &amp;&amp; browserVer &lt; 3)
  version = "n2"; 
else if (browserName == "Microsoft Internet Explorer" &amp;&amp; browserVer &gt;= 4) 
  version = "e4"; 
else if (browserName == "Microsoft Internet Explorer" &amp;&amp; browserVer &lt; 4) 
  version = "e3"; 
 
function marquee1() { 
	                                                                                 if (version == "e4") 
	                                                                                      { 
          document.write("&lt;marquee behavior=scroll direction=up width=367 height=135 scrollamount=1 scrolldelay=100&gt;") 
	                                                                                        } 
                                                                                                 } 
 
                                                                                         function marquee2() 
                                                                                               { 
	                                                                                 if (version == "e4") 
	                                                                                     { 
		                                                                       document.write("&lt;/marquee&gt;") 
	                                                                                       } 
                                                                                                  } 
 
 //--&gt; 
&lt;/SCRIPT&gt;

&lt;SCRIPT language=JavaScript&gt;marquee1();&lt;/SCRIPT&gt;

&lt;SCRIPT&gt;  
&lt;!--  
                                                                                           var from = 1;  
                                                                                           var to = 4;  
                                                                                            var delay = 55; //闪的速度  
                                                               var glowColor = "#FFCC00";//颜色  
                                                               var i = to;  
                                                                                            var j = 0; 
                                                                                            textPulseDown();  
  
                                                                                             function textPulseUp()  
                                                                                                 {  
                                                                                                   if (!document.all)  
                                                                                                      return  
                                                                                                   if (i &lt; to)  
                                                                                                       {  
                                                                                                           //theText.style.filter = "Glow(Color=" + glowColor + ", Strength=" + i + ")";  
                                                                                                           i++;  
                                                                                                           theTimeout = setTimeout('textPulseUp()',delay);  
                                                                                                           return 0;  
                                                                                                         }  
  
                                                                                                    if (i = to)  
                                                                                                        {  
                                                                                                           theTimeout = setTimeout('textPulseDown()',delay);  
                                                                                                           return 0;  
                                                                                                            }  
  
  
                                                                                                     }  
  
                                                                                                function textPulseDown()  
                                                                                                      {  
                                                                                                         if (!document.all)  
                                                                                                              return  
                                                                                                         if (i &gt; from)  
                                                                                                              {  
                                                                                                                 //theText.style.filter = "Glow(Color=" + glowColor + ", Strength=" + i + ")";  
                                                                                                                 i--;  
                                                                                                                 theTimeout = setTimeout('textPulseDown()',delay);  
                                                                                                                 return 0;  
                                                                                                               }  
  
                                                                                                          if (i = from)  
                                                                                                              {  
                                                                                                                 theTimeout = setTimeout('textPulseUp()',delay);  
                                                                                                                 return 0;  
                                                                                                                }  
                                                                                                            }  
  
                                                                                                 //--&gt;  
                                                                                    &lt;/SCRIPT&gt;

&lt;FONT style="COLOR: white; FILTER: glow(color=#9966FF,strength=5); HEIGHT: 10px; PADDING-BOTTOM: 3px; PADDING-LEFT: 1px; PADDING-RIGHT: 1px; PADDING-TOP: 3px"&gt;
&lt;br&gt;
天很高,云很淡 风很轻,海很蓝&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
牵着手&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;
在浪漫的沙滩上,留下两行清晰的脚印......

&lt;/font&gt;</description><language>zh-cn</language><lastBuildDate>Fri, 02 Mar 2007 07:23:18 GMT</lastBuildDate><pubDate>Fri, 02 Mar 2007 07:23:18 GMT</pubDate><ttl>60</ttl><item><title>关于权限模块的设想</title><link>http://www.blogjava.net/snoics/archive/2006/02/16/30969.html</link><dc:creator>snoics</dc:creator><author>snoics</author><pubDate>Thu, 16 Feb 2006 05:11:00 GMT</pubDate><guid>http://www.blogjava.net/snoics/archive/2006/02/16/30969.html</guid><wfw:comment>http://www.blogjava.net/snoics/comments/30969.html</wfw:comment><comments>http://www.blogjava.net/snoics/archive/2006/02/16/30969.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/snoics/comments/commentRss/30969.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/snoics/services/trackbacks/30969.html</trackback:ping><description><![CDATA[<P>整个模块是使用spring+hibernate+struts开发的<BR><BR>1. 用户和角色保存在数据库中<BR><BR>2. 用户可以从外部的系统接入,模块中的用户只有用户名,密码和描述这三个最基本的系统,然后通过ID和外部系统的用户建立联系<BR><BR>3. 角色之间可以继承，可以有父角色和子角色,而且个数不限,允许多重继承,通过继承之后，角色可以拥有所有父角色的权限<BR><BR>4. 权限的划分方式<BR>&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp; a.权限用事件来划分,每个事件通过一个handle来进行处理<BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; b.一个handle就是一个class<BR><BR>&nbsp;&nbsp;&nbsp; c.事件的来源是一个配置文件,因此配置文件的方式可以是这样的<BR><BR><BR>&lt;?xml version="1.0" encoding="GBK"?&gt;<BR>&lt;control&gt;<BR>&nbsp;&lt;!-- 是否自动转向 默认为false--&gt;<BR>&nbsp;&lt;isforward&gt;false&lt;/isforward&gt;<BR>&nbsp;&lt;!-- 组件 --&gt;<BR>&nbsp;&lt;cmp id="cmp1" name="组件一"&gt;<BR>&nbsp;&nbsp;&lt;!-- 事件 --&gt;<BR>&nbsp;&nbsp;&lt;event id="event1" name="事件一"&gt;<BR>&nbsp;&nbsp;&nbsp;&lt;handle&gt;com.snoics.cmp.event.Event1&lt;/handle&gt;<BR>&nbsp;&nbsp;&nbsp;&lt;view&gt;/url1/pagename1&lt;/view&gt;<BR>&nbsp;&nbsp;&lt;/event&gt;<BR>&nbsp;&nbsp;&lt;event id="event2" name="事件二"&gt;<BR>&nbsp;&nbsp;&nbsp;&lt;handle&gt;com.snoics.cmp.event.Event2&lt;/handle&gt;<BR>&nbsp;&nbsp;&nbsp;&lt;view&gt;/url2/pagename2&lt;/view&gt;<BR>&nbsp;&nbsp;&lt;/event&gt;<BR>&nbsp;&lt;/cmp&gt;<BR>&nbsp;&lt;cmp id="cmp2" name="组件二"&gt;<BR>&nbsp;&nbsp;&lt;event id="event3" name="事件三"&gt;<BR>&nbsp;&nbsp;&nbsp;&lt;handle&gt;com.snoics.cmp.event.Event3&lt;/handle&gt;<BR>&nbsp;&nbsp;&nbsp;&lt;view&gt;/url3/pagename3&lt;/view&gt;<BR>&nbsp;&nbsp;&lt;/event&gt;<BR>&nbsp;&nbsp;&lt;event id="event4" name="事件四"&gt;<BR>&nbsp;&nbsp;&nbsp;&lt;handle&gt;com.snoics.cmp.event.Event4&lt;/handle&gt;<BR>&nbsp;&nbsp;&nbsp;&lt;view&gt;/url4/pagename4&lt;/view&gt;<BR>&nbsp;&nbsp;&lt;/event&gt;<BR>&nbsp;&lt;/cmp&gt;<BR>&lt;/control&gt;<BR><BR>&nbsp; <BR>通过解析这个配置文件，可以得到每个事件的ID,这个ID就是以后的权限标志<BR><BR><BR>给角色分配的权限就是这样的一个一个的标志<BR><BR>---------------&nbsp;目前，以上的部分都已经全部完成,不过最主要的部分还在后面&nbsp; ----------------------------<BR><BR>5.&nbsp; 剩余的一个最重要的目标，也就是最理想的方式,不过目前还处于构想阶段.<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp; 系统在执行的过程中，能只动的进行拦截,如果发现当前的class是处于配置文件中的某一个handle的时候，自动进行权限验证,分析当前用户所拥有的角色中是否具有执行相关的handle的权限,在验证通过以后允许执行这个handle中的操作,否则拒绝执行<BR><BR><BR>这样做的好处就是能够不在业务系统中写入任何和权限相关的代码，与权限相关的部分全部都是通过配置文件的配置来进行处理的.<BR><BR><BR>如果大家有什么好的建议欢迎一起讨论</P><img src ="http://www.blogjava.net/snoics/aggbug/30969.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/snoics/" target="_blank">snoics</a> 2006-02-16 13:11 <a href="http://www.blogjava.net/snoics/archive/2006/02/16/30969.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>