shiro

shiro之身份认证

荒凉一梦 提交于 2019-12-05 22:10:03
一、用户需要提供principals (身份)和credentials(证明)给shiro,从而应用能验证用户身份。 principals :身份,即主体的标识属性,可以是任何东西,如用户名、邮箱等,唯一即可。一个主体可以有多个principals,但只有一个Primary principals,一般是用户名/密码/手机号。 credentials :证明/凭证,即只有主体知道的安全值,如密码/数字证书等。 最常见的principals和credentials组合就是用户名/密码。 测试代码: /** * @Project: testshiro * @Title: TestShiro.java * @Package com.yuan.shiro.test * @author yuan * @date 2016年7月4日 下午1:28:28 * @Copyright: 2016 * @version V1.0 */ package com.yuan.shiro.test; import org.apache.shiro.SecurityUtils; import org.apache.shiro.authc.AuthenticationException; import org.apache.shiro.authc.UsernamePasswordToken; import org

Shiro 之 入口:EnvironmentLoaderListener

浪子不回头ぞ 提交于 2019-12-05 22:09:47
自从那次与 Shiro 邂逅,我就深深地爱上了她,很想走进她的内心世界,看看她为何如此迷人? 我们打算将 Shiro 放在 Web 应用中使用,只需在 web.xml 中做如下配置: <?xml version="1.0" encoding="UTF-8"?> <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"> <listener> <listener-class>org.apache.shiro.web.env.EnvironmentLoaderListener</listener-class> </listener> <filter> <filter-name>ShiroFilter</filter-name> <filter-class>org.apache.shiro.web.servlet.ShiroFilter</filter-class> </filter> <filter

shiro权限管理2--------认证

跟風遠走 提交于 2019-12-05 19:56:35
shiro认证关键点索引 1.Subject-门面 门面进行登录,登录时会组建token,这里的密码其实是明文上送来的 2.SecurityManager-核心 门面登录后,核心处理器会调用认证器的方法,认证期会调用realm的认证方法。 调用realm认证后,比较器会对token和info的账号和密码进行比对 3. Realm-安全数据源 realm认证的方法会根据 authenticationToken.getPrincipal()来获取账号 realm认证的方法会根据 会用盐对密码进行MD5加密,并覆盖token realm认证的方法会根据 账号查询返回Info【凭证】+【密码】+【realm名字】 来源: CSDN 作者: lidongliangzhicai 链接: https://blog.csdn.net/lidongliangzhicai/article/details/90606725

dispatch-servlet.xml与applicationContext.xml

北城以北 提交于 2019-12-05 18:20:49
spring的配置文件:applicationContext.xml定义的是“root webapp context”,直译过来就是根应用上下文。(一般配置bean、数据库连接、事务、shiro、开启任务task配置等等) springmvc的配置文件:dispatcher-servlet.xml定义一个servlet的应用上下文,是applicationContext.xml上下文的子类。(一般配置视图解析器、扫描指定的包中的类上的注解、添加静态资源访问的支持等等) 在初始化时,applicationContext.xml首先初始化,而dispatcher-servlet.xml在对应的servlet实例化时启动,因此applicationContext.xml初始化在前,而dispatcher-servlet.xml初始化在后。 dispatcher-servlet.xml中的bean可以引用父类applicationContext.xml上下文中的bean,反之不可以 来源: oschina 链接: https://my.oschina.net/u/2351011/blog/2873188

shiro学习

孤人 提交于 2019-12-05 17:31:53
一、Shiro 与 spring security 的区别 Shiro是apache的一款开源项目,与Spring 中的security功能类似,但是Shiro更加简单,并且更加方便配置,security功能比较强大,在 大多数项目中使用shiro即可。 二、Shiro的介绍 Shiro首先具有四大功能,认证、权限认证、加密、session会话管理。 其次三大组件 subject(当前主体)、security manager (安全管理组件) 、reaml (Dao,具体做认证、授权等功能)。 三、架构 subject是指java\php等去调用security manager 中具有Authenticator和authorizer的对象,然后去调用具体的realms进行处理,realms是去调用具体的数据源去获得数据等进行进一步的处理。 subject是比如是一个facade,而securityManager才是执行者,securityManager会调用authenticator 然后会在中间执行shiroFilter,或者找到对应的realm进行执行,返回AuthenticationINfo 然后authenticator对这个info对象进行密码对比。 SecurityUtils是一个大管家,我们必须绑定securityManager

SpringBoot整合shiro

让人想犯罪 __ 提交于 2019-12-05 16:33:58
在 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 整合

Shiro--md5加密

橙三吉。 提交于 2019-12-05 13:59:34
运用shiro内置工具简单加密解密 package com.kexin.common.util; import org.apache.shiro.crypto.hash.Md5Hash; /** * @Description:md5加密方法 * @Author: @Date: 2019/10/30 16:10 * @Param: * @Return: */ public class CryptographyUtil { /** * Md5加密 * @param str * @param salt * @return */ public static String md5(String str,String salt){ return new Md5Hash(str,salt).toString(); } public static String md5NotSalt(String str){ return new Md5Hash(str).toString(); } public static void main(String[] args) { String password="123"; System.out.println("Md5方法"+CryptographyUtil.md5(password, "123")); System.out.println("Md5方法"

Could not autowire field: can't to com.sun.proxy.$Proxy22

╄→гoц情女王★ 提交于 2019-12-05 12:14:09
Caused by: org.springframework.beans.factory.BeanCreationException: Could not autowire field: protected com.cms.service.FolderService com.cms.action.BaseAction.folderService; nested exception is java.lang.IllegalArgumentException: Can not set com.cms.service.FolderService field com.cms.action.BaseAction.folderService to com.sun.proxy.$Proxy22 at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:518) at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata

shiro集成Spring

微笑、不失礼 提交于 2019-12-05 10:55:55
shiro集成Spring 需要有Spring的环境 ssj/项目 3.1 导包 因为spring集成类shrio框架,所以导shiro和spring的集成包,如果要测试还是导上测试包,我这没导测试包 <!-- shiro(权限框架)的支持包 --> <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-all</artifactId> <version>1.4.0</version> <type>pom</type> </dependency> <!-- shiro与Spring的集成包 --> <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-spring</artifactId> <version>1.4.0</version> </dependency> 3.2 web.xml 中配置代理过滤器 <!-- shiro的过滤器(帮我们拦截请求)-》什么事情都不做 Delegating:授(权); 把(工作、权力等)委托(给下级); 选派(某人做某事) Proxy:代理 -> 需要通过名称(shiroFilter)去找真正的过滤器 --> <filter> <filter-name>shiroFilter<

上手spring boot项目(二)之spring boot整合shiro安全框架

佐手、 提交于 2019-12-05 10:54:52
题记 :在学习了springboot和thymeleaf之后,想完成一个项目练练手,于是使用springboot+mybatis和thymeleaf完成一个博客系统,在完成的过程中出现的一些问题,将这些问题记录下来,作为自己的学习心得。在这先感谢群主TyCoding的Tumo项目,虽然本人实在太菜了,好些地方看不懂,但还是使我受益匪浅。 shiro作为一个小巧灵活的安全框架,在认证和授权方面简约但又不简单,十分容易上手使用。下面是整合shiro的具体流程。 1.添加依赖 1 <!--shiro和spring整合--> 2 <dependency> 3 <groupId>org.apache.shiro</groupId> 4 <artifactId>shiro-spring</artifactId> 5 <version>1.3.2</version> 6 </dependency> 7 <!--shiro核心包--> 8 <dependency> 9 <groupId>org.apache.shiro</groupId> 10 <artifactId>shiro-core</artifactId> 11 <version>1.3.2</version> 12 </dependency> 2.在springboot控制台中添加基础包的扫描和实体类的扫描注解 由于本人实在粗心