通过SpringSecurity动态的控制菜单的显示和隐藏
概述:
后台管理中,用户都拥有自己的角色,而角色决定了用户所能操作的功能,我们通过SpringSecurity可以动态的管理只有指定的角色才能显示相应的菜单;
实现:
1)、导入SpringSecurit标签库;
<%@taglibprefix="security"uri="http://www.springframework.org/security/tags"%>
2)、使用SpringSecurity标签动态的显示菜单的显示和隐藏;
代码演示:
<!--
标签参数介绍:
access:为SpringSecurity提供认证信息,只有通过SpringEL表达式传入的角色才能显示标签体中的内容
-->
<security:authorizeaccess="hasAnyRole('ROLE_PRODUCT','ROLE_ADMIN')">
<li id="system-setting">
<a href="">
<iclass="fa fa-circle-o"></i>产品管理
</a>
</li>
</security:authorize>
设置后台的权限访问
说明:
我们可以在指定方法或类上添加指定的注解,让其拥有权限访问功能;
步骤:
1)、因为要想使用注解,所以必须开启对指定注解的支持;
方式一:<security:global-method-securityjsr250-annotations="enabled"/>
方式二:<security:global-method-securitypre-post-annotations="enabled"/>
方式三:<security:global-method-securitysecured-annotations="enabled"/>
2)、在指定的方法或类上添加指定注解;
方式一:@RolesAllowed({角色名一,角色名二})
方式二:@PreAuthorize({角色名一,角色名二})
方式三:@Secured({{角色名一,角色名二}})
说明:注解支持与相应的注解是对应的,开启哪个注解支持就使用哪个注解;
3)、为注解设置参数,使其对指定的角色放行;
同2)、为注解传入参数相同;
设置SpringSecurity让其拦截指定的异常类,然后跳转到指定的页面
1)、确定拦截的异常类;
注意是异常类不是异常信息;
2)、创建抛出指定异常后,所跳转的页面;
3)、在配置文件中配置SpringSecurity所提供的指定标签;
<security:access-denied-handleerror-page="跳转的页面"/>