棣栧厛鐪嬬湅涓や釜鐤戞儜錛岀劧鍚庢垜浼?xì)閫愭瑙i噴榪欎袱涓枒鎯戙?br />
絎竴涓枒鎯戯紝spring security妗嗘灦鏄痵pring鐨勫瓙妗嗘灦錛屾垜灝遍潪甯稿ソ濂噑pring security鍜宻pring鏄浣曡瀺鍚堣搗鏉ワ紝紜垏鐨勮錛宻pring security瀹氫箟鐨勫璞″浣曠撼鍏pring ioc 瀹瑰櫒涓鐞嗐傜爺絀跺埌鏈鍚庡叾瀹為兘鏄痵pring鑷韓鐨勪竴浜涚煡璇嗭紝姣斿錛氳嚜瀹氫箟鎵╁睍xml schema錛宻pring ioc鍚姩銆?br />
絎簩涓枒鎯戯紝spring security濡備綍鎷︽埅鐢ㄦ埛鐨勮姹傘傝繖閮ㄥ垎鍙互瑙hspring security婧愮爜鍙互寰楀埌絳旀銆?br />
褰誨簳鎼炴槑鐧界涓涓枒鎯戜箣鍚庯紝涔熻浣犱互鍚庤嚜宸卞啓涓涓鏋訛紝灝卞彲浠ュ緢鏂逛究鐨勬暣鍚堝埌spring涓幓浜?jiǎn)銆傚浜庢鏋跺紑鍙戝伐紼嬪笀鏉ヨ錛屽紑鍙戞柊鐨勬鏋朵箣鍚庤兘鏁村悎spring鏄繀欏葷殑浜嬫儏浜?jiǎn)锛屾瘯绔焥pring緇欐垜浠墍甯︽潵鐨勫ソ澶勬槸鍙兂鑰岀煡鐨勩傝繖涔熸槸鎴戣褰誨簳浜?jiǎn)瑙f竻妤氬師鐞嗙殑鍔ㄥ姏鎵鍦ㄣ傚簾璇濅竴鍫嗭紝榪涘叆涓婚鍚~~~
絎竴涓枒鎯戞渶鍚庢秹鍙?qiáng)鍒颁袱涓枤w潰鐨勭煡璇嗭紝spring ioc鍚姩鍜宻pring鍙墿灞晉ml schema銆俿pring ioc鏈変袱涓潪甯擱噸瑕佺殑姒傚康錛宐eanfactory鍜宎pplicationContext錛屽悗鑰呮彁渚涗簡(jiǎn)鏇村鏇村己鐨勫姛鑳姐備負(fù)浜?jiǎn)閬垮厤杩囧鐨劸l嗚妭鐩存帴瑙hbeanfactory鐨勮鍙栬繃紼嬶紝xmlbeanfactory璇誨彇xml鏂囦歡浼?xì)缁忓巻濡備笅涓や釜杩嚱E嬶細(xì)1銆侀氳繃resource鎺ュ彛璇誨彇xml鏂囦歡錛岃漿鎹㈡垚document銆?2銆佷粠document涓В鏋愬嚭bean鐨勯厤緗傚叿浣撹緇嗚繃紼嬭鍙傜収鏂囩珷錛?a title="spring璇誨彇xml閰嶇疆婧愪唬鐮佸垎鏋? >spring璇誨彇xml閰嶇疆婧愪唬鐮佸垎鏋?/a>錛堣繖綃囨枃绔犱竴瀹氳鍏堢湅鎳傦紝涓嶇劧鍚庨潰寰堥毦緇х畫錛夈傜湅榪囨垜浠嬬粛澶у鐪嬬殑閭g瘒鏂囩珷涔嬪悗錛屽叾瀹炰篃鏈夋墍浜?jiǎn)瑙pring鎵╁睍xml schema鏈哄埗浜?jiǎn)銆傚鏋滆繕涓嶆槸寰堟竻妤氬啀緇撳悎榪欑瘒鏂囩珷錛?a title="鍩轟簬Spring鍙墿灞昐chema鎻愪緵鑷畾涔夐厤緗敮鎸?" >鍩轟簬Spring鍙墿灞昐chema鎻愪緵鑷畾涔夐厤緗敮鎸?/a>銆傛劅瑙夋湁鐐逛笢鎷艱タ鍑戠殑錛屽懙鍛碉紝涓昏鎬曚互鍚庤嚜宸卞繕璁頒簡(jiǎn)錛屾墍浠ユ墠鍐欑瘒blog銆?br />
絎簩涓枒鎯戞垜浠氨鐪嬫簮浠g爜鍚с?br />
<filter-mapping>
<filter-name>jcaptchaFilter</filter-name>
<url-pattern>/j_spring_security_check</url-pattern>
</filter-mapping>
<filter>
<filter-name>springSecurityFilterChain</filter-name>
<filter-class>com.busyCity.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
<filter-name>springSecurityFilterChain</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>FORWARD</dispatcher>
<dispatcher>REQUEST</dispatcher>
</filter-mapping>
web.xml涓厤緗簡(jiǎn)DelegatingFilterProxy錛?/span>DelegatingFilterProxy璋冪敤FilterChainProxy鐨刣oFilter
public void doFilter(ServletRequest request, ServletResponse response)throws IOException, ServletException
{
if(currentPosition == additionalFilters.size())
{
if(FilterChainProxy.logger.isDebugEnabled())
FilterChainProxy.logger.debug((new StringBuilder()).append(fi.getRequestUrl()).append(" reached end of additional filter chain; proceeding with original chain").toString());
fi.getChain().doFilter(request, response);
} else
{
currentPosition++;
Filter nextFilter = (Filter)additionalFilters.get(currentPosition - 1);
if(FilterChainProxy.logger.isDebugEnabled())
FilterChainProxy.logger.debug((new StringBuilder()).append(fi.getRequestUrl()).append(" at position ").append(currentPosition).append(" of ").append(additionalFilters.size()).append(" in additional filter chain; firing Filter: '").append(nextFilter).append("'").toString());
nextFilter.doFilter(request, response, this);
}
}
榪欎釜鏂規(guī)硶灝辨槸寰幆璋冪敤鎴戜滑鐢╤ttp鍛藉悕絀洪棿閰嶇疆鐨勯偅浜涜繃婊ゅ櫒銆傜劧鍚庢牴鎹笉鍚岀殑榪囨護(hù)鍣ㄥ鐞嗕笉鍚岀殑鍐呭銆?br />
鎴戞弿榪扮殑閮藉緢綆鍗曪紝涓昏鍘熷洜鏄仛涓褰曪紝浠ュ悗蹇樿浜?jiǎn)鍙互鏍规嵁杩欎釜鎬濊礬閲嶆柊鎵懼埌絳旀銆備笉闇瑕侀噸鏂板紑濮嬬爺絀躲傚懙鍛點(diǎn)?br />

]]>