这里说下,非常抱歉.之前写了一篇: springboot整合shiro,mybatis-plus实现用户角色,权限管控.(完整demo)居然忘记粘controller类了.哎,非常失误.这里补齐一下.
package com.example.demo.shiro.controller;
import com.example.demo.shiro.bean.Permissions;
import com.example.demo.shiro.bean.Role;
import com.example.demo.shiro.bean.RolePermissions;
import com.example.demo.shiro.bean.User;
import com.example.demo.shiro.bean.po.PermissionsInfo;
import com.example.demo.shiro.bean.po.RoleInfo;
import com.example.demo.shiro.bean.po.RolePermissionsInfo;
import com.example.demo.shiro.bean.po.UserInfo;
import com.example.demo.shiro.service.PermissionsService;
import com.example.demo.shiro.service.RolePermissionsService;
import com.example.demo.shiro.service.RoleService;
import com.example.demo.shiro.service.UserService;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.apache.shiro.authz.annotation.RequiresRoles;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.*;
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
@Autowired
private RoleService roleService;
@Autowired
private RolePermissionsService rolePermissionsService;
@Autowired
private PermissionsService permissionsService;
@GetMapping("/detail")
@RequiresPermissions("detail")
public User detail(@RequestParam("userId") String userId){
User user = new User();
UserInfo userInfo = userService.getById(userId);
User user1 = userService.getUserByName(userInfo.getUserName());
List<RoleInfo> byUserId = roleService.getByUserId(user1.getId());
Set<Role> roleSet = new HashSet<>();
for (RoleInfo roleInfo : byUserId) {
Role role = new Role();
BeanUtils.copyProperties(roleInfo, role);
List<RolePermissionsInfo> byRoleId = rolePermissionsService.getByRoleId(roleInfo.getId());
Set<Permissions> permissionsSet = new HashSet<>();
for (RolePermissionsInfo rolePermissionInfo : byRoleId) {
PermissionsInfo permissionsInfo = permissionsService.getById(rolePermissionInfo.getPermissionsId());
Permissions permissions = new Permissions();
BeanUtils.copyProperties(permissionsInfo, permissions);
permissionsSet.add(permissions);
}
role.setPermissions(permissionsSet);
roleSet.add(role);
}
user.setRoles(roleSet);
user.setId(userInfo.getId());
user.setPassWord(userInfo.getPassWord());
user.setUserName(userInfo.getUserName());
return user;
}
@GetMapping("/delete")
@RequiresPermissions("delete")
public String delete(){
return "delete OK!";
}
@GetMapping("/add")
@RequiresPermissions("add")
public String add(){
return "add OK!";
}
@GetMapping("/aaa")
@RequiresPermissions("aaa")
public String aaa(){
return "aaa OK!";
}
@GetMapping("/list")
@RequiresPermissions("list")
public String list(){
return "list OK!";
}
@GetMapping("/update")
@RequiresPermissions("update")
public String update(){
return "update OK!";
}
@GetMapping("/gold")
@RequiresRoles("gold")
public String gold(){
return "gold OK!";
}
@GetMapping("/bronze")
@RequiresRoles("bronze")
public String bronze(){
return "bronze OK!";
}
}
非常抱歉!!!