使用spring security控制权限时界面上无法正常判断权限的问题

在我的界面代码中用以下方式控制某个按钮是否显示,如:

<@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.xml文件中的配置问题,我的基础框架默认只对admin目录下的资源进行过滤,如下:

<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中增加以下配置即可

<filter-mapping>
		<filter-name>springSecurityFilterChain</filter-name>
		<url-pattern>/order/*</url-pattern>
	</filter-mapping>


你可能感兴趣的:(使用spring security控制权限时界面上无法正常判断权限的问题)