??xml version="1.0" encoding="utf-8" standalone="yes"?>成人免费在线视频观看,久久久www免费人成黑人精品,欧美另类专区http://www.aygfsteel.com/haha1903/archive/2014/05/10/413499.html哈哈的日?/dc:creator>哈哈的日?/author>Sat, 10 May 2014 13:21:00 GMThttp://www.aygfsteel.com/haha1903/archive/2014/05/10/413499.htmlhttp://www.aygfsteel.com/haha1903/comments/413499.htmlhttp://www.aygfsteel.com/haha1903/archive/2014/05/10/413499.html#Feedback0http://www.aygfsteel.com/haha1903/comments/commentRss/413499.htmlhttp://www.aygfsteel.com/haha1903/services/trackbacks/413499.html
二进底Q?span style="background-color: #e8e8e8; color: #210f1b; font-family: 'Hiragino Sans GB W3', 'Hiragino Sans GB', Arial, Helvetica, simsun, u5b8bu4f53; font-size: 16px; line-height: 28px; text-indent: 32px;">龙宫那边新多Z个v螺,q去是龙宫密道Q里面有DOMOl员杨志豪,把他弄走Q就在原地来回跑Q会(x)定期出现一大鱼一大虾Q殴之,每次法宝?0炏V我在这里练蓝格怪Q这个每用一ơ也?炏V?/span>


]]>
天之?—?如何LW鬼技能,W鬼技能变成“无?/title><link>http://www.aygfsteel.com/haha1903/archive/2014/05/05/413292.html</link><dc:creator>哈哈的日?/dc:creator><author>哈哈的日?/author><pubDate>Mon, 05 May 2014 13:43:00 GMT</pubDate><guid>http://www.aygfsteel.com/haha1903/archive/2014/05/05/413292.html</guid><wfw:comment>http://www.aygfsteel.com/haha1903/comments/413292.html</wfw:comment><comments>http://www.aygfsteel.com/haha1903/archive/2014/05/05/413292.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/haha1903/comments/commentRss/413292.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/haha1903/services/trackbacks/413292.html</trackback:ping><description><![CDATA[{到W鬼很饿Q能?个东西的时候)(j)Q找C个相同的喂食物,比如2个狮子精【有一?#8220;狮子?#8221;技能】,设此时的W鬼有一个技能是“强音?#8221;Q点?#8220;狮子?#8221;两次Q符鬼的那个技能就变成?#8220;?#8221; Q@import url(http://www.aygfsteel.com/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css); <div><br /> </div> <div>Z(jin)成功Q保存好Q多来几ơ!</div><img src ="http://www.aygfsteel.com/haha1903/aggbug/413292.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/haha1903/" target="_blank">哈哈的日?/a> 2014-05-05 21:43 <a href="http://www.aygfsteel.com/haha1903/archive/2014/05/05/413292.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>天之?—?捡蓝格怪Q龙颿)(j)如何得到http://www.aygfsteel.com/haha1903/archive/2014/05/05/413291.html哈哈的日?/dc:creator>哈哈的日?/author>Mon, 05 May 2014 13:34:00 GMThttp://www.aygfsteel.com/haha1903/archive/2014/05/05/413291.htmlhttp://www.aygfsteel.com/haha1903/comments/413291.htmlhttp://www.aygfsteel.com/haha1903/archive/2014/05/05/413291.html#Feedback0http://www.aygfsteel.com/haha1903/comments/commentRss/413291.htmlhttp://www.aygfsteel.com/haha1903/services/trackbacks/413291.html月河村的客栈Q一直向叻IC能再叻I向下一步,然后再点宝物可以了(jin)?/span>

]]>
尔集团CEOQ张瑞敏——演讲语录!Q{Q?/title><link>http://www.aygfsteel.com/haha1903/archive/2013/11/20/406581.html</link><dc:creator>哈哈的日?/dc:creator><author>哈哈的日?/author><pubDate>Wed, 20 Nov 2013 08:17:00 GMT</pubDate><guid>http://www.aygfsteel.com/haha1903/archive/2013/11/20/406581.html</guid><wfw:comment>http://www.aygfsteel.com/haha1903/comments/406581.html</wfw:comment><comments>http://www.aygfsteel.com/haha1903/archive/2013/11/20/406581.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/haha1903/comments/commentRss/406581.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/haha1903/services/trackbacks/406581.html</trackback:ping><description><![CDATA[人成熟与不成熟跟q龄没有关系。h成熟不成熟,是你能不能站在Ҏ(gu)的角度去看待事物Q就是能不能把我的世界变成你的世界。这个社?x)有很多的成qhQ还没有qq稚的行为。一点小事情p别h争来争去?br /> <div>      Z成熟的第一个特征:(x)是立即要回报?/div> <div>      他不懂得只有春天播种Q秋天才?x)收莗很多h在做M事情的时候,刚刚付出一点点Q马上就要得到回报。(学钢_(d)学英语等{,刚开始就觉得难,发现不行Q立卛_要放弃。)(j)很多人做生意Q开始没有什么成l,想着要放弃,有的Z个月攑ּQ有的h三个月放弃,有的人半q放弃,有的Zq放弃,我不明白ZZ么轻易放弃,但是我知道,攑ּ是一U习(fn)惯,一U典型失败者的?fn)惯。所以说你要有眼光,要看得更q一些,眼光是用来看未来的!</div> <div>      对在生活中有攑ּ?fn)惯的hQ有一句话一定要送给你:(x)Q成功者永不放弃,攑ּ者永不成功"。那Z么很多的人做事容易放弃呢Q美国著名成功学大师拿破仑希?dng)说q:(x)</div> <div>Ih有两个非常典型的?j)态:(x)</div> <div>1、永q对Z(x)_(d)(x)Q不Q;</div> <div>2、LQ一夜暴富"?/div> <div>      今天你把什么机?x)都攑ֈ他的面前Q他都会(x)_(d)不"。就是今天你开饭店很成功,你把你开饭店的成功经验,发自内心(j)的告诉你的亲朋好友,让他们也d饭店Q你能保证他们每个h都会(x)开饭店吗?是不是照hZqӀ?/div> <div>      所以这是穷Z个非常典型的?j)态,他会(x)_(d)(x)Q你行,我可不行Q"。一夜暴富的表现在于Q你跟他说Q何的生意Q他的第一个问题就是"挣不挣钱Q,你说Q挣钱"Q他马上问W二个问题"Ҏ(gu)不容易"Q你_(d)Ҏ(gu)Q,q时他跟着问W三个问题"快不快"Q你_(d)快"Q这时他pQ好Q我做!Q呵呵,你看Q他p么的q稚Q?/div> <div>      大家想一惻I在这个世界上有没有一U:(x)Q又挣钱Q又Ҏ(gu)Q又快的Q,没有的,即有也轮不到我们啊Q所以说在生zMQ我们一定要懂得付出。那Z么你要付出呢Q因Z是ؓ(f)?jin)追求你的梦惌付出的Qh是Z(jin)希望和梦x着的,如果一个h没有梦想Q没有追求的话,那一辈子也就没有什么意义了(jin)Q?/div> <div>      在生zM你想获得什么,你就得先付出什么。你惌得时_(d)你就得先付出旉Q你惌得金钱,你得先付出金钱。你惛_到爱好,你得先牺牲爱好。你惛_家h有更多的旉在一P你先得和家h在一赗?/div> <div>但是Q有一Ҏ(gu)明确的,你在q个目中的付出Q将?x)得到加倍的回报。就象一_种子,你把它种下去以后Q然后浇_(d)施肥Q锄草,杀虫。最后你收获的是不是几十倍,上百倍的回报?/div> <div>      在生zMQ你一定要懂得付出Q你不要那么急功q利Q马上想得到回报Q天下没有白吃的午餐Q你轻轻松松是不可能成功的?/div> <div>一定要懂得先付出!</div> <div>Z成熟的第二个特征Q就是不自律?/div> <div>不自律的主要表现在哪里呢Q?/div> <div>一、不愿改变自己:(x)</div> <div>      你要改变自己的思考方式和行ؓ(f)模式。你要改变你的坏?fn)惯。其实,ZZ间能力是没有多大区别Q区别在于思考方式的不同。一件事情的发生Q你去问成功者和p|者,他们的回{是不一L(fng)Q甚x相违背的?/div> <div>      我们今天的不成功是因为我们的思考方式不成功。一个好的公式是Q当你种植一个思考的U子Q你׃(x)有行动的收获Q当你把行动U植下去Q你?x)有习(fn)惯的收P当你再把?fn)惯U植下去Q你׃(x)有个性的收获Q当你再把个性种植下去,׃(x)军_你的命运?/div> <div>      但是如果你种植的是一个失败的U子Q你得到的一定是p|Q如果你U植的是一个成功的U子Q那么你׃定会(x)成功?/div> <div>很多人有很多的坏?fn)惯Q如Q看?sh)视Q打dQ喝酒,泡舞厅,他们也知道这L(fng)?fn)惯不好Q但是他们ؓ(f)什么不愿意改变呢?因ؓ(f)很多人宁愿忍受那些不好的生活方式Q也不愿意忍受改变带来的痛苦</div> <div>二、愿意背后议论别人:(x)</div> <div>      如果在生zMQ你喜欢议论别h的话Q有一天一定会(x)传回去,中国有一句古话,Zh是非者,定是是非?/div> <div>三、消极,抱怨:(x)</div> <div>      你在生活中喜Ƣ那些h呢?是那些整天愁眉苦脸,整天抱怨这个抱怨哪个的人,q是喜欢那些整天开开?j)?j)的h。如果你在生zM是那些抱怨的Q消极的人的话,你一定要改变你性格中的~陷。如果你不改变的话,你是很难适应q个C会(x)的。你也是很难和别人合作的?/div> <div>      生活当中你要知道Q你怎样对待生活Q生zM?x)怎样对待你,你怎样对待别hQ别Z?x)怎样对待你。所以你不要消极Q抱怨。你要积极,永远的积极下去,是那句话:(x)成功者永不抱怨,抱怨者永不成?/div> <div>Z成熟的第三个特征Q经常被情A所左右?/div> <div>一个h成功与否Q取决于五个因素Q?/div> <div>学会(x)控制情A</div> <div>健康的n?/div> <div>良好的h际关p?/div> <div>旉理</div> <div>财务理</div> <div>      如果你想成功Q一定要学会(x)理好这五个因素Qؓ(f)什么把情A攑֜W一位呢Q把健康攑֜W二位呢Q是因ؓ(f)如果你再强的w体Q如果你情A不好Q就?x)?jing)响到你的w体Q现在一个h要成?0%靠的是智商,80%靠的是情商,所以你要控制好你的情AQ情l对人的影响是非常大的。h与h之间Q不要ؓ(f)?jin)一点点事情,暴跛_Pq样是不好的?/div> <div>所以在生活中,你要L什么样的心(j)态呢Q你要养成"三不Q,Q三多"Q?/div> <div><br /> </div> <div>不批评、不抱怨、不指责Q?/div> <div><br /> </div> <div>多鼓励、多表扬、多赞美?/div> <div><br /> </div> <div>      你就?x)成Z个受C会(x)大众Ƣ迎的h。如果你惌你的伙伴更加的优UQ很单,永远的激励和赞美他们?/div> <div>      即他们的确有毛病,那应该怎么办呢Q这时是不是应该l他们徏议,在生zM你会(x)发现有这样一个现象,有hl别人徏议的时候,别h能够接受Q但是有的时候别人就?x)生气。其实徏议的方式是最重要的,是Q三明治Q赞,Q再赞美Q?/div> <div>想一惻I你一天赞了(jin)几个人,有的人可能以就是吹捧,是拍马屁。赞和Ҏ(gu)是有区别的,赞美有四个特点:(x)</div> <div>1、是真诚?/div> <div>2、是发自内心(j)?/div> <div>3、被大众所接受?/div> <div>4、无U的</div> <div>      如果你带有很强的目的性去赞美Q那是拍马屁。当你赞别人时候,你要大声的说出来Q当你想批评别h的时候,一定要咬住你的舌头Q?/div> <div>      Z成熟的第四个特征Q不愿学?fn),自以为是Q没有归零心(j)态?/div> <div>      其实人和动物之间有很多的怼之处Q动物的自我保护意识比h更强Q婴儿与猪Q但是,人和动物最大的区别在于Qh?x)学习(fn),Z(x)思考。h是要不断学习(fn)的,你千万不要把你的天赋潜能l埋没了(jin)Q一定要学习(fn)Q一定要有一个空杯的?j)态。我们象谁去学习(fn)呢?是直接向成功h士学?fn)?/div> <div>      你要永远学习(fn)U极正面的东西,不看Q不听那些消极,负面的东ѝ一旦你吸收?jin)那些有毒的思想Q它?x)腐蚀你的?j)灵和h?   的。在q个知识l济的时代里Q学?fn)是你通向未来的唯一护照。在q样一个速度Q变化,危机的时代,你只有不断的学习(fn)你才不会(x)被这个时代所抛弃Q一定要有学?fn),归零的?j)态。去看每一个h的优点,Q三Q必有我师也Q!</div> <div>Z成熟的第五个特征Q做事情不靠信念Q靠?/div> <div>      我们说相信是L(fng)Q坚持是l点。很多h做事不靠信念Q喜Ƣ听别h怎么说。对自己所做的事业Q没?00%的信?j),怿和信忉|两个不同的概念,怿是看得见的,信念是看不见的?/div> <div>      信念是hcȝ一U态度Q但是很多的Z们做事,不靠信念的,而是要听别h怎么_(d)你要M山峰Q要问那些爬到山的人,千万不能问没有爬q山的h?/div> <div>      q里不是说别人的不要dQ你可以d考,但是你要CQ你来做q个生意是ؓ(f)?jin)实C的梦惻I实现你自q价倹{其他的人是不会(x)兛_(j)你的梦想的,只有你自己关?j)你自己的梦惻I只有你自己关?j)你自己能否真正的成功。这才是最重要的!</div> <div>只要你的选择是正的Q永q不要在乎别人怎么_(d)以上的h不成熟的五个特征Q你们自己去对照Q那一个特征是你有的,你一定要在最短的旉里改正,只要你相信你自己能够战胜自己的不成熟Q你׃(x)逐渐的成长,成熟hQ你׃(x)得到你想要的那种生活。你׃(x)实现你时间自由、胦(ch)务自由、精自q人生梦想! </div><img src ="http://www.aygfsteel.com/haha1903/aggbug/406581.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/haha1903/" target="_blank">哈哈的日?/a> 2013-11-20 16:17 <a href="http://www.aygfsteel.com/haha1903/archive/2013/11/20/406581.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>logback ?scanPeriod 遇到的问?/title><link>http://www.aygfsteel.com/haha1903/archive/2013/11/12/406256.html</link><dc:creator>哈哈的日?/dc:creator><author>哈哈的日?/author><pubDate>Tue, 12 Nov 2013 06:25:00 GMT</pubDate><guid>http://www.aygfsteel.com/haha1903/archive/2013/11/12/406256.html</guid><wfw:comment>http://www.aygfsteel.com/haha1903/comments/406256.html</wfw:comment><comments>http://www.aygfsteel.com/haha1903/archive/2013/11/12/406256.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/haha1903/comments/commentRss/406256.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/haha1903/services/trackbacks/406256.html</trackback:ping><description><![CDATA[<h1 style="font-family: Avenir, sans-serif; border: 0px; font-size: 1.2em; margin: 12px 0px 7px; padding: 0px; outline: 0px; line-height: 1.3; color: #333333;">讄?scanPeriod 之后Q过?jin)好长时_(d)都不生效Q后?debug 代码。发C(jin)下面q段?/h1> <pre style="font-family: 'Bitstream Vera Sans Mono', 'Courier New', monospace; border: 1px solid #e8e8e8; font-size: 15px; margin-top: 12px; margin-bottom: 12px; padding: 6px 10px; outline: 0px; line-height: normal; background-color: #f8f8f8; color: #444444; white-space: pre-wrap; word-wrap: break-word; cursor: text; max-width: 100%; overflow: auto; border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;"> private volatile long mask = 0xF; <a style="font-family: Avenir, sans-serif; color: #47b1c7; text-decoration: none;">@Override</a> public FilterReply decide(Marker marker, Logger logger, Level level, String format, Object[] params, Throwable t) { if (!isStarted()) { return FilterReply.NEUTRAL; } // for performance reasons, skip change detection (MASK-1) times out of MASK. // Only once every MASK calls is change detection code executed // Note that MASK is a variable itself. if (((invocationCounter++) & mask) != mask) { return FilterReply.NEUTRAL; } long now = System.currentTimeMillis(); synchronized (configurationWatchList) { updateMaskIfNecessary(now); if (changeDetected(now)) { // Even though reconfiguration involves resetting the loggerContext, // which clears the list of turbo filters including this instance, it is // still possible for this instance to be subsequently invoked by another // thread if it was already executing when the context was reset. disableSubsequentReconfiguration(); detachReconfigurationToNewThread(); } } return FilterReply.NEUTRAL; } </pre> <p style="font-family: Avenir, sans-serif; border: 0px; font-size: 15px; margin: 12px 0px 18px; padding: 0px; outline: 0px; color: #333333; line-height: normal;">q行 <code style="font-family: 'Bitstream Vera Sans Mono', 'Courier New', monospace; border: 1px solid #e8e8e8; font-size: 0.95em; margin: 0px; padding: 0px; outline: 0px; color: #2c92b0; border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;">if (((invocationCounter++) & mask) != mask) {</code> mask = 0xfQ其实要每@?0xf ơ,也就?15 ơ,才会(x)?check 一ơ是否要更新Q也是_(d)不管q了(jin)多久Q如果没到这 15 ơ,也不?x)去(g)查是否更新配|?br /> 也就是说Q我多打几次 logQ配|文件就生效?jin)?/p> @import url(http://www.aygfsteel.com/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);<img src ="http://www.aygfsteel.com/haha1903/aggbug/406256.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/haha1903/" target="_blank">哈哈的日?/a> 2013-11-12 14:25 <a href="http://www.aygfsteel.com/haha1903/archive/2013/11/12/406256.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Spring Security 调研ȝhttp://www.aygfsteel.com/haha1903/archive/2013/11/12/406257.html哈哈的日?/dc:creator>哈哈的日?/author>Tue, 12 Nov 2013 06:25:00 GMThttp://www.aygfsteel.com/haha1903/archive/2013/11/12/406257.htmlhttp://www.aygfsteel.com/haha1903/comments/406257.htmlhttp://www.aygfsteel.com/haha1903/archive/2013/11/12/406257.html#Feedback0http://www.aygfsteel.com/haha1903/comments/commentRss/406257.htmlhttp://www.aygfsteel.com/haha1903/services/trackbacks/406257.htmlspring securityQ下写ؓ(f) ssQ控制的安全主要有两斚wQW(xu)eb ?Method CallQ这两个斚w的权限控制有比较多的盔R的设计Q也有一些特别的功能。比?Method Call 可以?After Invocation 控制Q?Web 可以?Ip 地址控制?/p>

q里面有两个最基本的概念:(x)authentication manager ?access decision managerQ前者控制认证,后都控制鉴权?br /> 1. ?ss 的认证系l中Q默认的实现帮助我们提供?jin)三个概念,用户QuserQ,角色QauthorityQ一般存 roleQ和l(groupQ,三者的关系是,l、角色与用户都是多对多关p,l和角色间没关系Q默认是不启用组的。后l,?Acl 权限理中,可以看到角色之间Q是可以有包含(?wi)ŞQ)(j)关系的?br /> 2. ?ss 的鉴权系l中Q明显会(x)比认证复杂得多。有 AccessDecisionManager, AccessDecisionVoterQ前|)(j), AfterInvocationProviderQ后|)(j), RoleHierarchy, SidRetrievalStrategy, LookupStrategy, PermissionGrantingStrategy, SecurityExpressionHandler, AclService, MutableAclService, AclCache 概念q多?jin),要一个一个解?br /> a) 中心(j)?AccessDecisionManagerQ主要负?AccessDecisionVoter 的管理,默认提供?U实玎ͼ(x)1. AffirmativeBased 如果有Q何一个投器允许讉K,h被立刻允许,而不之前可能有的拒l决定?. ConsensusBased 多数?允许或拒l?军_?jin)结果,q_的投?和空?全是弃权?的结果是可配|的?. UnanimousBased 所有的投票器必d是允许的,否则讉K?被拒l?br /> AccessDecisionManager 在用?Web ?Method Call 两种情况下,可能是不一致的Q因为功能也不一致?br /> b) Method Call 除了(jin)使用 AccessDecisionManager q行权限判断外,q可以增?AfterInvocationProvider 来进行出口数据的判断Q默认提供了(jin) 3 U?br /> 1) PostInvocationAdviceProvider: 需要提供一?PostInvocationAuthorizationAdviceQ默认实现只有一个,是 ExpressionBasedPostInvocationAdviceQ可以通过 spel 来进行权限判断。注?ExpressionBasedPostInvocationAdvice 中需要提供一?MethodSecurityExpressionHandlerQ能够创建出一?MethodSecurityExpressionOperationsQ放?spel context 中,?spel function 调用Q这L(fng)方式Q在后箋很常见?br /> 2) AclEntryAfterInvocationProvider ?AclEntryAfterInvocationCollectionFilteringProvider : q两U都差不多,主要依赖 AclService, ObjectIdentityRetrievalStrategy, SidRetrievalStrategy 来配合,(g)查返回值的权限。Collection 版本的,可以把无权限的数据去掉,只留下有权限的数据?br /> c) RoleHierarchy 提供?jin)角色之间的关系Q提供了(jin)两个实现Q一个是没关pȝQ直接把 user ?role q回Q另外一个是有承关pȝ。承关pd现挺有意思的Q能够处理多U的 include 关系Q比较好用?br /> RoleHierarchy 的用比较复杂,?x)?AccessDecisionVoter, SidRetrievalStrategy, SecurityExpressionHandler 用到QSecurityExpressionHandler 又会(x)?AccessDecisionVoter 用到Q所以还是有点儿混ؕ?br /> 具体的说 SecurityExpressionHandler ?x)用?PermissionEvaluator ?RoleHierarchyQPermissionEvaluator 的一个实?AclPermissionEvaluator ?x)用?SidRetrievalStrategy?br /> d) SidRetrievalStrategy ?RoleHierarchy 的功能比较接q,?RoleHierarchy 高一个抽象层ơ,功能上也有所区别Q是从一?authentication 拿到所有相关的 SidQ包?RoleQGrantedAuthoritySidQ??UserQPrincipalSidQ)(j)Q?RoleHierarchy 只包括了(jin) RoleQGrantedAuthoritySidQ的l承关系?br /> e) LookupStrategy 通过 ObjectIdentity ?Sid 把相关的 Acl 查询出来。可以在 LookupStrategy 扩展 Acl ?Ace 的功能,比如?Ace 上面加上旉的条仉Ӟ需要自己定?LookupStrategyQ把旉条g从数据库查询出来Qƈ攑ֈ自定义的 Ace 当中?br /> 但这件事情非帔R?ch),因?f)默认实现?BasicLookupStrategy 是个 Final 的类Q所以只能自q接实现接口,无法使用现有的功能?br /> LookupStrategy ?x)生?AclQ而最l的权限验证是由 Acl 完成的,如果想验证带旉条g?AceQ需要给 Acl 讄自定义的带有(g)查时间功能的 PermissionGrantingStrategyQ实际上Q这?PermissionGrantingStrategy ?x)首先设|给 LookupStrategyQLookupStrategy 在创?Acl 的时候,再放?Acl 中去?br /> f) SecurityExpressionHandler 能够执行 spelQ得到是否可以访问的l果Q它的子c都是承自 AbstractSecurityExpressionHandler 的,有一个非帔R要的Ҏ(gu)?SecurityExpressionOperations createSecurityExpressionRoot(Authentication authentication, T invocation)Q创Z?SecurityExpressionOperations 攑ֈ EvaluationContext 中去Q提?spel 中执行的Ҏ(gu)实现。比?SecurityExpressionOperations 的一个抽象实?SecurityExpressionRoot 中,包含了(jin)大量的权限验证方法,?hasRole, hasPermission {常用的功能?br /> g) AclService, MutableAclService, AclCache 概念比较单,AclService 是通过 LookupStrategy 查询 AclQ自已可以查?ObjectIdentity 的父子关联关p,MutableAclService 提供?jin)修改的能力QAclCache ?AclService 提供~存Q默认的实现?jin)一?EhCacheBasedAclCache?br /> 3. ss 的鉴权模?Sid, ObjectIdentity, Acl, Ace, Permission
a) Sid: 是中?j),所有的授权?x)关联?Sid 上面QSid 和之前的 Role Base Permission ?x)有些相同的地方Q但也明显不同,Sid 默认实现情况下,分ؓ(f) GrantedAuthoritySid ?PrincipalSidQ其实就?Role ?UserQ通过 SidRetrievalStrategy 拿到一?Authentication ?Sid?br /> b) ObjectIdentity: 可以理解?ResourceQ就是可讉K的目标资源,?id ?type 两个字段Q默认实现的 ObjectIdentityImpl ?x)直接调用目?domainObject ?getClass ?getId Ҏ(gu)拿到两个参数。在 PermissionEvaluator, AfterInvocationProvider 中,?x)用?ObjectIdentityRetrievalStrategy ?ObjectIdentityGeneratorQObjectIdentityRetrievalStrategy ?x)根?domainObject 拿到 ObjectIdentityQ然后?Acl q行鉴权QObjectIdentityGenerator ?x)在pȝ提供的不?domainObjectQ而是 type, id 的时候,拿到 ObjectIdentityQ然后进?Acl 鉴权Q这两个接口有一个共同的实现 ObjectIdentityRetrievalStrategyImplQ如果需要在 ObjectIdentity q行新的抽象Q需要用新的实现Q到得不同的 ObjectIdentityQ比如将业务对象分类鉴权q样的需求?br /> c) Acl, 每个 ObjectIdentity 最多对应一?AclQAcl 中包含了(jin)很多Q包?parentalQ说?Acl 是有l承关系的?其实不是Q呵呵,?ObjectIdentity 有承关p而已。有一?ObjectIdentityQ有很多 SidQ还有一个叫?Owner ?SidQ有?LookupStrategy 传过来的 PermissionGrantingStrategyQ进行实际的鉴权Q还?AclAuthorizationStrategy (g)查有没有权限q行 Acl security check。实现时间条件检查,扩?PermissionGrantingStrategy?br /> Z么没?RoleHierarchy 或是 SidRetrievalStrategy 存在呢?是因?Acl q行权限(g)查之前,已经把相关的 Sid 得到?jin),再?Acl 的?br /> d) Ace, Permission: Ace 存储 Sid, PermissionQ提供给 Acl 鉴权用。增加时间条件的话,最基本的,是要在 Ace 中,增加旉条g字段。Permission 是用二进制存储的Q但默认实现的数据库存储q不是,是一个一条,存在数据库里面的?/p>

好吧Q概念还是非常多的,不过鉴于权限控制本n是个复杂的话题Qss q些设计的我觉得已经非常好,也基本够用了(jin)?/p> @import url(http://www.aygfsteel.com/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);

]]>
java ldaps 讉K ad Ӟ信Q所有的证书http://www.aygfsteel.com/haha1903/archive/2013/09/10/403887.html哈哈的日?/dc:creator>哈哈的日?/author>Tue, 10 Sep 2013 04:30:00 GMThttp://www.aygfsteel.com/haha1903/archive/2013/09/10/403887.htmlhttp://www.aygfsteel.com/haha1903/comments/403887.htmlhttp://www.aygfsteel.com/haha1903/archive/2013/09/10/403887.html#Feedback0http://www.aygfsteel.com/haha1903/comments/commentRss/403887.htmlhttp://www.aygfsteel.com/haha1903/services/trackbacks/403887.html
package com.datayes.cloud.util;

import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLSocketFactory;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;
import java.io.IOException;
import java.net.InetAddress;
import java.net.Socket;
import java.security.KeyManagementException;
import java.security.KeyStoreException;
import java.security.NoSuchAlgorithmException;
import java.security.UnrecoverableKeyException;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;

public class TrustAllSSLSocketFactory extends SSLSocketFactory {
    SSLContext sslContext = SSLContext.getInstance("TLS");

    public TrustAllSSLSocketFactory() throws NoSuchAlgorithmException, KeyManagementException, KeyStoreException, UnrecoverableKeyException {
        TrustManager tm = new X509TrustManager() {
            public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException {
            }

            public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {
            }

            public X509Certificate[] getAcceptedIssuers() {
                return null;
            }
        };
        sslContext.init(nullnew TrustManager[]{tm}, null);
    }

    @Override
    public Socket createSocket(Socket socket, String host, int port, boolean autoClose) throws IOException {
        return sslContext.getSocketFactory().createSocket(socket, host, port, autoClose);
    }


    @Override
    public Socket createSocket(String host, int port) throws IOException {
        return sslContext.getSocketFactory().createSocket(host, port);
    }

    @Override
    public Socket createSocket(String host, int port, InetAddress localHost, int localPort) throws IOException {
        return sslContext.getSocketFactory().createSocket(host, port, localHost, localPort);
    }

    @Override
    public Socket createSocket(InetAddress host, int port) throws IOException {
        return sslContext.getSocketFactory().createSocket(host, port);
    }

    @Override
    public Socket createSocket(InetAddress address, int port, InetAddress localAddress, int localPort) throws IOException {
        return sslContext.getSocketFactory().createSocket(address, port, localAddress, localPort);
    }

    @Override
    public Socket createSocket() throws IOException {
        return sslContext.getSocketFactory().createSocket();
    }

    @Override
    public String[] getDefaultCipherSuites() {
        return new String[0];
    }

    @Override
    public String[] getSupportedCipherSuites() {
        return new String[0];
    }
}


]]>
准备 OpenStack 开发环?/title><link>http://www.aygfsteel.com/haha1903/archive/2013/08/06/402420.html</link><dc:creator>哈哈的日?/dc:creator><author>哈哈的日?/author><pubDate>Tue, 06 Aug 2013 02:19:00 GMT</pubDate><guid>http://www.aygfsteel.com/haha1903/archive/2013/08/06/402420.html</guid><wfw:comment>http://www.aygfsteel.com/haha1903/comments/402420.html</wfw:comment><comments>http://www.aygfsteel.com/haha1903/archive/2013/08/06/402420.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/haha1903/comments/commentRss/402420.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/haha1903/services/trackbacks/402420.html</trackback:ping><description><![CDATA[主要是遇到的一些问题吧Q顺便感谢一下帮助了(jin)我的人。安装之前,听说安装正式环境?OpenStack 挺麻?ch)的Q所以,出发点就是安装一个能试使用?Dev 环境?yu)可以?jin)Q不求全Q时间紧张,能用p。所以,定位?devstackQhttp://devstack.orgQ,一键安?OpenStack <div><br /> </div> <div>问题</div> <div>1. 想用 CentOS 来着Q没原因Q习(fn)惯了(jin)Q后来发玎ͼdevstack 默认支持 ubuntuQؓ(f)?jin)简单,改用 ubuntu</div> <div>2. 安装q程中,需要大量的|络下蝲Q网速如果不快,挺急h的?/div> <div>3. 安装?stack.sh ?191 行,?x)报?nbsp;[ERROR] ./stack.sh:191 g-api did not startQ这个问题折腾了(jin)我好久,最后按?nbsp;https://answers.launchpad.net/glance/+question/231020 办法解决?jin),非常感?nbsp;Marc PINHEDE (pinhede-marc) Q但?nbsp;https://bugs.launchpad.net/devstack/+bug/1119428 里,有h说只要修?/etc/default/locale LANG="POSIX"Q就可以?jin),其实我两个都改?jin)Q也不知道是哪个产生?jin)作用。但Q第一U方法,需要安装到一半,p|?jin),才?x)有提到的 /opt/stack/glance/glance/notifier/notify_kombu.py 文gQ但W二U方法,刚开始就可以试Q所以我如果下次安装的话Q会(x)先把W二U配|修改好Q如果安装失败了(jin)Q再使用W一U方法l?/div> <div><br /> </div> <div><br /> </div><img src ="http://www.aygfsteel.com/haha1903/aggbug/402420.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/haha1903/" target="_blank">哈哈的日?/a> 2013-08-06 10:19 <a href="http://www.aygfsteel.com/haha1903/archive/2013/08/06/402420.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Build Hadoop q程中遇到需要安?protobuf 问题的解x?/title><link>http://www.aygfsteel.com/haha1903/archive/2013/07/24/401909.html</link><dc:creator>哈哈的日?/dc:creator><author>哈哈的日?/author><pubDate>Wed, 24 Jul 2013 05:24:00 GMT</pubDate><guid>http://www.aygfsteel.com/haha1903/archive/2013/07/24/401909.html</guid><wfw:comment>http://www.aygfsteel.com/haha1903/comments/401909.html</wfw:comment><comments>http://www.aygfsteel.com/haha1903/archive/2013/07/24/401909.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/haha1903/comments/commentRss/401909.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/haha1903/services/trackbacks/401909.html</trackback:ping><description><![CDATA[?compile hadoop-common 的时候,提示 protobuf 出错Q查?jin)一下,需要安?protobufQ是一个非 Java 的组Ӟ(j) <div>先到 homebrew 上找到安?homebrew 的方?nbsp;ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)"</div> <div>然后不能直接 brew install protobufQ因Z(x)安装 1.5.0Q也没办法编译过的,我试?jin)?/div> <div>需要先 brew versions protobufQ然?cd `brew --prefix`Q我默认的是 cd /usr/localQ,直接招待刚才 brew versions 出来的那?git clone Ҏ(gu)?/div> <div>然后再次 brew install protobuf Q就安装  1.4.1 ?jin),l箋 maven 没有问题了(jin)?/div><img src ="http://www.aygfsteel.com/haha1903/aggbug/401909.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/haha1903/" target="_blank">哈哈的日?/a> 2013-07-24 13:24 <a href="http://www.aygfsteel.com/haha1903/archive/2013/07/24/401909.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Mac ?Terminal ?Java 不ؕ?/title><link>http://www.aygfsteel.com/haha1903/archive/2013/07/24/401908.html</link><dc:creator>哈哈的日?/dc:creator><author>哈哈的日?/author><pubDate>Wed, 24 Jul 2013 05:20:00 GMT</pubDate><guid>http://www.aygfsteel.com/haha1903/archive/2013/07/24/401908.html</guid><wfw:comment>http://www.aygfsteel.com/haha1903/comments/401908.html</wfw:comment><comments>http://www.aygfsteel.com/haha1903/archive/2013/07/24/401908.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/haha1903/comments/commentRss/401908.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/haha1903/services/trackbacks/401908.html</trackback:ping><description><![CDATA[?.bash_profile 中增加一?nbsp;export JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF-8 可以了(jin)? <div><br /> </div> <div><br /> </div><img src ="http://www.aygfsteel.com/haha1903/aggbug/401908.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/haha1903/" target="_blank">哈哈的日?/a> 2013-07-24 13:20 <a href="http://www.aygfsteel.com/haha1903/archive/2013/07/24/401908.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <a href="http://www.aygfsteel.com/" title="狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频">狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频</a> </div> </footer> վ֩ģ壺 <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ƺ</a>| <a href="http://" target="_blank">ײ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ij</a>| <a href="http://" target="_blank">Ϻӿ</a>| <a href="http://" target="_blank">ƺ</a>| <a href="http://" target="_blank">ͨ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ɽ</a>| <a href="http://" target="_blank">̩</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Ҿ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">IJ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ƽ</a>| <a href="http://" target="_blank">ű</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ɽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">齭</a>| <a href="http://" target="_blank">γ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">IJ</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>