Complete shiro code

I'm sorry to talk about it here. I wrote an article before: springboot integrates shiro, and mybatis-plus implements user roles and permission control. (Complete demo) I forgot to stick the controller class. Hey, very mistaken. Here is a supplement.

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!";
    }
}

very sorry!!!

Guess you like

Origin blog.csdn.net/dayonglove2018/article/details/107041372