SpringBoot整合Shiro和Swagger

本文介绍了如何在SpringBoot项目中整合Shiro进行权限管理,并实现了页面的权限控制。首先,需要引入Shiro的相关依赖,并创建自定义Realm对象,完成授权和认证的实现。接着,配置Shiro的设置,处理必要的死代码和自定义部分。此外,文章还展示了SpringBoot集成Swagger2的过程,包括导入依赖和编写配置类,使开发者能够在Swagger-ui上查看API信息。
摘要由CSDN通过智能技术生成

Shiro是一款十分好用的权限管理框架 可以和SpringBoot整合实现页面的权限控制

首先导入pom依赖

<!-- https://mvnrepository.com/artifact/org.apache.shiro/shiro-spring -->
        <dependency>
            <groupId>org.apache.shiro</groupId>
            <artifactId>shiro-spring</artifactId>
            <version>1.4.0</version>
        </dependency>

然后自定义我们的Realm对象 (配置类中需要这个类) 并且需要在Realm类中实现我们的授权认证(Shiro的核心)

package com.jee.shiro;

import com.jee.entity.User;
import com.jee.mapper.UserMapper;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authc.*;
import org.apache.shiro.authz.AuthorizationInfo;
import org.apache.shiro.authz.SimpleAuthorizationInfo;
import org.apache.shiro.realm.AuthorizingRealm;
import org.apache.shiro.subject.PrincipalCollection;
import org.apache.shiro.subject.Subject;
import org.springframework.beans.factory.annotation.Autowired;


//自定义的 UserRealm
public class UserRealm extends AuthorizingRealm {

    @Autowired
    private UserMapper userMapper;
    //授权(在访问需要权限的页面是  才会进行授权)
    @Override
    protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principalCollection) {
        System.out.println("执行了授权 AuthorizationInfo");

        //授权 登录成功的
        SimpleAuthorizationInfo info = new SimpleAuthorizationInfo();
        //获得当前对象
        Subject subject = SecurityUtils.getSubject();
        //获得认证中添加的当前用户的信息
        User currentUser = (User)subject.getPrincipal();
        //一般是通过这个User 查询数据库中对应的权限 然后给他授权
        //这里模拟一下就行
        System.out.println("id:"+currentUser.getId());
        info.addStringPermission("id:"+currentUser.getId());
        return info;
    }

    //认证
    @Override
    protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authenticationToken) throws AuthenticationException {
    
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值