• Shiro之授权&注解


    目录

    一、shiro之授权角色、权限

    二、shiro之注解式开发


    一、shiro之授权角色、权限

     分析如图:

    步骤:

    1,mapper层,service层

     usermapper.xml

    1. <select id="selectRoleIdByUserName" resultType="java.lang.String" parameterType="java.lang.String" >
    2. select
    3. <include refid="Base_Column_List" />
    4. select roleid from t_shiro_user u,t_shiro_user_role ur
    5. where u.userid=ur.userid and u.username = #{userName}
    6. </select>
    7. <!---->
    8. <select id="selectPerIdsByUserName" resultType="java.lang.String" parameterType="java.lang.String" >
    9. select
    10. <include refid="Base_Column_List" />
    11. select rp.perid from t_shiro_user u,t_shiro_user_role ur ,t_shiro_role_permission rp
    12. where u.userid= ur.userid and ur.roleid=rp.roleid and u.username = #{userName}
    13. </select>

     usermapper.java类

    1. //角色编号查找
    2. Set<String> selectRoleIdByUserName(@Param("userName") String username);
    3. //查看权限
    4. Set<String> selectPerIdsByUserName(@Param("userName") String username);

     实现类

    1. package com.zking.oa.biz;
    2. import com.zking.oa.mapper.UserMapper;
    3. import com.zking.oa.model.User;
    4. import org.springframework.beans.factory.annotation.Autowired;
    5. import org.springframework.stereotype.Service;
    6. import java.util.Set;
    7. /**
    8. * @author 锦鲤
    9. * @site www.lucy.com
    10. * @company xxx公司
    11. * @create  2022-08-25 18:47
    12. * //@ContextConfiguration(locations = "classpath:applicationContext-shiro.xml","classpath:UserMapper.xml")
    13. */
    14. @Service("userbiz")
    15. public class UserBizImpl implements UserBiz {
    16. @Autowired
    17. private UserMapper usermapper;
    18. @Override
    19. public int deleteByPrimaryKey(Integer userid) {
    20. return usermapper.deleteByPrimaryKey(userid);
    21. }
    22. @Override
    23. public int insert(User record) {
    24. return usermapper.insert(record);
    25. }
    26. @Override
    27. public int insertSelective(User record) {
    28. return usermapper.insertSelective(record);
    29. }
    30. @Override
    31. public User selectByPrimaryKey(Integer userid) {
    32. return usermapper.selectByPrimaryKey(userid);
    33. }
    34. @Override
    35. public int updateByPrimaryKeySelective(User record) {
    36. return usermapper.updateByPrimaryKeySelective(record);
    37. }
    38. @Override
    39. public int updateByPrimaryKey(User record) {
    40. return usermapper.updateByPrimaryKey(record);
    41. }
    42. @Override
    43. public User queryUserByUserName(String userName) {
    44. return usermapper.queryUserByUserName(userName);
    45. }
    46. @Override
    47. public Set<String> selectRoleIdByUserName(String username) {
    48. return usermapper.selectRoleIdByUserName(username);
    49. }
    50. @Override
    51. public Set<String> selectPerIdsByUserName(String username) {
    52. return usermapper.selectPerIdsByUserName(username);
    53. }
    54. }

    2,shiro的授权方法

    1. package com.zking.oa.controller;
    2. import org.apache.shiro.SecurityUtils;
    3. import org.apache.shiro.authc.UsernamePasswordToken;
    4. import org.apache.shiro.subject.Subject;
    5. import org.springframework.stereotype.Controller;
    6. import org.springframework.web.bind.annotation.RequestMapping;
    7. import javax.servlet.http.HttpServletRequest;
    8. /**
    9. * @author 锦鲤
    10. * @site www.lucy.com
    11. * @company xxx公司
    12. * @create  2022-08-19 21:46
  • 相关阅读:
    【数据可视化】第二章——基于matplotlib的数据可视化
    JSP页面实现验证码校验
    解决自动驾驶落地难点,全自动驾驶才是未来
    第十八章 类和对象——多态
    2022.5.15-参加北京青少年程序设计展示活动海淀区赛(失误了,三等奖)
    计算机毕业设计之java+javaweb的人体健康信息管理系统
    Linux系列之压缩命令
    电力网络通信公司有哪些,电力网络通信公司排名
    2023最新版WiFi大师专业版小程序带流量主独立版【源码 + 搭建教程】
    Python递归的几个经典案例
  • 原文地址:https://blog.csdn.net/qq_66924116/article/details/126548877