shiro

shiro 无状态应用报DisabledSessionException?

萝らか妹 提交于 2021-01-14 12:57:39
无状态的web应用在执行到getSubject(request, response).login(statelessToken)时,报以下异常: [org.apache.shiro.subject.support.DisabledSessionException: Session creation has been disabled for the current subject. 部分相关代码如下: 已经禁止创建session: public class StatelessWebSubjectFactory extends DefaultWebSubjectFactory { public Subject createSubject(SubjectContext context) { // 不创建 session,如果之后调用 Subject.getSession()将抛出 DisabledSessionException 异常 context.setSessionCreationEnabled(false); return super.createSubject(context); } } 在程序执行到以下代码时,出现异常: StatelessToken statelessToken = new StatelessToken(user.getEmployeeNo());

如何实现登录、URL和页面按钮的访问控制

我是研究僧i 提交于 2021-01-13 20:00:57
点击上方“ Java知音 ”,选择“置顶公众号” 技术文章第一时间送达! 作者: 社会主义接班人 cnblogs.com/5ishare/p/10461073.html 推 荐 阅 读 1. Java 性能优化:教你提高代码运行的效率 2. 基于token的多平台身份认证架构设计 3. Spring Boot整合JWT实现用户认证(附源码) 4. Springboot启动原理解析 用户权限管理一般是对用户页面、按钮的访问权限管理。Shiro框架是一个强大且易用的Java安全框架,执行身份验证、授权、密码和会话管理,对于Shiro的介绍这里就不多说。本篇博客主要是了解Shiro的基础使用方法,在权限管理系统中集成Shiro实现登录、url和页面按钮的访问控制。 一、引入依赖 使用SpringBoot集成Shiro时,在pom.xml中可以引入shiro-spring-boot-web-starter。由于使用的是thymeleaf框架,thymeleaf与Shiro结合需要 引入thymeleaf-extras-shiro。 <!-- https://mvnrepository.com/artifact/org.apache.shiro/shiro-spring-boot-web-starter --> < dependency > < groupId > org.apache

springboot整合Shiro

僤鯓⒐⒋嵵緔 提交于 2021-01-13 17:50:20
1.创建一个springboot项目 选中web和thymeleaf 1.1新建index.html <!DOCTYPE html > < html lang = "en" xmlns:th = "http://www.thymeleaf.org" > < head > < meta charset = "UTF-8" > < title > Title </ title > </ head > < body > < h1 > 首页 </ h1 > < p th:text = "${msg}" > </ p > </ body > </ html > 1.2创建一个controller package com.yao.controller; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind. annotation .RequestMapping; @Controller public class MyController { @RequestMapping({ "/" , "/index" }) public String toIndex(Model model){ model

基于springboot2的开源OA办公系统

心已入冬 提交于 2021-01-06 01:10:42
Active4j-oa是基于 active4j-jsp 快速开发框架构建而来的OA办公系统。基于springboot2.0,以Spring Framework为核心容器,Spring MVC为模型视图控制器,Mybatis Plus为数据访问层, Apache Shiro为权限授权层, Redis为分布式缓存,Quartz为分布式集群调度,JSP作为前端页面引擎,采用JSTL标签库封装组件的开源框架。 项目介绍 Active4j-oa是基于 active4j-jsp 快速开发框架构建而来的OA办公系统。基于springboot2.0,以Spring Framework为核心容器,Spring MVC为模型视图控制器,Mybatis Plus为数据访问层, Apache Shiro为权限授权层, Redis为分布式缓存,Quartz为分布式集群调度,JSP作为前端页面引擎,采用JSTL标签库封装组件的开源框架。 Active4j-oa目前内置了绝大部分常见办公系统功能,包括系统管理,工作流管理,个人办公,人力资源管理,执行力管理等几大模块。开发者只需根据具体业务需求,稍加改进,就可以开发出一套完整的OA办公系统。 技术文档 讨论加群:qq群①:203802692 qq群②:773872959 演示地址: http://www.active4j.com:9005/oa 官方网站:

这 5 个能挣钱的 SpringBoot 项目,真 TMD 香!

血红的双手。 提交于 2021-01-04 15:21:42
点击上方“ 逆锋起笔 ”, 公众号回复 pdf 领取大佬们推荐的学习资料 不得不佩服 Spring Boot 的生态如此强大,今天我给大家推荐几款 Gitee 上优秀的后台开源版本的管理系统, 小伙伴们再也不用从头到尾撸一个项目了,简直就是接私活,挣钱的利器啊 。 SmartAdmin 我们开源一套漂亮的代码和一套整洁的代码规范,让大家在这浮躁的代码世界里感受到一股把代码写好的清流!同时又让开发者节省大量的时间,减少加班,快乐工作,热爱生活。SmartAdmin 让你从认识到忘不了,绝对是你最想要的! 项目地址: https://gitee.com/lab1024/smart-admin litemall 又一个小商场系统,Spring Boot后端 + Vue管理员前端 + 微信小程序用户前端 + Vue用户移动端。 项目地址: https://gitee.com/linlinjava/litemall Timo TIMO后台管理系统,基于SpringBoot2.0 + Spring Data Jpa + Thymeleaf + Shiro 开发的后台管理系统,采用分模块的方式便于开发和维护,支持前后台模块分别部署,目前支持的功能有:权限管理、部门管理、字典管理、日志记录、文件上传、代码生成等,为快速开发后台系统而生的脚手架!关注公众号 逆锋起笔,回复 pdf

love-system SSM爱心捐赠管理系统

泄露秘密 提交于 2021-01-03 10:45:40
love-system SSM爱心捐赠管理系统 本系统为个人当初所写,现免费上传供下载,整体使用了SSM架构,Shiro来控制权限。后期如果有时间,打算使用Spring Boot和Vue重构,毕竟前后端分离已经是大势所趋。 源码地址: https://gitee.com/southwind0/love-system 1.技术选型 - IDEA - JDK8 - MySQL - Shiro - Spring - Spring MVC - MyBatis - Bootstrap - jQuery 2.使用教程 1. 将resource目录下的数据库.txt中SQL语句导入Mysql数据库 2. 将源码导入IDEA,直接配置Tomcat启动即可 3.图片展示 1.系统采用shiro进行权限管理,目前有2个用户,chenyue为admin用户,test为普通用户 2.其他功能展示 来源: oschina 链接: https://my.oschina.net/u/4399511/blog/4874146

Springboot+shiro+mybatis-plus+vue前后端分离项目设计架构

前提是你 提交于 2021-01-02 11:06:14
目录 前言 一、后端项目 1、系统架构设计 2、技术细节 1)、构建模块分层 2)、模块之间引用 3)、mybatis-plus配置和引入 4)、mybatis-plus分页插件 5)、代码生成器,代码里有注释 6)、shiro框架引入 二、前端项目 1、系统架构设计 2、技术细节 前言 根据公司要求,搭建个前后端分离的权限系统,根据目前技术技术水平,采用以下技术栈开发,以此写一份博客记录下构架的系统框架,同时希望能帮助因搭建系统架构不怎么会的小伙伴们,废话不多说,直接列出技术栈: 前端项目: Vue2.x+element全家桶+webpack+node+vue-admin ,开发工具:HBuilderx 后端项目 :Springboot2.x+shiro+mybatis-plus+mysql, 开发工具:IDEA 一、后端项目 1、系统架构设计 采用主流分层多模块开发,如下图所示 2、技术细节 1)、构建模块分层 App(app请求接口全部在这里),Web(web请求接口全部在这里)、Dao(数据层)、Model(抽象数据层)、Service(业务层)、Common(所有通用工具在这里,任何模块接口访问) 2)、模块之间引用 如下图所示: 3)、mybatis-plus配置和引入 Model模块引入maven,然后再web模块resources资源文件下的application

Shiro权限管理框架(三):Shiro中权限过滤器的初始化流程和实现原理

这一生的挚爱 提交于 2020-12-29 17:51:52
本篇是Shiro系列第三篇,Shiro中的过滤器初始化流程和实现原理。Shiro基于URL的权限控制是通过Filter实现的,本篇从我们注入的 ShiroFilterFactoryBean 开始入手,翻看源码追寻Shiro中的过滤器的实现原理。 <!--more--> 初始化流程 ShiroFilterFactoryBean 实现了FactoryBean接口,那么Spring在初始化的时候必然会调用ShiroFilterFactoryBean的getObject()获取实例,而ShiroFilterFactoryBean也在此时做了一系列初始化操作。 关于FactoryBean的介绍和实现方式另外也记了一篇: https://www.guitu18.com/post/2019/04/28/33.html 在getObject()中会调用createInstance(),初始化相关的东西都在这里了,代码贴过来去掉了注释和校验相关的代码。 protected AbstractShiroFilter createInstance() throws Exception { SecurityManager securityManager = getSecurityManager(); FilterChainManager manager = createFilterChainManager(

how to get id of current user in websocket open method?

[亡魂溺海] 提交于 2020-12-29 16:42:49
问题 I am trying to get user id in open method of websocket, and for this I am using shiro, but I get null for Subject,Here is my method: @OnOpen public void open(final Session session, @PathParam("room") final String room) { Subject currentUser = SecurityUtils.getSubject(); long id = currentUser.getPrincipals().oneByType(model.Users.class) .getId(); log.info("session openend and bound to room: " + room); session.getUserProperties().put("user", id); } Does anybody have any idea what I should do?