本文只有最基础的 服务器端方法级权限控制
1.导入jar包
<dependency>
<groupId>javax.annotation</groupId>
<artifactId>jsr250-api</artifactId>
<version>1.0</version>
</dependency>
2.在spring-security.xml里配置
<!--开启spring-security注解的配置文件-->
<security:global-method-security jsr250-annotations="enabled"/>
3.在Controller层的方法上注解----
@RequestMapping("/user/save")
//------------------------下面是重点---------------------------------
@PermitAll
//------------------------上面是重点---------------------------------
public String getAllUsers(UserInfo userInfo){
userService.saveUser(userInfo);
return "user-list";
}
@RequestMapping("/user/addRoleToUser/{userId}")
//------------------------下面是重点---------------------------------
@RolesAllowed("ROLE_ADMIN")
//------------------------上面是重点---------------------------------
public String addRoleToUser(@PathVariable String userId, Model model){
UserInfo userInfo = userService.findById(userId);
model.addAttribute("user",userInfo);
List<Role> list = roleService.findWithoutRolesByUserId(userId);
model.addAttribute("roleList",list);
return "user-role-add";
}
各种注解及意义
@RolesAllowed:表示具有定义的角色时才可以访问对应的方法
@PermitAll:允许所有角色进行访问,等于不进行权限控制
@DenyAll:此方法跟@PermitAll正好相反,表示什么角色都不能进行访问