spring boot 整合 shiro 权限框架

1.配置 pom

<shiro.version>1.4.0</shiro.version>

       <!--shiro start-->    <dependency>      <groupId>org.apache.shiro</groupId>      <artifactId>shiro-core</artifactId>      <version>${shiro.version}</version>    </dependency>    <dependency>      <groupId>org.apache.shiro</groupId>      <artifactId>shiro-web</artifactId>      <version>${shiro.version}</version>    </dependency>    <dependency>      <groupId>org.apache.shiro</groupId>      <artifactId>shiro-ehcache</artifactId>      <version>${shiro.version}</version>    </dependency>    <dependency>      <groupId>org.apache.shiro</groupId>      <artifactId>shiro-spring</artifactId>      <version>${shiro.version}</version>    </dependency><!--shiro end-->

2. MyShiroRealm.java

package org.fh.realm;

import java.util.Collection;import java.util.HashSet;

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.session.Session;import org.apache.shiro.subject.PrincipalCollection;import org.fh.service.system.UsersService;import org.fh.util.Const;import org.fh.util.Jurisdiction;import org.fh.entity.PageData;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.context.annotation.Lazy;

/** * 说明:Shiro身份认证 * 作者:FH * From:www.fhadmin.org */public class MyShiroRealm extends AuthorizingRealm {

    @Autowired    @Lazy    private UsersService usersService;    /**     * 登录认证     */    @Override    protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authenticationToken) throws AuthenticationException {        UsernamePasswordToken token = (UsernamePasswordToken)authenticationToken; //UsernamePasswordToken用于存放提交的登录信息    PageData pd = new PageData();    pd.put("USERNAME", token.getUsername());try {pd = usersService.findByUsername(pd);if (pd != null){    return new SimpleAuthenticationInfo(pd.getString("USERNAME"), pd.getString("PASSWORD"), getName());        }} catch (Exception e) {return null;}return null;    }@Overrideprotected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) {String USERNAME = (String) super.getAvailablePrincipal(principals);SimpleAuthorizationInfo info = new SimpleAuthorizationInfo();Session session = Jurisdiction.getSession();Collection<String> shiroSet= new HashSet<String>();shiroSet = (Collection<String>)session.getAttribute(USERNAME + Const.SHIROSET);if(null != shiroSet){info.addStringPermissions(shiroSet);return info;}else {return null;}}

}
(0)

相关推荐

  • Maven项目管理工具:Maven依赖

    Maven是一款优秀的依赖管理工具,那么什么是依赖呢? 通俗的说,如果一个Maven构建所产生的构件(例如Jar文件)被其他项目引用,那么该构件就是其他项目的依赖. 依赖声明 Maven坐标是依赖的前 ...

  • IDEA创建Maven项目

    先创建一个maven工程,流程如下: Maven使用入门,小案例 前言 前言 一些小问题: 关于maven无法创建servlet可以点击查看:<idea 的maven无法创建servlet> ...

  • dubbo实战之二:与SpringBoot集成

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  • Spring Boot整合Shiro (使用shiro-spring-boot-web-starter)

    Spring Boot 整合 Shiro 安全框架 同时整合 Druid 数据源.MyBatis 框架 整合 Druid 数据源是可选的 整合 MyBatis 框架只是为了登录页面展示数据库的数据 三 ...

  • SpringBoot整合Shiro权限框架实战

    什么是ACL和RBAC ACL Access Control list:访问控制列表 优点:简单易用,开发便捷 缺点:用户和权限直接挂钩,导致在授予时的复杂性,比较分散,不便于管理 例子:常见的文件系 ...

  • spring boot整合Shiro实现单点登录的示例代码

    本篇文章主要介绍了spring boot整合Shiro实现单点登录的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考.一起跟随小编过来看看吧Shiro是什么Shiro是一个Java平台的开 ...

  • Spring Boot (十四): Spring Boot 整合 Shiro-登录认证和权限管理

    ​ 这篇文章我们来学习如何使用 Spring Boot 集成 Apache Shiro .安全应该是互联网公司的一道生命线,几乎任何的公司都会涉及到这方面的需求.在 Java 领域一般有 Spring ...

  • 【干货】Spring Boot 整合 Mybatis

    通过在前面的文章中我们已经了解到如何快速构建一个基于 Spring Boot 架构的 Web 服务以及接口开发: [干货]如何快速构建SpringBoot Web服务 基于 Spring Boot 的 ...

  • Spring Boot整合Quartz持久化到数据库

    获取Sql文件 http://www.quartz-scheduler.org/downloads/ 解压获取的sql文件,并在数据库中执行 代码编写 引入依赖 <dependencies> ...

  • Spring Boot 整合 RabbitMQ

    RabbitMQ 是实现 AMQP(高级消息队列协议)的消息中间件的一种,最初起源于金融系统,用于在分布式系统中存储转发消息,在易用性.扩展性.高可用性等方面表现不俗. RabbitMQ 主要是为了实 ...

  • 一个比 Spring Boot 快 44 倍的 Java 框架

    light-java是内置了undertow http服务器的REST微服务轻量Java框架,它比Spring Boot内嵌Tomcat这样流行的微服务平台要快44倍,与Go语言fast-http性能 ...

  • Spring Boot 极简集成 Shiro

    程序员涨点薪吧 今天1. 前言Apache Shiro是一个功能强大且易于使用的Java安全框架,提供了认证,授权,加密,和会话管理. Shiro有三大核心组件:Subject:即当前用户,在权限管理 ...