shiro

Shiro vs. SpringSecurity [closed]

爷,独闯天下 提交于 2019-11-26 11:45:09
问题 I have currently evaluating Java based security frameworks, I am a Spring 3.0 user so it seemed that SpringSecurity would be the right Choice, but Spring security seems to suffer from excessive complexity, it certainly does not seem like it is making security easier to implement, Shiro seems to be much more coherent and easier to understand. I am looking for lists of pros and cons between these two frameworks. 回答1: I too agree that Spring Security feels too complicated (to me). Sure, they

shiro PermissionUtil

蓝咒 提交于 2019-11-26 11:05:55
package org.linlinjava.litemall.admin.util; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.linlinjava.litemall.admin.annotation.RequiresPermissionsDesc; public class Permission { private RequiresPermissions requiresPermissions; private RequiresPermissionsDesc requiresPermissionsDesc; private String api; public RequiresPermissions getRequiresPermissions() { return requiresPermissions; } public RequiresPermissionsDesc getRequiresPermissionsDesc() { return requiresPermissionsDesc; } public void setRequiresPermissions(RequiresPermissions requiresPermissions) { this

AdminWebSessionManager AdminAuthorizingRealm

心已入冬 提交于 2019-11-26 11:05:37
package org.linlinjava.litemall.admin.shiro; import com.alibaba.druid.util.StringUtils; import org.apache.shiro.web.servlet.ShiroHttpServletRequest; import org.apache.shiro.web.session.mgt.DefaultWebSessionManager; import org.apache.shiro.web.util.WebUtils; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import java.io.Serializable; public class AdminWebSessionManager extends DefaultWebSessionManager { public static final String LOGIN_TOKEN_KEY = "X-Litemall-Admin-Token"; private static final String REFERENCED_SESSION_ID_SOURCE = "Stateless request"; @Override

SpringBoot整合shiro

谁都会走 提交于 2019-11-26 10:28:17
在 Spring Boot 中做权限管理,一般来说,主流的方案是 Spring Security ,但是,仅仅从技术角度来说,也可以使用 Shiro。 一般来说,Spring Security 和 Shiro 的比较如下: Spring Security 是一个重量级的安全管理框架;Shiro 则是一个轻量级的安全管理框架 Spring Security 概念复杂,配置繁琐;Shiro 概念简单、配置简单 Spring Security 功能强大;Shiro 功能简单 ... 虽然 Shiro 功能简单,但是也能满足大部分的业务场景。所以在传统的 SSM 项目中,一般来说,可以整合 Shiro。 在 Spring Boot 中,由于 Spring Boot 官方提供了大量的非常方便的开箱即用的 Starter ,当然也提供了 Spring Security 的 Starter ,使得在 Spring Boot 中使用 Spring Security 变得更加容易,甚至只需要添加一个依赖就可以保护所有的接口,所以,如果是 Spring Boot 项目,一般选择 Spring Security 。 这只是一个建议的组合,单纯从技术上来说,无论怎么组合,都是没有问题的。 在 Spring Boot 中整合 Shiro ,有两种不同的方案: 第一种就是原封不动的,将 SSM 整合

springmvc+shiro

徘徊边缘 提交于 2019-11-26 06:35:54
shiro.xml配置 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <!--注入自定义的Realm--> <bean id="customRealm" class="com.yeki.core.shiro.CustomRealm"></bean> <!-- CAS认证过滤器 --> <bean id="casFilter" class="org.apache.shiro.cas.CasFilter"> <property name="failureUrl" value="/login"/> </bean> <bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean">

sringboot2+shiro json接口形式未登录时报https中有http请求错误

佐手、 提交于 2019-11-26 03:41:11
最近开发一个小项目采用springboot2+shiro前后端分离的方式进行。由于访问使用https证书形式。结果在上线时遇到登录信息过期后shiro设置的跳转接口时重定向为http。从而https访问http报错。网上找了很多都没有一个很好的解决办法。 一开始想通过redirectHttp10Compatible:解决https环境下使用redirect重定向地址变为http的协议,无法访问服务的问题 设置为false,即关闭了对http1.0协议的兼容支持 ,实际测试不管用。只能从shiro源码进行分析如下: Java代码 publicboolean onPreHandle(ServletRequest request, ServletResponse response, Object mappedValue) throws Exception { return isAccessAllowed(request, response, mappedValue) || onAccessDenied(request, response, mappedValue); } 可以发现他是调用的isAccessAllowed方法和onAccessDenied方法,只要两者有一个可以就可以了,从名字中我们也可以理解,他的逻辑是这样:先调用isAccessAllowed,如果返回的是true

Shiro

北慕城南 提交于 2019-11-26 02:48:10
Shiro 身份验证底层实现 依然靠数据库完成账号验证 Shiro 处理密码验证 Shiro 正常调用流程 Controller 页面请求和页面跳转,Subject.login(token)来调用Shiro验证 AuthorizingRealm 的doGetAuthenticationInfo方法,来处理验证信息 在doGetAuthenticationInfo方法中,获取HttpSession,用于存储相关信息(比如用户的真名),之后在controller获取这个Session private Session getSession(){ try{ Subject subject = SecurityUtils.getSubject(); Session session = subject.getSession(false); if (session == null){ session = subject.getSession(); } if (session != null){ return session; } }catch (InvalidSessionException e){ e.printStackTrace(); } return null; } Shiro 主过滤器 从上至下 /** = user 与 token.setRememberMe(true);

springboot+shiro-redis 使用Redis sentinel(哨兵)主从实现

戏子无情 提交于 2019-11-26 02:41:33
最近公司项目遇到一台服务器崩溃导致项目无法运行,因项目采用单点的 Redis做session共享,权限处理,所以想到采用Redis主从方式这样降低耦合性,为方便以后查阅特记录此处。 服务器系统为centos 7 redis 4.0.6 两台主从Redis服务器: 192.168.0.35 6379 主 192.168.0.34 6379 从 一、Redis安装 cd /opt wget http://download.redis.io/releases/redis-4.0.6.tar.gz 若提示为找到该命令,那么需要安装:yum install wget tar xzf redis-4.0.6.tar.gz cd redis-4.0.6 make src/redis-server 客户端访问: src/redis-cli Redis设置开机自启动: 1.修改配置文件参数daemonize为yes .vi /opt/redis-4.0.6/redis.conf 复制redis配置文件(启动脚本需要用到配置文件内容,所以要复制) #1.在/etc下新建redis文件夹 $ mkdir /etc/redis #2.把安装redis目录里面的redis.conf文件复制/etc/redis/6379.conf面,6379.conf是取的文件名称,启动脚本里面的变量会读取这个名称

Shiro介绍

孤者浪人 提交于 2019-11-26 00:31:11
一、什么是 Shiro ? 官网地址: http://shiro.apache.org/ 二、我们可以用 Shiro 做什么? 三、远看 Shiro 轮廓 (高层概念) 四、近看 Shiro 看细节 (详细架构) 五、 Shiro 授权 ① Shiro 内置过滤器介绍 ② 基于URL配置进行授权 ③ 基于注解进行授权(全部注解就5个) 来源: CSDN 作者: han-y 链接: https://blog.csdn.net/han12398766/article/details/103223035

springboot + shiro之登录人数限制、登录判断重定向、session时间设置

ε祈祈猫儿з 提交于 2019-11-25 21:22:50
springboot + shiro之登录人数控制 项目 前篇: spring boot + mybatis + layui + shiro后台权限管理系统: https://blog.51cto.com/wyait/2082803 本文是基于 spring boot + mybatis + layui + shiro后台权限管理系统 开发的,新增功能: shiro并发登陆人数控制(超出登录用户最大配置数量,清理用户)功能; 解决在父子页面中,判断用户未登录之后,重定向到登录页面嵌套显示问题; 解决ajax请求,判断用户未登录之后,如何重定向到登录页面问题; 解决使用并完成了功能1,导致的session有效时间冲突问题。 后篇: springboot + shiro 动态更新用户信息: https://blog.51cto.com/wyait/2112200 springboot + shiro 权限注解、统一异常处理、请求乱码解决 : https://blog.51cto.com/wyait/2125708 项目源码 项目源码:(包含数据库源码) github源码: https://github.com/wyait/manage.git 码云: https://gitee.com/wyait/manage.git github对应项目源码目录: wyait-manage-1.2