栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

rbac权限模型

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

rbac权限模型

rbac权限模型


1.添加整合mybatis的依赖

        
        
            org.mybatis.spring.boot
            mybatis-spring-boot-starter
            1.3.2
        
        
        
            com.alibaba
            druid-spring-boot-starter
            1.1.9
        
        
            mysql
            mysql-connector-java
        
        
        
            org.projectlombok
            lombok
            1.18.20
            provided
        

2.配置yml文件

spring:
  freemarker:
    settings:
      classic_compatible: true #处理空值
      datetime_format: yyy-MM-dd HH:mm
      number_format: 0.##
    suffix: .ftl
    template-loader-path:
      - classpath:/templates
  datasource:
    name: test
    url: jdbc:mysql://localhost:3306/mayikt_rbac?serverTimezone=UTC&useSSL=true&useUnicode=true&characterEncoding=UTF-8
    username: root
    password: 123456
    # druid 连接池
    type: com.alibaba.druid.pool.DruidDataSource
    driver-class-name: com.mysql.cj.jdbc.Driver

3.创建相应的类与包
permissionEntity

public interface PermissionMapper {
    @Select(" select * from sys_permission ")
    List findAllPermission();
}

userMapper

public interface UserMapper {
    
    @Select(" select * from sys_user where username = #{userName}")
    UserEntity findByUsername(@Param("userName") String userName);

    
    @Select(" select permission.* from sys_user user" + " inner join sys_user_role user_role"
            + " on user.id = user_role.user_id inner join "
            + "sys_role_permission role_permission on user_role.role_id = role_permission.role_id "
            + " inner join sys_permission permission on role_permission.perm_id = permission.id where user.username = #{userName};")
    List findPermissionByUsername(@Param("userName") String userName);
}

4.修改权限规则

    @Override
    protected void configure(HttpSecurity http) throws Exception {
//        //配置认证方式 token,设置httpBasic模式
//        //拦截全部请求进入httpBasic模式
        http.authorizeRequests().antMatchers("
        auth.inMemoryAuthentication().withUser("mubai").password("123456").authorities("/"); //此处的意思是 mubai这个账号可以访问所有的接口
//        auth.inMemoryAuthentication().withUser("mubai_admin").password("123456").authorities("/");
//        auth.inMemoryAuthentication().withUser("mubai_crud").password("123456").authorities("addMember","updateMember","delMember");
//        auth.inMemoryAuthentication().withUser("mubai_show").password("123456").authorities("showMember");
        auth.userDetailsService(memberDetailsService).passwordEncoder(new PasswordEncoder() {
            //对密码进行md5加盐加密
            @Override
            public String encode(CharSequence rawPassword) {
                return MD5Util.encode((String) rawPassword);
            }

            @Override
            public boolean matches(CharSequence rawPassword, String encodePassword) {
//                md5传递密码,传递密码MD5加密==DB中的密码则输入正确
                String rawPass = MD5Util.encode((String) rawPassword);
                boolean result = rawPass.equals(encodePassword);

                return result;
            }
        });
    }

启动登录测试

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/584302.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号