shiro

集合操作异常ConcurrentModificationException处理

邮差的信 提交于 2019-12-06 10:12:00
报错信息java.util.ConcurrentModificationException: null java.util.ConcurrentModificationException: null at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:909) at java.util.ArrayList$Itr.next(ArrayList.java:859) at com.bjbde.admin.system.controller.PcmCheckController.tree(PcmCheckController.java:211) at com.bjbde.admin.system.controller.PcmCheckController$$FastClassBySpringCGLIB$$c2a5577c.invoke(<generated>) at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy

spring boot 使用 shiro+redis管理权限

岁酱吖の 提交于 2019-12-06 06:59:38
spring boot中比较简单的权限管理选择了使用shiro 然后用shiro-redis管理session,如下: 创建个shiroConfing,里面设置ShiroFilterFactoryBean------SecurityManager------myShiroRealm 然后在securityManager中设置缓存和session管理的方式如定义一个sessionManager指定用redis来操作session 然后开启shiro AOP注解支持。 创建自己的realm继承AuthorizingRealm做登陆跟权限的认证过程。 代码如下 @Configuration public class ShiroConfig { @Bean public ShiroFilterFactoryBean shirFile(SecurityManager securityManager) { log.info("ShiroConfiguration.shirFilter()"); ShiroFilterFactoryBean shiroFilterFactoryBean = new ShiroFilterFactoryBean(); shiroFilterFactoryBean.setSecurityManager(securityManager); //拦截器 Map

Apache Shiro EhCache initialization exception: Another unnamed CacheManager already exists in the same VM

时光总嘲笑我的痴心妄想 提交于 2019-12-06 02:38:22
问题 I am trying to get EhCache configured to handle authorization caching in my Apache Shiro enabled web service. Currently I am getting the following exception: org.apache.shiro.cache.CacheException: net.sf.ehcache.CacheException: Another unnamed CacheManager already exists in the same VM. Please provide unique names for each CacheManager in the config or do one of following: 1. Use one of the CacheManager.create() static factory methods to reuse same CacheManager with same name or create one if

Shiro UnknownSessionException after logout

孤街浪徒 提交于 2019-12-06 02:26:18
I'm currently working on a web application in JavaEE6 stack and I've integrated Shiro for security. I think the authentication and authorization is working properly now and I have 1 last problem. When I logout, I'm encountering UnknownSessionException, here are my config and codes for inspection: web.xml <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0"> <!-- Welcome page --> <welcome-file-list> <welcome-file>home.xhtml<

how to get/set the salt for a JdbcRealm

故事扮演 提交于 2019-12-06 01:53:07
I am attempting to use the Shiro JdbcRealm and SHA256 hashedcredentialsMatcher. I need to update a legacy database and assign the appropriate salt for each user (via a batch routine). how do I get/set the salt for a given account using the Shiro framework? Max With Shiro 1.2.3 all you need to do is: Extend JdbcRealm and set salt style. public class JdbcSaltRealm extends JdbcRealm { public JdbcSaltRealm() { setSaltStyle(SaltStyle.COLUMN); } } Update shiro.ini to use extended realm and to get salt column from DB credentialsMatcher = org.apache.shiro.authc.credential.HashedCredentialsMatcher

第九章 JSP标签——《跟我学Shiro》

笑着哭i 提交于 2019-12-05 22:39:22
转发地址: https://www.iteye.com/blog/jinnianshilongnian-2026398 博客分类: 跟我学Shiro 跟我学Shiro 目录贴: 跟我学Shiro目录贴 Shiro提供了JSTL标签用于在JSP/GSP页面进行权限控制,如根据登录用户显示相应的页面按钮。 导入标签库 Java代码 <%@taglib prefix="shiro" uri="http://shiro.apache.org/tags" %> 标签库定义在shiro-web.jar包下的META-INF/shiro.tld中定义。 guest标签 Java代码 <shiro:guest> 欢迎游客访问,<a href="${pageContext.request.contextPath}/login.jsp">登录</a> </shiro:guest> 用户没有身份验证时显示相应信息,即游客访问信息。 user 标签 Java代码 <shiro:user> 欢迎[<shiro:principal/>]登录,<a href="${pageContext.request.contextPath}/logout">退出</a> </shiro:user> 用户已经身份验证/记住我登录后显示相应的信息。 authenticated 标签 Java代码 <shiro

第六章 Realm及相关对象——《跟我学Shiro》

孤街浪徒 提交于 2019-12-05 22:36:15
转发地址: https://www.iteye.com/blog/jinnianshilongnian-2022468 目录贴: 跟我学Shiro目录贴 6.1 Realm 【2.5 Realm】及【3.5 Authorizer】部分都已经详细介绍过Realm了,接下来再来看一下一般真实环境下的Realm如何实现。 1 、定义实体及关系 即用户-角色之间是多对多关系,角色-权限之间是多对多关系;且用户和权限之间通过角色建立关系;在系统中验证时通过权限验证,角色只是权限集合,即所谓的显示角色;其实权限应该对应到资源(如菜单、URL、页面按钮、Java方法等)中,即应该将权限字符串存储到资源实体中,但是目前为了简单化,直接提取一个权限表,【综合示例】部分会使用完整的表结构。 用户实体包括:编号(id)、用户名(username)、密码(password)、盐(salt)、是否锁定(locked);是否锁定用于封禁用户使用,其实最好使用Enum字段存储,可以实现更复杂的用户状态实现。 角色实体包括:、编号(id)、角色标识符(role)、描述(description)、是否可用(available);其中角色标识符用于在程序中进行隐式角色判断的,描述用于以后再前台界面显示的、是否可用表示角色当前是否激活。 权限实体包括:编号(id)、权限标识符(permission)、描述

跟我学Shiro目录贴

旧巷老猫 提交于 2019-12-05 22:31:11
转发地址: https://www.iteye.com/blog/jinnianshilongnian-2018398 扫一扫,关注我的公众号 购买地址 历经三个月左右时间,《跟我学Shiro》系列教程已经完结,暂时没有需要补充的内容,因此生成PDF版供大家下载。最近项目比较紧,没有时间解答一些疑问,暂时无法回复一些问题,很抱歉,不过可以加群(334194438/348194195)一起讨论问题。 点击下载《跟我学Shiro》教程PDF版 。学习交流使用,请勿用于其他任何商业用途。 Shiro目录 第一章 Shiro简介 第二章 身份验证 第三章 授权 第四章 INI配置 第五章 编码/加密 第六章 Realm及相关对象 第七章 与Web集成 第八章 拦截器机制 第九章 JSP标签 第十章 会话管理 第十一章 缓存机制 第十二章 与Spring集成 第十三章 RememberMe 第十四章 SSL 第十五章 单点登录 第十六章 综合实例 第十七章 OAuth2集成 第十八章 并发登录人数控制 第十九章 动态URL权限控制 第二十章 无状态Web应用集成 第二十一章 授予身份及切换身份 第二十二章 集成验证码 第二十三章 多项目集中权限管理及分布式会话 第二十四章 在线会话管理 示例工程是Maven工程,需要了解Maven基础。 示例源代码: https://github.com

Apache Shiro 使用手册(二)

 ̄綄美尐妖づ 提交于 2019-12-05 22:10:30
认证就是验证用户身份的过程。在认证过程中,用户需要提交实体信息(Principals)和凭据信息(Credentials)以检验用户是否合法。最常见的“实体/凭证”组合便是“用户名/密码”组合。 一、Shiro认证过程 1、收集实体/凭据信息 //Example using most common scenario of username/password pair: UsernamePasswordToken token = new UsernamePasswordToken(username, password); //”Remember Me” built-in: token.setRememberMe(true); //Example using most common scenario of username/password pair: UsernamePasswordToken token = new UsernamePasswordToken(username, password); //”Remember Me” built-in: token.setRememberMe(true); UsernamePasswordToken支持最常见的用户名/密码的认证机制。同时,由于它实现了RememberMeAuthenticationToken接口,我们可以通过令牌设置

Apache Shiro 使用手册(五)Shiro 配置说明

99封情书 提交于 2019-12-05 22:10:17
Apache Shiro的配置主要分为四部分: 对象和属性的定义与配置 URL的过滤器配置 静态用户配置 静态角色配置 其中,由于用户、角色一般由后台进行操作的动态数据,因此Shiro配置一般仅包含前两项的配置。 Apache Shiro的大多数组件是基于POJO的,因此我们可以使用POJO兼容的任何配置机制进行配置,例如:Java代码、Sping XML、YAML、JSON、ini文件等等。下面,以Spring XML的配置方式为例,并且对其中的一些配置参数进行一些简单说明。 Shiro对象的配置: 主要是 对Shiro各个组件的实现进行定义配置 ,主要组件在前文已做过简单介绍,这里不再一一说明。 <bean id="securityManager" class="org.apache.shiro.mgt.DefaultSecurityManager"> <property name="cacheManager" ref="cacheManager"/> <property name="sessionMode" value="native"/> <!-- Single realm app. If you have multiple realms, use the 'realms' property instead. --> <property name="realm" ref=