shiro

java.lang.IllegalArgumentException: Result Maps collection does not contain value for java.lang.Integer

别说谁变了你拦得住时间么 提交于 2020-02-02 13:40:33
今天做springmvc+mybatis+spring的项目的时候发现了一个异常。如下: org.apache.ibatis.builder.IncompleteElementException: Could not find result map java.lang.Integer at org.apache.ibatis.builder.MapperBuilderAssistant.setStatementResultMap(MapperBuilderAssistant.java:346) at org.apache.ibatis.builder.MapperBuilderAssistant.addMappedStatement(MapperBuilderAssistant.java:284) at org.apache.ibatis.builder.xml.XMLStatementBuilder.parseStatementNode(XMLStatementBuilder.java:107) at org.apache.ibatis.session.Configuration.buildAllStatements(Configuration.java:698) at org.apache.ibatis.session.Configuration.hasStatement

Shiro注解

点点圈 提交于 2020-02-01 22:21:45
@RequiresRoles和@RequiresPermissions 第一步:引入依赖 < dependency > < groupId > org.aspectj </ groupId > < artifactId > aspectjweaver </ artifactId > </ dependency > 第二步:SpringMVC开启aop,加入授权生效的对象 < aop: config proxy-target-class = " true " /> < bean class = " org.apache.shiro.spring.LifecycleBeanPostProcessor " /> < bean class = " org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor " > < property name = " securityManager " ref = " securityManager " /> </ bean > 第三步:测试 @RequiresRoles ( "admin" ) @RequestMapping ( path = "/test" , method = RequestMethod . GET ) @ResponseBody

微人事第十天:spring security初体验

回眸只為那壹抹淺笑 提交于 2020-02-01 16:06:37
Spring Security 是 Spring 家族中的一个安全管理框架,实际上,在 Spring Boot 出现之前,Spring Security 就已经发展了多年了,但是使用的并不多,安全管理这个领域,一直是 Shiro 的天下。 相对于 Shiro,在 SSM/SSH 中整合 Spring Security 都是比较麻烦的操作,所以,Spring Security 虽然功能比 Shiro 强大,但是使用反而没有 Shiro 多(Shiro 虽然功能没有 Spring Security 多,但是对于大部分项目而言,Shiro 也够用了)。 自从有了 Spring Boot 之后,Spring Boot 对于 Spring Security 提供了 自动化配置方案,可以零配置使用 Spring Security。 因此,一般来说,常见的安全管理技术栈的组合是这样的: SSM + Shiro Spring Boot/Spring Cloud + Spring Security 1.创建工程 添加web和spring security依赖 可以看到pom.xml文件中web和security已经被引入进来。 只要加了spring security依赖,项目中的所有接口都被保护起来了。 2.编写接口并进行测试 package org.javaboy.security; import

Spring boot + Gradle + Eclipse打war包发布总结

可紊 提交于 2020-02-01 09:29:27
首先感谢两位博主的分享 http://lib.csdn.net/article/git/55444?knId=767 https://my.oschina.net/alexnine/blog/540651 buildscript { ext { springBootVersion = '1.5.2.RELEASE' } repositories { maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' } jcenter() } dependencies { classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}") } } group 'com.gzkit' version '1.0.1-SNAPSHOT' apply plugin: 'java' apply plugin: 'eclipse'apply plugin: 'eclipse-wtp' apply plugin: 'org.springframework.boot' apply plugin: 'war' compileJava { options.encoding = 'UTF-8' options.compilerArgs <

快速学习Shiro-Shiro在SpringBoot工程的应用

无人久伴 提交于 2020-02-01 02:56:22
1 Shiro在SpringBoot工程的应用 Apache Shiro是一个功能强大、灵活的,开源的安全框架。它可以干净利落地处理身份验证、授权、企业会话管理和加密。越来越多的企业使用Shiro作为项目的安全框架,保证项目的平稳运行。 在之前的讲解中只是单独的使用shiro,方便对shiro有一个直观且清晰的认知,我们今天就来看一下shiro在springBoot工程中如何使用以及其他特性 1.1 案例说明 使用springBoot构建应用程序,整合shiro框架完成用户认证与授权。 1.1.1 数据库表 1.1.2 基本工程结构 导入资料中准备的基本工程代码,此工程中实现了基本用户角色权限的操作。我们只需要在此工程中添加Shiro相关的操作代码即可 1.2 整合Shiro 1.2.1 spring和shiro的整合依赖 <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-spring</artifactId> <version>1.3.2</version> </dependency> <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-core</artifactId> <version>1.3.2<

Shiro与Springboot整合:配置

旧街凉风 提交于 2020-02-01 00:54:28
package cn.learn.shiro.realm; import cn.learn.shiro.domain.Permission; import cn.learn.shiro.domain.Role; import cn.learn.shiro.domain.User; import cn.learn.shiro.service.UserService; import org.apache.shiro.authc.*; import org.apache.shiro.authz.AuthorizationInfo; import org.apache.shiro.authz.SimpleAuthorizationInfo; import org.apache.shiro.crypto.hash.Md5Hash; import org.apache.shiro.realm.AuthorizingRealm; import org.apache.shiro.subject.PrincipalCollection; import org.springframework.beans.factory.annotation.Autowired; import java.util.HashSet; import java.util.Set; /** * 自定义的realm */

Shiro的一些面试题

不羁的心 提交于 2020-02-01 00:14:49
Shiro框架介绍 是一个轻量级的安全框架,主要提供了 授权、认证、加密、会话管理这几个功能。 shiro安全数据源有哪些: 1.数据库 2.静态ini文件 3.session Shiro运行流程 比如一个登陆流程: 1、首先调用Subject.login(token)进行登录,他会委托给SecurityManager 2、SecurityManager负责真正的身份验证逻辑;它会委托给Authenticator进行身份验证; 3、Authenticator会把相应的token传入Realm,从Realm获取身份验证信息,如果没有就返回认证失败,有的话就继续执行操作。 Shiro 的优点 简单的身份认证, 支持多种数据源 非常简单的加密 API 对角色的简单的授权, 支持细粒度的授权(方法级) 支持一级缓存,以提升应用程序的性能; 内置的基于 POJO 企业会话管理, 适用于 Web 以及非 Web 的环境 不跟任何的框架或者容器捆绑, 可以独立运行 比较 SpringSecurity 和 Shiro 相比 Spring Security, Shiro 在保持强大功能的同时, 使用简单性和灵活性 SpringSecurity: 即使是一个一个简单的请求,最少得经过它的 8 个Filter SpringSecurity 必须在 Spring 的环境下使用 初学 Spring

Springboot整合shiro时静态资源被拦截的问题

狂风中的少年 提交于 2020-01-31 12:09:20
目录结构如下 在自己配置的ShiroConfig中已经放行了 filterChainDefinitionMap.put( "/static/**" , "anon" ) ; login.ftl也引用了静态资源 <link rel= "stylesheet" type= "text/css" href= "/logins/css/normalize.css" /> <link rel= "stylesheet" type= "text/css" href= "/logins/css/demo.css" /> <link rel= "stylesheet" href= "/logins/js/vendor/jgrowl/css/jquery.jgrowl.min.css" > 可是资源依然被拦截了 于是注释掉了 //filterChainDefinitionMap.put( "/**" , "authc" ) ; 静态资源可以访问了, 说明不是shiro的内在问题. 经过一番考虑, 感觉像是静态资源路径的问题, 于是在浏览器控制台看一下source的路径, 发现静态资源的路径前面是没有static的, 因而shiro也不会放行. springboot默认会将static目录中的内容做为classes根目录的内容发布到web服务器, 所以如果想要放行静态资源, 同时又要实现拦截/**请求

Shiro过滤器

人走茶凉 提交于 2020-01-31 05:56:42
Shiro内置过滤器 认证相关过滤器: anon(不需要任何认证直接可以访问),authBasic(也就是httpBasic),authc(需要认证之后才可以访问),user(需要当前存在用户才可以访问),logout(退出) 授权相关的过滤器: perms(后面跟[ ] 里面加参数,表示具备一些权限才可以访问),roles(与前者相似),ssl(要求是安全的协议才可以访问,比如https),port(后面跟[ ] 里面放端口,必须是指定端口的才可以访问) (ps:ssl与port用的比较少) 测试一下以上部分过滤器: @RequestMapping(value = "/testRole",method = RequestMethod.GET) @ResponseBody public String testRole(){ return "test Role success"; } @RequestMapping(value = "/testRole1",method = RequestMethod.GET) @ResponseBody public String testRole1(){ return "test Role success"; }    @RequestMapping(value = "/testPerms",method = RequestMethod.GET)

Shiro【授权过滤器、与ehcache整合、验证码、记住我】

心已入冬 提交于 2020-01-31 04:50:19
前言 本文主要讲解的知识点有以下: Shiro授权过滤器使用 Shiro缓存 与Ehcache整合 Shiro应用->实现验证码功能 记住我功能 一、授权过滤器测试 我们的授权过滤器使用的是permissionsAuthorizationFilter来进行拦截。我们可以在application-shiro中配置filter规则 <!--商品查询需要商品查询权限 --> /items/queryItems.action = perms[item:query] /items/editItems.action = perms[item:edit] 测试流程: 1、 在applicationContext-shiro.xml中配置filter规则 <!--商品查询需要商品查询权限 --> /items/queryItems.action = perms[item:query] 2、 用户在认证通过后,请求/items/queryItems.action 3、被PermissionsAuthorizationFilter拦截, 发现需要“item:query”权限 4、PermissionsAuthorizationFilter 调用realm中的doGetAuthorizationInfo获取数据库中正确的权限 5、PermissionsAuthorizationFilter对item