锘??xml version="1.0" encoding="utf-8" standalone="yes"?>久久精品国产亚洲一区二区三区,亚洲乱色熟女一区二区三区蜜臀,亚洲午夜久久久久妓女影院http://m.tkk7.com/libin2722/category/46078.html铏氬叾蹇?jī)锛屽彲瑙eぉ涓嬩箣闂Q涗笓鍏跺績(jī)錛屽彲娌誨ぉ涓嬩箣瀛︼紱闈?rùn)鍏跺績(jī)锛屽彲鎮(zhèn)熷ぉ涓嬩箣鐞嗗Q涙亽鍏跺績(jī)錛屽彲鎴愬ぉ涓嬩箣涓氥?/description>zh-cnThu, 16 Sep 2010 09:52:05 GMTThu, 16 Sep 2010 09:52:05 GMT60鏉冮檺鎺у埗錛歴pring 3.0 security閰嶇疆渚嬪瓙http://m.tkk7.com/libin2722/articles/332006.html紺肩墿紺肩墿Tue, 14 Sep 2010 10:51:00 GMThttp://m.tkk7.com/libin2722/articles/332006.htmlhttp://m.tkk7.com/libin2722/comments/332006.htmlhttp://m.tkk7.com/libin2722/articles/332006.html#Feedback0http://m.tkk7.com/libin2722/comments/commentRss/332006.htmlhttp://m.tkk7.com/libin2722/services/trackbacks/332006.html浠ユ渶鏂扮増鐨剆pring-security-3.0.2浣滀負(fù)浠嬬粛瀵硅薄錛屽鏋滀綘浜?jiǎn)瑙pring 2.0 Security鐨勮瘽錛岄偅灝辨瘮杈冩姳姝変簡(jiǎn)錛屽洜涓簊pring-security-3.0.2涓?.0鐩告瘮鏀瑰姩寰堝ぇ錛屽湪2.0涓殑涓浜涢厤緗嬁鍒?.0鍑犱箮鏄 涓嶉氱殑錛屽鏋滀綘榪樻病鏈夋帴瑙﹁繃spring錛岄偅涔堜互涓嬫槸鍏跺湴鍧錛?/p>

Spring瀹樻柟緗戝潃錛?a >http://www.springsource.org/

spring-security涓嬭澆鍦板潃錛?/p>

http://static.springsource.org/spring-security/site/downloads.html

鎴戜互鍏惰嚜甯︾殑涓涓畝鍗曚緥瀛愭潵浠嬬粛涓涓嬪惂錛屽洜涓鴻繖涓緥瀛愰厤緗笉瀵圭殑璇濇瀬鏄撴姤閿欙紙榪欎釜渚嬪瓙鏄釜鎵撳寘鐨刉ar鏂囦歡錛屼絾涓庢枃妗d腑鐨勫張涓嶄竴鏍鳳紝鎵浠ユ瀬鏄撳嚭閿欙級(jí)錛屾垜浼?xì)瀵瑰嚭鐜扮殑閿欒缁欎簣鍑洪敊鍘熷洜鍙?qiáng)瑙e喅鏂規(guī)硶銆?/p>

棣栧厛閫氳繃spring-security鍦板潃涓嬭澆鍒版渶鏂扮増鐨剆pring-security-3.0.2.RELEASE.zip錛岀劧鍚庤В鍘嬪紑鏉ワ紝鍦ㄨВ鍘嬪紑鐨勭洰褰昫ist涓紝浣犱細(xì)鐪嬪埌濡備笅涓浜涙枃浠訛細(xì)

鐪嬪埌spring-security-samples-tutorial-3.0.2.RELEASE.war浜?jiǎn)鍚楀Q熸垜灝變互榪欎釜涓轟緥錛屾妸榪欎釜鍖呮嫹璐? 鍒頒綘Web鏈嶅姟鍣紙濡俆omcat錛夌殑webapps鐩綍涓嬶紝鍚姩鏈嶅姟鍣ㄥ悗錛屼細(xì)鐢熸垚涓涓猻pring-security-samples- tutorial-3.0.2.RELEASE欏圭洰錛屽彲浠ユ妸鍚嶅瓧鏀圭煭涓鐐規(guī)柟渚胯闂紝姣斿鎴戣繖閲屾敼鍚嶄負(fù)錛歴pring-security錛岃繖鏍烽氳繃http://127.0.0.1/spring-security鍙互鐩存帴璁塊棶浜?jiǎn)銆?/p>

榪涘叆鐩綍WEB-INF錛屽彲浠ョ湅鍒板涓婄殑涓浜涙枃浠訛紝鍏朵腑錛宎pplicationContext-security.xml鏄潈闄愭帶鍒墮厤緗枃浠訛紝鎵 鏈夌殑鏉冮檺鎺у埗閮芥槸鍦ㄥ叾涓厤緗殑錛宐ank-servlet.xml鏄郴緇熺殑涓婁笅鏂囬厤緗枃浠訛紝鍙互鍦ㄥ叾涓厤緗闂礬寰勬槧灝勶紙綾諱技浜嶴truts-1.x涓殑 struts-config.xml鎴杝truts-2.x涓殑struts.xml鏂囦歡錛夛紝涔熷彲浠ュ湪鍏朵腑榪涜涓浜涜閰嶇瓑宸ヤ綔錛屽睘浜巗pring綰х殑錛屼笌 瀹夊叏閰嶇疆娌″澶у叧緋匯?/p>

鍏蜂綋鐨勬枃浠跺唴瀹規(guī)垜灝變笉灞曠ず浜?jiǎn)锛屽洜湄?fù)鍙互鑷繁鎵撳紑鐪嬶紝鎴戣繖閲屽彧璇磋娉ㄦ剰鐨勪竴浜涘湴鏂癸細(xì)

1銆佸湪web.xml涓殑閰嶇疆

鏈嶅姟鍚姩鏃跺姞杞絘pplicationContext-security.xml鏂囦歡錛?/p>

<context-param>

<param-name>contextConfigLocation</param-name>

<param-value>

/WEB-INF/applicationContext-security.xml

</param-value>

</context-param>

瑕佽繃婊ら摼鎺ョ殑褰㈠紡

<filter>

<filter-name>springSecurityFilterChain</filter-name>

<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>

</filter>

<filter-mapping>

<filter-name>springSecurityFilterChain</filter-name>

<url-pattern>/*</url-pattern>

</filter-mapping>

浣犱竴瀹氭敞鎰忓埌浜?jiǎn)锛寴q欓噷鐨刦ilter-class涓嶴pring2.0鐨勪笉鍚屼箣澶勶紝濡傛灉浣犱簡(jiǎn)瑙pring2.0鐨勮瘽錛岀殑紜紝鍦⊿pring2.0涓負(fù)錛?/p>

<filter-name>acegiFilterChain</filter-name>

<filter-class>org.acegisecurity.util.FilterToBeanProxy</filter-class>

榪欏氨鏄?.0涓?.0鏀瑰彉寰堝ぇ鐨勪竴涓湴鏂癸紝2.0鐢ㄧ殑涓篈cegi錛屽悗鏉cegi宓屽叆鍒頒簡(jiǎn)Spring涓紝鎴愪負(fù)浜?jiǎn)Spring Security錛屾墍浠ュ寘鐨勮礬寰勪篃閮芥敼鍙樹(shù)簡(jiǎn)錛?/p>

2銆佸湪applicationContext-security.xml涓殑閰嶇疆

				<http use-expressions="true">

<intercept-url pattern="/secure/extreme/**" access="hasRole('ROLE_SUPERVISOR')"/>

<intercept-url pattern="/secure/**" access="isAuthenticated()" />

<!-- Disable web URI authorization, as we're using <global-method-security> and have @Secured the services layer instead

<intercept-url pattern="/listAccounts.html" access="isRememberMe()" />

<intercept-url pattern="/post.html" access="hasRole('ROLE_TELLER')" />

-->

<intercept-url pattern="/**" access="permitAll" />

<form-login />

<logout />

<remember-me />

<!--

Uncomment to enable X509 client authentication support

<x509 />

-->

<!-- Uncomment to limit the number of sessions a user can have -->

<session-management invalid-session-url="/timeout.jsp">

<concurrency-control max-sessions="1" error-if-maximum-exceeded="true" />

</session-management>

</http>

涓婇潰榪欐鏄垵鐢ㄨ呮瘮杈冨鏄撳嚭閿欑殑鍦版柟錛岃繖鍏跺疄涔熸槸鍐欒繖綃囨枃绔犵殑涓昏鍘熷洜涔嬩竴錛屾敞鎰忓埌絎竴琛岀殑榛戜綋瀛楋細(xì)

<http use-expressions=鈥漷rue鈥?gt;

琛ㄧず榪欓噷鐨勯厤緗彲浠ヤ嬌鐢ㄤ竴縐嶈〃杈懼紡錛岃繖縐嶈〃杈懼紡灝辨槸綾諱技浜巌sAuthenticated()榪欐牱鐨勫啓娉曪紝鍦ㄥ悗闈細(xì)鐪嬪埌涓庤繖縐嶅啓娉曚笉涓鏍蜂絾鍚屾牱鍙互杈懼埌鐩稿悓鏁堟灉鐨勫啓娉曘?/p>

intercept-url琛ㄧず瑕佹嫤鎴殑url褰㈠紡錛屾瘮濡?/p>

<intercept-url pattern=鈥?secure/**鈥?access=鈥漣sAuthenticated()鈥?/>

琛ㄧず鏍圭洰褰曚笅鐨剆ecure鐩綍闇瑕佺粡榪囬獙璇佸悗鎵嶈兘璁塊棶鐨勩?/p>

<form-login />鏄疭pring Security鑷姩涓轟綘鐢熸垚鐨勪竴涓畝闄嬬殑鐧誨綍欏甸潰錛屽嵆浣夸綘娌℃湁鍒涘緩浠諱綍鐧誨綍欏甸潰錛屽綋鐒朵綘涔熷彲浠ヤ慨鏀癸紝浣嗕笉寤鴻浣犱慨鏀癸紝鍥犱負(fù)浣犲彲浠ヤ笉浣跨敤榛樿鐨勶紝鍙互閲囩敤 濡備笅鏂瑰紡錛?lt;form-login login-page=鈥? login.html鈥?>鑷畾涔変竴涓櫥褰曢〉闈€?/p>

鍏朵粬鐨勮鏄庡彲浠ュ弬鑰冧竴涓炕璇戠殑涓枃鏂囨。錛?/p>

http://www.family168.com/tutorial/springsecurity3/html/ns-config.html

3銆佸鏄撳嚭閿欑殑鍦版柟

鍦ㄤ笂闈㈢殑緲昏瘧鏂囨。錛堜篃鏄炕璇戣嚜瀹樻柟鏂囨。錛夋垨鑻辨枃瀹樻柟鏂囨。涓紝緇欏嚭鐨勪笌涓婇潰渚嬪瓙鍔熻兘鐩鎬技鐨勮鏄庡ぇ姒傛槸榪欐牱鐨勶細(xì)

聽(tīng) <http auto-config='true'>
聽(tīng)聽(tīng)聽(tīng) <intercept-url pattern="/**" access="ROLE_USER" />
聽(tīng) </http>

娉ㄦ剰鍒頒笌涓婇潰渚嬪瓙涓嶅悓鐨勫湴鏂逛簡(jiǎn)鍚楋紵

榪樻槸娉ㄦ剰絎竴琛岋紝榪欏洖涓嶆槸<http use-expressions=鈥漷rue鈥?gt;鑰屾槸<http auto-config=鈥檛rue鈥?gt;浜?jiǎn)锛岃屼笅闈㈢殑閰嶇疆

<intercept-url pattern=鈥?**鈥?access=鈥漅OLE_USER鈥?/strong> />涔熶笌涓婇潰鐨勫啓娉曚笉鍚岋紝浜嬪疄涓婂鏋滄槸<http use-expressions=鈥漷rue鈥?gt;鐨勮瘽錛岃繖鍙?strong>access=鈥漅OLE_USER鈥?/strong>灝辨槸閿欑殑錛屾紜殑鍐欐硶灝卞簲璇ヤ負(fù)錛歨asRole(鈥楻OLE_USER鈥?銆?/p>

榪欎笉寰椾笉璇磋繖鏄疭pring Security鐨勬枃妗d笌渚嬪瓙涓嶆惌閰嶇殑涓涓綆綰ч敊璇紝鍥犱負(fù)褰撲竴涓嬌鐢ㄨ呭湪鎵撳紑渚嬪瓙鍙堢湅鍒版枃妗h鏄庢椂錛屼粬寰寰涓嶇煡閬撹繖涓よ呮湁浣曞尯鍒紝灝卞鍚屾垜鍒氫嬌鐢ㄧ殑鏃跺欎竴鏍鳳紝鎴戝湪浣跨敤<http use-expressions=鈥漷rue鈥?gt;鐨勫悓鏃訛紝灝?strong>access=鈥漅OLE_USER鈥?/strong>榪欑鍐欐硶涔熷啓浜?jiǎn)杩涙潵锛尵l撴灉鍙兂鑰岀煡錛屾姤浜?jiǎn)閿欏Q佹姤閿欎俊鎭濡傦細(xì)

org.apache.jasper.JasperException: java.lang.IllegalArgumentException: Failed to evaluate
expression 'ROLE_SUPERVISOR'

灝辨槸璇?strong>use-expressions榪欑琛ㄧず娉曟槸涓嶈璇?strong>access=鈥漅OLE_USER鈥?/strong>榪欑鍐欐硶鐨勶紝鍙﹀錛屽綋浣跨敤浜?strong><http use-expressions=鈥漷rue鈥?gt;鏃訛紝涓瀹氳鍦ㄩ厤緗腑鑷沖皯鏈変竴涓鍚?strong>use-expressions鐨勮〃紺烘硶錛屽惁鍒欏氨浼?xì)鎶ゾc諱技濡備笅閿欒錛?/p>

org.springframework.expression.spel.SpelEvaluationException: EL1008E:(pos 0): Field or property
'ROLE_SUPERVISOR' cannot be found on object of type 'org.springframework.security.web.access.
expression.WebSecurityExpressionRoot'

榪欎釜綆鍗曠殑閰嶇疆渚嬪瓙澶ф灝卞啓榪欎箞澶氬惂錛屾渶鍚庤璇存垜瀵筍pring Security鐨勭湅娉曪紝鎴戜釜浜鴻寰桽pring Security鐨勫姛鑳界殑紜槸寰堝己澶э紝鑰冭檻寰椾篃闈炲父鍏ㄩ潰錛屽嚑涔庝粈涔堥兘鎯蟲(chóng)浛浣跨敤鑰呭仛瀹岋紝浣嗘鏄畠鐨勮繖鐐癸紝鎴戣寰楀掓槸瀹冪殑緙虹偣錛屽湪鎴戜簡(jiǎn)瑙e畠騫墮厤緗殑榪囩▼涓紝鎴? 涓漢瑙夊緱鏄潪甯稿鏉傜箒鐞愮殑錛岃屼笖瀹冪幇鍦ㄧ殑鏂囨。鏀寔涔熷茍涓嶅ソ錛屾濡備笂闈㈡墍鐪嬪埌鐨勪竴鏍鳳紝鏂囨。涓庝緥瀛愪腑鐨勫啓娉曢兘涓嶄竴鑷淬備簨瀹炰笂錛屼嬌鐢ㄨ呭茍涓嶅笇鏈涘畠浠涔堥兘鍋氬埌錛屾瘮 濡傚畠鍋氱殑閭d釜緙虹渷鐧誨綍欏甸潰錛岄偅涓湁鎰忎箟鍚楋紵浣跨敤鑰呮瘮濡傛垜錛屽叾瀹炲氨鏄笇鏈涗竴涓緢綆鍗曠殑鏉冮檺鍒ゆ柇錛屾瘮濡傛垜鎵撳紑鏌愪竴涓摼鎺ワ紝鐒跺悗浣犲憡璇夋垜璁塊棶鑰呮湁鏃犳潈闄愯闂紝緇? 鎴戣繑鍥炰竴涓被浼紅rue鎴杅alse鐨勭粨鏋滃氨澶熶簡(jiǎn)錛佽嚦浜庡叾浠栫殑浜嬫儏錛屾垜鏄浣曠殑澶勭悊鍚庣畫(huà)榪囩▼騫朵笉鐢⊿pring Security鎿嶅績(jī)鐨勶紝浣嗗緢鏄劇劧錛屽瓙鐚磋涓篠pring Security鍦ㄨ繖鐐逛笂鍋氬緱騫朵笉濂姐?



紺肩墿 2010-09-14 18:51 鍙戣〃璇勮
]]>
鍩熷璞$殑瀹夊叏(Domain Object Security)http://m.tkk7.com/libin2722/articles/329982.html紺肩墿紺肩墿Thu, 26 Aug 2010 08:01:00 GMThttp://m.tkk7.com/libin2722/articles/329982.htmlhttp://m.tkk7.com/libin2722/comments/329982.htmlhttp://m.tkk7.com/libin2722/articles/329982.html#Feedback0http://m.tkk7.com/libin2722/comments/commentRss/329982.htmlhttp://m.tkk7.com/libin2722/services/trackbacks/329982.html24.1.聽(tīng)姒傝堪

璇鋒敞鎰忥細(xì)鍦?span style="font-family: Arial;">2.0.0涔嬪墠錛?span style="font-family: Arial;">Spring Security縐頒負(fù)Acegi Security銆傝佺殑Acegi Security鎻愪緵浜?jiǎn)涓涓?span style="font-family: Arial;">ACL妯″潡錛屾斁鍦?code>org.[acegisecurity/springsecurity].acl鍖呬笅銆傝繖涓佺殑鐜板湪宸茬粡琚姏寮冿紝騫跺彲鑳戒細(xì)鍦ㄥ皢鏉ョ殑Spring Security鍙戣鐗堜腑鍘繪帀銆傛湰绔犺璁烘柊鐨?/code>ACL妯″潡錛屽畼鏂規(guī)帹鑽愬湪Spring Security 2.0.0鎴栨洿楂樼増鏈腑浣跨敤錛屽畠琚疆浜?code>org.springframework.security.acls鍖呬笅銆?/code>

澶嶆潅鐨勫簲鐢ㄥ父甯鎬細(xì)鏈夐渶瑕佸畾涔夎闂潈闄愨斺斾笉鍙槸鍦?span style="font-family: Arial;">web璇鋒眰鍜屾柟娉曡皟鐢ㄦ按騫崇殑鎺у埗銆傝屾槸瀹夊叏鍐寵闇瑕佺敱鈥?span style="font-family: Arial;">who (Authentication), where (MethodInvocation) and what (SomeDomainObject)鈥濇瀯鎴愩備篃灝辨槸璇達(dá)紝鎺堟潈鍐寵榪樿鑰冭檻鏂規(guī)硶璋冪敤涓殑瀹為檯鍩熷璞°?/p>

鎯寵薄浣犳鍦ㄤ負(fù)瀹犵墿璇婃墍璁捐涓涓簲鐢ㄣ備綘鐨勫熀浜?span style="font-family: Arial;">Spring鐨勫簲鐢ㄤ富瑕佹湁涓ょ粍鐢ㄦ埛錛氬疇鐗╄瘖鎵鐨勮亴鍛樺拰瀹㈡埛銆傝亴鍛樺彲浠ヨ闂墍鏈夋暟鎹紝浣嗗鎴峰彧鑳界湅鍒拌嚜宸辯殑瀹㈡埛璁板綍銆備負(fù)浜?jiǎn)鋴蓸q欎釜渚嬪瓙鏇村姞鏈夎叮涓鐐癸紝浣犵殑瀹㈡埛鍙互璁╁叾瀹冨鎴風(fēng)湅浠栦滑鐨勫鎴瘋褰曪紝渚嬪浠栦滑"puppy preschool"鐨勯【闂垨鏈湴"Pony Club"鐨勬昏銆備互Spring Security涓哄熀紜錛屼綘鏈夊嚑涓柟寮忓彲浠ラ夋嫨錛?/p>

1.聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) 緙栧啓涓涓嚜宸辯殑涓氬姟鏂規(guī)硶寮哄埗瀹夊叏鎺у埗銆備綘鍙互浠?span style="font-family: Arial;">Customer鍩熷璞′腑鑾峰彇涓涓湁璁塊棶鏉冮檺鐢ㄦ埛鐨勯泦鍚堛傚彲浠ョ敤SecurityContextHolder.getContext().getAuthentication()鏉ヨ闂?/code>Authentication瀵硅薄銆?/code>

2.聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) 緙栧啓涓涓?/code> AccessDecisionVoter 錛岄氳繃 Authentication 涓偍瀛樼殑 GrantedAuthority[] 鏉ユ帶鍒跺畨鍏ㄦ鏌ャ傝繖鎰忓懗鐫浣犵殑 AuthenticationManager 瑕佹妸浠h〃鐢ㄦ埛瀵瑰煙瀵硅薄璁塊棶鏉冮檺鐨?/code> GrantedAuthority []濉厖鍒?code>Authentication瀵硅薄涓幓銆?/code>

3.聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) 緙栧啓涓涓?code>AccessDecisionVoter鏉ュ己鍒跺畨鍏ㄦ帶鍒訛紝鐩存帴鎵撳紑鐩爣Customer鍩熷璞°傝繖鎰忓懗鐫浣犵殑voter闇瑕佽闂?/code>DAO鏉ヨ幏鍙?/code>Customer瀵硅薄銆傚畠鎺ョ潃浼?xì)璁块?/code>Customer瀵硅薄闆嗗悎鏉ヨ繘琛屽畨鍏ㄥ喅璁?/code>

榪欎簺鏂規(guī)硶閮芥槸鍚堟儏鍚堢悊鐨勩備絾鏄紝絎竴涓柟娉曟妸浣犵殑鎺堟潈媯(gè)鏌ュ拰涓氬姟浠g爜鑰﹀悎鍒頒竴璧蜂簡(jiǎn)銆傚甫鏉ョ殑涓昏闂鍖呮嫭鎻愰珮?shù)簡(jiǎn)鍗曞厓娴嬭瘯鐨勯殤趾﹀Q屼互鍙?code>Customer鎺堟潈閫昏緫寰堥毦鍦ㄥ叾瀹冨湴鏂歸噸鐢ㄣ備粠Authentication涓幏鍙?code>GrantedAuthority[]鏄ソ鐨勶紝浣嗘槸闈㈠鏁伴噺寰堝ぇ鐨?/code>Customers鏃朵篃鏄笉琛岀殑銆傚鏋滅敤鎴瘋闂殑Customers鏁伴噺鍙兘杈懼埌5,000涓紙鍦ㄨ繖涓緥瀛愰噷涓嶅ぇ鍙兘錛屼絾鏄兂璞″鏋滄槸涓涓緢澶х殑Pony Club閲岀殑鍏藉尰錛侊級(jí)錛屾瀯寤?code>Authentication闇瑕佽楄垂鐨勫唴瀛樺拰鏃墮棿鍙兘涓嶆槸浣犳兂瑕佺殑銆傛渶鍚庝竴縐嶆柟娉曪紝緙栧啓浠g爜浠庡閮ㄧ洿鎺ユ墦寮Customer錛屽彲鑳芥槸榪?/code>3涓柟娉曢噷鏈濂界殑涓涓傚畠鎴愬姛鍒嗙浜?jiǎn)鍏虫敞鐐瑰Q屼篃娌℃湁婊ョ敤鍐呭瓨鍜?/code>CPU錛屼絾榪樻槸鏁堢巼寰堜綆錛?/code>AccessDecisionVoter鍜屾渶緇堢殑涓氬姟鏂規(guī)硶閮借鑷繁鏉ヨ皟鐢?/code>DAO鏂規(guī)硶鏉ヨ幏鍙?/code>Customer瀵硅薄銆備竴嬈′笟鍔℃柟娉曡皟鐢ㄨ璁塊棶涓ゆDAO寰堟槑鏄句篃涓嶆槸浣犳兂瑕佺殑銆傚彟澶栵紝涓婇潰鎻愬埌鐨勬瘡涓縐嶆柟娉曚綘閮借鑷繁浠庡ご鏉ョ紪鍐欒嚜宸辯殑璁塊棶鎺у埗鍒楄〃錛?/code>ACL錛夋寔涔呭寲鍜屼笟鍔¢昏緫銆?/code>

騫歌繍鍦幫紝榪樻湁鍙﹀涓涓夋嫨錛屼笅闈㈡垜浠潵璁ㄨ涓涓嬭繖涓夋嫨銆?/p>

24.2.聽(tīng)鍏抽敭姒傚康

Spring Security鐨?span style="font-family: Arial;">ACL鏈嶅姟鍙戝竷涓?code>spring-security-acl-xxx.jar銆傝浣跨敤Spring Security鐨勫煙瀵硅薄瀹夊叏錛屼綘瑕佹妸榪欎釜鍖呭姞鍏ュ埌浣犵殑classpath涓?/p>

Spring Security鐨勫煙瀵硅薄瀹夊叏浠ヨ闂帶鍒跺垪琛紙ACL錛変負(fù)鏍稿績(jī)姒傚康銆備綘緋葷粺閲岀殑姣忎釜鍩熷璞¢兘鏈夎嚜宸辯殑ACL錛岃繖涓?span style="font-family: Arial;">ACL璁板綍浜?jiǎn)璋佽兘鎴栦笉鑳借畨K棶璇ュ煙瀵硅薄銆?span style="font-family: Arial;">Spring Security涓轟綘鐨勫簲鐢ㄥ甫鏉?span style="font-family: Arial;">3涓富瑕佺殑ACL鐩稿叧鑳藉姏銆?/p>

聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) 鎻愪緵涓鏉″彲浠ラ珮鏁堝湴涓轟綘鎵鏈夌殑鍩熷璞¤幏鍙?span style="font-family: Arial;">ACL鏉$洰錛堜互鍙?qiáng)淇?span style="font-family: Arial;">ACL錛夌殑閫斿緞錛?/p>

聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) 鎻愪緵涓鏉″湪鏂規(guī)硶琚皟鐢ㄥ墠淇濊瘉緇欏畾鐢ㄦ埛鏈夎闂綘鐨勫煙瀵硅薄璁稿彲鐨勯斿緞錛?/p>

聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) 鎻愪緵涓鏉″湪鏂規(guī)硶琚皟鐢ㄥ悗淇濊瘉緇欏畾鐢ㄦ埛鏈夎闂綘鐨勫煙瀵硅薄璁稿彲鐨勯斿緞錛?/p>

姝e絎竴鐐規(guī)墍璇達(dá)紝Spring Security鐨?span style="font-family: Arial;">ACL妯″潡鐨勪富瑕佽兘鍔涗箣涓鏄彁渚涗竴涓珮鎬ц兘鑾峰彇ACL鐨勯斿緞銆傝繖涓?span style="font-family: Arial;">ACL repository鐨勮兘鍔涙槸闈炲父閲嶈鐨勶紝鍥犱負(fù)浣犵郴緇熶腑鐨勬瘡涓涓煙瀵硅薄鍙兘鏈夎嫢騫蹭釜璁塊棶鎺у埗鏉$洰錛屾瘡涓?span style="font-family: Arial;">ACL鍙堝彲鑳芥槸浠庡叾浠?span style="font-family: Arial;">ACL緇ф壙鑰屾潵鈥斺旀爲(wèi)鍨嬬粨鏋勶紙榪欏緢甯哥敤錛?span style="font-family: Arial;">Spring Security鎻愪緵浜?jiǎn)寰堝?guī)槗浣跨敤鐨勬敮鎸侊級(jí)銆?span style="font-family: Arial;">Spring Security鐨?span style="font-family: Arial;">ACL妯″潡宸茬粡寰堝皬蹇?jī)鐨勮冭檻浜?jiǎn)璁捐浠ユ弧鑳鲩珮鎬ц兘鐨?span style="font-family: Arial;">ACL媯(gè)绱紝瀹冨埄鐢ㄤ簡(jiǎn)鍙彃鎺ョ殑緙撳瓨妯″潡錛屾閿佹渶灝忓寲鐨勬暟鎹簱鏇存柊錛岀嫭绔嬩簬ORM妗嗘灦錛堟垜浠嬌鐢ㄧ洿鎺?span style="font-family: Arial;">JDBC錛夛紝閫傚綋鐨勫寘瑁咃紝浠ュ強(qiáng)閫忔槑鐨勬暟鎹簱鏇存柊銆?/p>

鏁版嵁搴撶殑璁捐鏄互ACL妯″潡鐨勬搷浣滀負(fù)涓績(jī)鐨勶紝璁╂垜浠潵鐪嬬湅璇ユā鍧楃殑瀹炵幇閲岀己鐪佷嬌鐢ㄧ殑4涓富瑕佹暟鎹〃銆備笅闈㈠垪鍑哄湪涓涓吀鍨嬬殑Spring Security ACL閮ㄧ講涓殑鏁版嵁琛紝浠ユ暟鎹噺澶у皬鎺掑簭錛岃鏁版渶澶氱殑鍦ㄦ渶鍚庨潰錛?/p>

聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) ACL_SID浣挎垜浠兘澶熷湪緋葷粺涓敮涓瀹氫箟浠諱綍principal鎴?span style="font-family: Arial;">authority錛堚?span style="font-family: Arial;">SID鈥濊〃紺衡?span style="font-family: Arial;">Security IDentity鈥濓級(jí)銆備富閿槸ID錛?span style="font-family: Arial;">SID鐨勬枃瀛楄〃紺猴紝浠ュ強(qiáng)涓涓〃紺鴻SID鏄?span style="font-family: Arial;">principal鍚嶈繕鏄?code>GrantedAuthority鐨勬爣璇嗐傛瘡涓?/code>principal鎴?/code>GrantedAuthority閮芥湁涓涓搴旂殑璁板綍銆傚綋鍦ㄦ帴鍙楄鍙殑涓婁笅鏂囦腑浣跨敤鐨勬椂鍊欙紝SID閫氬父琚О涓衡滄帴鏀惰咃紙recipient錛夆濄?/code>

聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) ACL_CLASS浣挎垜浠兘澶熷湪緋葷粺涓敮涓瀹氫箟浠諱綍鍩熷璞$被銆備富閿槸ID錛岀劧鍚庢槸CLASS錛?span style="font-family: Arial;">java綾誨悕錛夈傛瘡涓垜浠兂瑕佷負(fù)鍏跺瓨鍌?span style="font-family: Arial;">ACL璁稿彲鐨勭被鏈変竴涓褰曘?/p>

聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) ACL_OBJECT_IDENTITY瀛樺偍緋葷粺閲屾瘡涓煙瀵硅薄瀹炰緥鐨勪俊鎭傚叾涓殑鍒楀寘鎷?span style="font-family: Arial;">ID錛涗竴涓埌琛?span style="font-family: Arial;">ACL_CLASS 鐨勫閿?span style="font-family: Arial;">OBJECT_ID_CLASS錛涗竴涓嬌鎴戜滑鐭ラ亾鏄負(fù)鍝釜ACL_CLASS綾誨疄渚嬫彁渚涗俊鎭殑鍞竴鏍囪瘑OBJECT_ID_IDENTITY錛涚埗瀵硅薄錛屼竴涓埌ACL_SID鐨勫閿?span style="font-family: Arial;">OWNER_SID琛ㄧず璇ュ煙瀵硅薄鐨勬墍鏈夎咃紱ENTRIES_INHERITING琛ㄧず鏄惁鍏佽ACL鏉$洰浠?span style="font-family: Arial;">ACL鐖舵潯鐩戶鎵褲?/p>

聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) 鏈鍚庯紝ACL_ENTRY瀛樺偍涓烘瘡涓?span style="font-family: Arial;">recipient鍒嗛厤鐨勬潈闄愩傚畠鐨勫垪鍖呮嫭涓涓埌琛?span style="font-family: Arial;">ACL_OBJECT_IDENTITY鐨勫閿紝recipient(渚嬪涓涓埌ACL_SID鐨勫閿?span style="font-family: Arial;">)錛屾槸鍚﹂渶瑕佸璁★紝浠ュ強(qiáng)涓涓〃紺鴻鍙槸鎺堜簣榪樻槸鎷掔粷鐨勨滄暣鏁頒綅鎺╃爜鈥濓紙璁稿彲鍙兘鍖呮嫭澶氫釜鏂歸潰錛屽view, edit, delete錛夈傛瘡涓?span style="font-family: Arial;">recipient瀵規(guī)瘡涓煙瀵硅薄鐨勮鍙兘鏈変竴涓褰?/p>


涓婁竴孌典腑鎻愬埌錛?span style="font-family: Arial;">ACL緋葷粺浣跨敤浜?jiǎn)鈥滄暣鏁頒綅鎺╃爜鈥濄備笉瑕佹媴蹇?jī)锛屼綘涓嶉渶瑕佺煡閬撹繖浜涙暟瀛楁寚鍚戠殑鍏蜂綋浣嶇Щ鏉ヤ嬌鐢?span style="font-family: Arial;">ACL緋葷粺錛屽彧闇瑕佺煡閬撴垜浠湁32涓紑鍏沖彲浠ユ墦寮鎴栧叧闂氨鍙互浜?jiǎn)锛堜竴涓?span style="font-family: Arial;">int鏁板?span style="font-family: Arial;">4涓?span style="font-family: Arial;">byte錛屽叡32涓?span style="font-family: Arial;">bits錛夈傛瘡涓涓綅浠h〃涓涓?span style="font-family: Arial;">permission錛岀己鐪佸湴錛岃繖浜?span style="font-family: Arial;">permission鏄細(xì)璇伙紙bit 0錛夛紝鍐欙紙bit 1錛夛紝鍒涘緩錛?span style="font-family: Arial;">bit 2錛夛紝鍒犻櫎錛?span style="font-family: Arial;">bit 3錛夊拰綆$悊錛?span style="font-family: Arial;">bit 4錛夈傚鏋滀綘瑕佷嬌鐢ㄥ叾浠?span style="font-family: Arial;">permission錛屽彲浠ュ緢瀹規(guī)槗鐨勫疄鐜拌嚜宸辯殑permission瀹炰緥錛?span style="font-family: Arial;">ACL妗嗘灦鐨勫叾浣欓儴鍒嗕笉闇瑕佸叿澶囦綘瀹氫箟鐨勬墿灞曠殑鐭ヨ瘑錛屽嵆鍙畬鎴愭搷浣溿?/p>

鏄庣櫧鎴戜滑閲囩敤榪欑鈥滄暣鏁頒綅鎺╃爜鈥濆浣犵殑緋葷粺涓煙瀵硅薄鐨勬暟閲忔槸瀹屽叏娌℃湁褰卞搷榪欎竴鐐規(guī)槸寰堥噸瑕佺殑銆傛垜浠殑permission鍙兘浣跨敤32涓?span style="font-family: Arial;">bit錛屼絾鏄綘鍙互鏈夋暟浠ュ崄浜胯鐨勫煙瀵硅薄錛堣繖涔熸剰鍛崇潃浼?xì)鏈夋曨C互鍗佷嚎璁$殑璁板綍鍦?span style="font-family: Arial;">ACL_OBJECT_IDENTITY琛ㄤ腑錛?span style="font-family: Arial;">ACL_ENTRY琛ㄧ殑璁板綍鍒欐洿澶氾級(jí)銆傛垜浠壒鍒鏄庤繖涓鐐規(guī)槸鍥犱負(fù)鍙戠幇鏈変簺鐢ㄦ埛閿欒鐨勪互涓烘垜浠涓烘瘡涓綔鍦ㄧ殑鍩熷璞′嬌鐢ㄤ竴涓?span style="font-family: Arial;">bit錛岃繖鏄笉瀵圭殑銆?/p>

鐜板湪鎴戜滑宸茬粡鎻愪緵浜?jiǎn)涓涓?span style="font-family: Arial;">ACL緋葷粺鐨勫熀鏈瑙堬紝浠ュ強(qiáng)鍦ㄨ〃緇撴瀯涓婄湅璧鋒潵鐨勬牱瀛愶紝鐜板湪璁╂垜浠潵鐪嬬湅鍏抽敭鎺ュ彛銆傚叧閿帴鍙e垪琛ㄥ涓嬶細(xì)

聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) Acl錛氭瘡涓涓煙瀵硅薄鏈変笖浠呮湁涓涓?span style="font-family: Arial;">ACL鐨勫璞★紝瀹冨唴閮ㄦ嫢鏈?code>AccessControlEntry錛屽茍鐭ラ亾Acl鐨勬墍鏈夎呫?span style="font-family: Arial;">Acl涓嶇洿鎺ユ寚鍚戝煙瀵硅薄錛岃屾槸鎸囧悜涓涓?code>ObjectIdentity銆?/code>Acl鏄瓨鍌ㄥ湪ACL_OBJECT_IDENTITY琛ㄤ腑鐨勩?/p>

聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) AccessControlEntry 錛氫竴涓?/code> Acl 鍖呭惈澶氫釜 AccessControlEntry 錛屽湪ACL妗嗘灦涓紝鎴戜滑甯稿父鎶婂畠綆縐頒負(fù)ACE銆傛瘡涓?span style="font-family: Arial;">ACE閮芥寚鍚戜竴緇?span style="font-family: Arial;">Permission錛?span style="font-family: Arial;">Sid鍜?span style="font-family: Arial;">Acl銆?span style="font-family: Arial;">ACE鍙互鏄?span style="font-family: Arial;">granting鎴?span style="font-family: Arial;">non-granting鐨勶紝鍚屾椂鍖呭惈鏈夊璁$殑鐩稿叧璁劇疆銆?span style="font-family: Arial;">ACE淇濆瓨鍦?span style="font-family: Arial;">ACL_ENTRY琛ㄤ腑銆?/p>

聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) Permission 錛?/code> Permission 琛ㄧず涓涓笉鍙彉鐨勪綅鎺╃爜錛屽茍涓轟綅鎺╃爜鏈哄埗鍜屼俊鎭緭鍑烘彁渚涙柟渚跨殑鍔熻兘銆備笂闈㈡彁鍒扮殑 5 涓熀鏈殑 Permission (bits 0 鍒?span style="font-family: Arial;"> 4)鍖呭惈鍦?/code>BasePermission綾諱腑銆?/code>

聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) Sid 錛?/code> ACL 妯″潡闇瑕佸弬鐓у埌 principal 鍜?/code> GrantedAuthority[] 銆?/code> Sid 鎺ュ彛鎻愪緵瀹為檯瀹夊叏瀵硅薄錛堝 principal, role, group 絳夌瓑錛夊拰 Acl 涓疄闄呭唴瀹圭殑闂存帴鑱旂郴錛岀畝縐扳滃畨鍏ㄨ韓浠解濄傛櫘閫氱殑瀹炵幇鍖呮嫭鏈?/code> PrincipalSid 錛堝湪 Authentication 涓〃紺轟竴涓?/code> principal 錛夊拰 GrantedAuthoritySid 銆傚畨鍏ㄨ韓浠戒俊鎭斁鍦?/code> ACL_SID琛ㄤ腑銆?/p>

聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) ObjectIdentity 錛?/code> ACL 妯″潡涓紝鍐呴儴鐢?/code> ObjectIdentity 鏉ヨ〃紺烘瘡涓煙瀵硅薄銆傜己鐪佺殑瀹炵幇鏄?/code> ObjectIdentityImpl 銆?/code>

聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) AclService 錛氱敤浜庤幏鍙?/code> ObjectIdentity 閫傜敤鐨?/code> Acl 銆傚湪鍖呭惈鐨勫疄鐜幫紙 JdbcAclService 錛変腑錛岃幏鍙栨搷浣滃媧劇粰 LookupStrategy 銆?/code> LookupStrategy 涓鴻幏鍙?/code> ACL 淇℃伅鎻愪緵楂樺害浼樺寲鐨勭瓥鐣ワ紝浣跨敤鎵硅幏鍙栵紙 BasicLookupStrategy 錛夛紝涔熸敮鎸佺敤鎴峰疄鐜頒互鎻愪緵鏇村ソ鐨勬ц兘錛屼緥濡傚眰嬈″寲鏌ヨ鍜岀被浼肩殑浠ユц兘涓轟腑蹇?jī)鐨勯?/code> ANSI SQL 鑳藉姏銆?/code>

聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) MutableAclService 錛氬厑璁鎬慨鏀?/code> Acl 浠ヤ究榪涜鎸佷箙鍖栵紝濡傛灉涓嶆槸涓轟簡(jiǎn)榪欎釜鍙互涓嶅繀浣跨敤榪欎釜鎺ュ彛銆?/code>

璇鋒敞鎰忔垜浠彁渚涚殑AclService鍜岀浉鍏崇殑鏁版嵁搴撶被閮芥槸浣跨敤ANSI SQL鐨勩傚洜姝ゅ彲浠ュ伐浣滃湪鎵鏈変富嫻佹暟鎹簱鏈嶅姟鍣ㄤ笂銆傚湪緙栧啓鏈枃鐨勬椂鍊欙紝宸茬粡鍦?span style="font-family: Arial;">Hypersonic SQL, PostgreSQL, Microsoft SQL Server 鍜?span style="font-family: Arial;"> Oracle涓婃祴璇曡繃銆?/p>

Spring Security鍙戣鍖呬腑鏈変袱涓緥瀛愬彲浠ョ敤鏉ユ紨紺?span style="font-family: Arial;">ACL妯″潡銆傚叾涓鏄?span style="font-family: Arial;">Contacts渚嬪瓙錛屽彟澶栦竴涓槸Document Management System (DMS)銆傛垜浠緩璁綘浠旂粏鐪嬬湅榪欎簺渚嬪瓙銆?/p>

24.3.聽(tīng)鍏ラ棬

瑕佸紑濮嬩嬌鐢?span style="font-family: Arial;">Spring Security鐨?span style="font-family: Arial;">ACL鑳藉姏錛屼綘闇瑕佹妸浣犵殑ACL淇濆瓨鍦ㄦ煇涓湴鏂廣傝繖瑕侀氳繃Spring瀹炰緥鍖栦竴涓?code>DataSource銆傜劧鍚庤鏁版嵁婧愯娉ㄥ叆鍒?/code>JdbcMutableAclService鍜?/code>BasicLookupStrategy銆傚悗鑰呮彁渚涗簡(jiǎn)楂樻ц兘鐨?/code>ACL鑾峰彇鑳藉姏錛屽墠鑰呮彁渚涗簡(jiǎn)鍙敼鍙樼殑鑳藉姏銆傝鍙傝冨彂琛屽寘涓換浣曚竴涓緥瀛愭潵浜?jiǎn)瑙e浣晿q涜閰嶇疆銆備綘榪橀渶瑕佸線涓婁竴鑺備腑鎻愬埌鐨勫洓涓〃涓~鍏呮暟鎹紙鍙傝?/code>ACL渚嬪瓙鐪嬬浉鍏?/code>SQL璇彞錛夈?/code>

鍒涘緩鎵闇鏁版嵁琛ㄥ茍瀹炰緥鍖?code>JdbcMutableAclService鍚庯紝浣犺繕瑕佺‘璁や綘鐨勯鍩熸ā鍨嬫敮鎸佷笌Spring Security ACL鍖呬簰鎿嶄綔銆傚緢鍙兘ObjectIdentityImpl宸茬粡鎻愪緵浜?jiǎn)鑳鲥鐨勬敮鎸佸Q屽畠鎻愪緵浜?jiǎn)澶毧U嶅彲鐢ㄧ殑鏂瑰紡銆傚ぇ閮ㄥ垎鐨勫煙瀵硅薄浼?xì)鍖呭惈涓涓?/code>public Serializable getId()鏂規(guī)硶銆傚鏋滆繑鍥炵被鍨嬫槸long錛屾垨鑰呭拰long鍏煎錛堜緥濡?/code>int錛夛紝浣犲氨涓嶉渶瑕佺儲(chǔ)ObjectIdentity鐨勯棶棰樹(shù)簡(jiǎn)銆?/code>ACL妯″潡鐨勫緢澶氶儴鍒嗛兘渚濊禆浜?/code>long identifier銆傚鏋滄病鏈変嬌鐢?/code>long錛堟垨int錛?/code>byte絳夛級(jí)錛屼綘鏈夋満浼?xì)瑕侀噸鏂板疄鐜板嚑涓c匯傛垜浠笉鎵撶畻鍦?/code>Spring Security ACL妯″潡涓?code>鏀寔闈?/code>long identifier錛屽洜涓?/code>long鍜屾墍鏈夌殑鏁版嵁搴?/code>sequence鍏煎錛屼篃鏄渶涓哄父鐢ㄧ殑identifier鏁版嵁綾誨瀷錛屽悓鏃舵湁瓚沖鐨勯暱搴︽敮鎸侀氬父鐨勫簲鐢ㄥ満鏅?/code>

涓嬮潰鐨勪唬鐮佸睍紺哄浣曞垱寤轟竴涓?span style="font-family: Arial;">Acl錛屾垨淇敼涓涓凡瀛樺湪鐨?span style="font-family: Arial;">Acl錛?/p>

				// Prepare the information we'd like in our access control entry (ACE)
		
				ObjectIdentity oi = new ObjectIdentityImpl(Foo.class, new Long(44));
		
				Sid sid = new PrincipalSid("Samantha");
		
				Permission p = BasePermission.ADMINISTRATION;
		
				// Create or update the relevant ACL
		
				MutableAcl acl = null;
		
				try {
		
				聽(tīng)acl = (MutableAcl) aclService.readAclById(oi);
		
				} catch (NotFoundException nfe) {
		
				聽(tīng)acl = aclService.createAcl(oi);
		
				}
		
				// Now grant some permissions via an access control entry (ACE)
		
				acl.insertAce(acl.getEntries().length, p, sid, true);
		
				aclService.updateAcl(acl);
		

鍦ㄤ笂闈㈢殑渚嬪瓙涓紝鎴戜滑鑾峰彇鐨?span style="font-family: Arial;">ACL鏄拰涓涓爣璇嗭紙identifer錛変負(fù)44鐨?span style="font-family: Arial;">"Foo"鍩熷璞¤仈緋誨湪涓璧風(fēng)殑銆傛垜浠鍔犱竴涓?span style="font-family: Arial;">ACE浠ヤ究涓涓彨"Samantha"鐨?span style="font-family: Arial;">principal鑳?span style="font-family: Arial;">"administer"璇ュ璞°傞櫎浜?span style="font-family: Arial;">insertAce鏂規(guī)硶錛岃繖孌典唬鐮佷笉闇瑕佸啀澶氬姞璇存槑銆傚畠鐨勭涓涓弬鏁版槸鏂扮殑ACE瑕佹彃鍏ュ埌Acl鐨勪粈涔堜綅緗備笂闈㈢殑渚嬪瓙涓紝鎴戜滑鎶婂畠鏀懼埌鏈鍚庛傛渶鍚庝竴涓弬鏁版槸涓涓〃紺鴻ACE鎺堟潈鎴栨嫆緇濈殑boolean鍊箋傚ぇ閮ㄥ垎鏃跺欏簲璇ヤ負(fù)鎺堟潈錛?span style="font-family: Arial;">true錛夛紝浣嗘槸濡傛灉涓烘嫆緇濓紙false錛夛紝璇?span style="font-family: Arial;">permission浼?xì)琚湁鏁堢殑鍏抽棴銆?/p>

Spring Security娌℃湁鍦?span style="font-family: Arial;">DAO鎴?span style="font-family: Arial;">repository涓負(fù)鑷姩鍒涘緩銆佹洿鏂版垨鍒犻櫎ACL鎻愪緵浠諱綍鐗瑰埆闆嗘垚銆備綘瑕佷負(fù)鍩熷璞$紪鍐欏儚涓婇潰榪欐牱鐨勪唬鐮併傚湪浣犵殑涓氬姟灞備腑浣跨敤AOP鏉ヨ嚜鍔ㄩ泦鎴?span style="font-family: Arial;">ACL淇℃伅鍜屼綘涓氬姟灞傛搷浣滄槸鍊煎緱鑰冭檻鐨勩傛垜浠彂鐜拌繖鏄竴縐嶅緢鏈夋晥鐨勬柟寮忋?/p> 涓鏃︿綘宸茬粡浣跨敤浜?jiǎn)涓婇潰鐨勬妧鏈潵鍦ㄦ暟鎹簱涓瓨鍌ㄤ竴浜?/span> ACL 淇℃伅錛屼笅涓姝ュ氨鏄疄闄呭浣曚嬌鐢ㄨ繖浜?/span> ACL 淇℃伅浣滀負(fù)浣犵殑鎺堟潈鍐寵閫昏緫鐨勪竴閮ㄥ垎銆傚湪榪欓噷浣犳湁濂藉嚑涓夋嫨銆備綘鍙互鍒嗗埆鍦ㄦ柟娉曡皟鐢ㄥ墠鍜岃皟鐢ㄥ悗緙栧啓鑷繁鐨?/span> AccessDecisionVoter 鎴?/span> AfterInvocationProvider 銆傝繖浜涚被搴旇浣跨敤 AclService 鏉ヨ幏鍙栫浉鍏?/span> ACL 錛岀劧鍚庤皟鐢?/span> Acl.isGranted(Permission[] permission, Sid[] sids, boolean administrativeMode) 鏉ュ喅瀹氭槸鎺堟潈榪樻槸鎷掔粷銆備綘涔熷彲浠ヤ嬌鐢ㄦ垜浠殑 AclEntryVoter 錛?/span> AclEntryAfterInvocationProvider 鎴?/span> AclEntryAfterInvocationCollectionFilteringProvider 綾匯傛墍鏈夎繖浜涚被閮芥彁渚涗簡(jiǎn)鍩轟簬澹版槑鐨勬柟寮忥紝榪愯鏃舵牴鎹繖浜涜瀹氫俊鎭潵榪涜璇勪及錛屾妸浣犱粠緙栧啓浠g爜涓В鏀懼嚭鏉ャ傝鍙傝冧緥瀛愬簲鐢ㄥ涔?fàn)濡備綍鋴社敤杩欎簺绫汇?/span>

紺肩墿 2010-08-26 16:01 鍙戣〃璇勮
]]>
主站蜘蛛池模板: 99国产精品免费视频观看| 亚洲AV无码一区二区大桥未久| 中文成人久久久久影院免费观看| 亚洲国产精品自在在线观看 | 波多野结衣免费在线| 青青草97国产精品免费观看| 亚洲香蕉免费有线视频| 亚洲最大激情中文字幕| 亚洲成a人无码av波多野按摩 | 亚洲不卡1卡2卡三卡2021麻豆| 国产成人亚洲综合无码| 日本一区二区三区日本免费| 久久国产乱子伦精品免费一| 久久免费视频一区| 人妻巨大乳hd免费看| 日韩电影免费在线观看网址| 亚洲精品人成网线在线播放va| 亚洲人成在线播放| 亚洲va在线va天堂成人| 中文字幕在线日亚洲9| 亚洲欧洲日韩极速播放| 亚洲第一成年网站视频 | 夜夜嘿视频免费看| 精品国产免费观看久久久| 大学生一级特黄的免费大片视频| 成年人网站在线免费观看| 成人免费视频网址| 免费的一级片网站| 亚洲精品无码日韩国产不卡?V| 亚洲日本va午夜中文字幕久久| 国产乱辈通伦影片在线播放亚洲| 亚洲中文字幕无码爆乳av中文| 精品亚洲一区二区| 亚洲国产成人精品无码一区二区 | 国产免费无遮挡精品视频 | 人人公开免费超级碰碰碰视频| 久草免费福利在线| 男人的好免费观看在线视频| 日韩精品成人亚洲专区| 亚洲国产精品久久| 国产精品亚洲精品日韩动图|