使用spring security控制權限時界面上沒法正常判斷權限的問題

在個人界面代碼中用如下方式控制某個按鈕是否顯示,如:java

<@sec.authorize ifAnyGranted="ROLE_ADMIN">
						<input type="button" id="deleteButton" class="formButton" url="order!delete.action" value="刪除" disabled hidefocus />
					</@sec.authorize>

目的是讓只有ROLE_ADMIN權限的用戶才能看到刪除按鈕,但結果不管是擁有ROLE_ADMIN權限的仍是沒有ROLE_ADMIN權限的都看不到刪除按鈕了。web

最後發現是web.xml文件中的配置問題,個人基礎框架默認只對admin目錄下的資源進行過濾,以下:spring

<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>/admin/*</url-pattern>
	</filter-mapping>

但個人頁面其實是在order目錄下的,因此頁面沒有通過權限過濾器的控制,天然是獲取不到用戶的角色信息了。只要在web.xml中增長如下配置便可app

<filter-mapping>
		<filter-name>springSecurityFilterChain</filter-name>
		<url-pattern>/order/*</url-pattern>
	</filter-mapping>
相關文章
相關標籤/搜索