多realm以及jdbcRealm配置】的更多相关文章

多realm配置 public class MyRealm1 implements Realm { public String getName() { return "myrealm1"; } public boolean supports(AuthenticationToken token) { return token instanceof UsernamePasswordToken; //仅支持UsernamePasswordToken类型的Token } public Auth…
具体内容 在之前的shiro的认证都是基于配置文件完成的,但是在整个shiro之中,对于用户的认证信息可能各种途径,那么在shiro中要想实现从不同的途径中取得用户的身份认证就需要Realm了. 认识Realm 在shiro里面考虑到以后可能需要面对不同的数据来源,所以为了统一这些来源的处理,准备了一个Realm的接口.先来观察这个org.apache.shiro.realm.Realm接口的定义: public interface Realm { //只是要求返回一个当前使用的Realm名字,…
1.  JdbcRealm 数据库准备 JdbcRealm就是用户的角色,权限都从数据库中读取,也就是用来进行用户认证授权的安全数据源更换为从数据库中读取,其他没有差别,首先在数据库创建三张表: CREATE TABLE `users` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `username` varchar(100) DEFAULT NULL, `password` varchar(100) DEFAULT NULL, `password_sa…
1.多Realm验证 存在这样一种场景,同一个密码可能在MqSQL中存储,也可能在Oracle中存储,有可能MqSQL中使用的是MD5加密算法,而Oracle使用SHA1加密算法.这就需要有多个Realm以及认证策略的问题. 通过查看源码可以看到 ModularRealmAuthenticator.class 中的 doAuthenticate protected AuthenticationInfo doAuthenticate(AuthenticationToken authenticati…
把 realms 配置给SecurityManager 在认证的时候单个realm是这样配置的: <bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager"> <property name="cacheManager" ref="cacheManager"/> <!-- Single r…
Apache Shiro 是 Java 的一个安全(权限)框架.它可以非常容易的开发出足够安全的应用,其不仅可以用在 JavaSE 环境,也可以用在 JavaEE 环境 . Shiro 可以完成:认证.授权.加密.会话管理.与Web 集成.缓存 等.下载:http://shiro.apache.org/  或  https://github.com/apache/shiro 功能介绍 Shiro目标:Shiro开发团队所称的“应用程序安全”的四个基石——身份验证.授权.会话管理和密码 Authe…
概述 认证和记住我 建议 身份验证相关 实现 如果要自己做RememeberMe,需要在登录之前创建Token:UsernamePasswordToken(用户名,密码,是否记住我),且调用 UsernamePasswordToken 的 : token.setRememeberMe(true); @RequestMapping("/login") public String login(@RequestParam("userName") String userNa…
什么是ACL和RBAC ACL Access Control list:访问控制列表 优点:简单易用,开发便捷 缺点:用户和权限直接挂钩,导致在授予时的复杂性,比较分散,不便于管理 例子:常见的文件系统权限设计,直接给用户加权限 RBAC Role Based Access Control:基于角色的访问控制 权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限 优点:简化了用户与权限的管理,通过对用户进行分类,使得角色与权限关联起来 缺点:开发比ACL相对复杂 例子:基于RBAC模…
快速入门 本文档介绍了如何借助一个“数据库”来配置 Tomcat ,从而实现容器管理安全性.所要连接的这种数据库含有用户名.密码以及用户角色.你只需知道的是,如果使用的 Web 应用含有一个或多个 <security-constraint> 元素,<login-config> 元素定义了用户验证的必需细节信息.如果你不打算使用这些功能,则可以忽略这篇文档. 关于容器管理安全性的基础知识,可参考 Servlet Specification (Version 2.4) 中的第 12 节…
注:这里只介绍Spring配置模式. 因为官方例子虽然中有更加简洁的ini配置形式,但是使用ini配置无法与spring整合.而且两种配置方法一样,只是格式不一样. 涉及的jar包 核心包shiro-core 1.2.0 Web相关包shiro-web 1.2.0 缓存包shiro-ehcache 1.2.0 与spring整合包shiro-spring 1.2.0 Ehcache缓存核心包ehcache-core 2.5.3 Shiro自身日志包slf4j-jdk14 1.6.4 使用mave…
本篇来源于官方文档,但不仅仅是翻译,其中不乏网上搜索的资料与自己的理解. 如有错误,请予指正. 什么是Realm 首先说一下什么是Realm,可以把它理解成“域”,也可以理解成“组”,因为它类似 类Unix系统 中组的概念. Realm域提供了一种用户密码与web应用的映射关系. 因为tomcat中可以同时部署多个应用,因此并不是每个管理者都有权限去访问或者使用这些应用,因此出现了用户的概念.但是想想,如果每个应用都去配置具有权限的用户,那是一件很麻烦的事情,因此出现了role这样一个概念.具有…
在上一篇介绍SecurityManager的初始化过程中,也有realm的粗略介绍. realm的概念在安全领域随处可见: 各种中间件的realm.spring security的realm.shiro的realm...如下: tomcat的realm: http://tomcat.apache.org/tomcat-7.0-doc/realm-howto.html weblogic的realm:http://edocs.weblogicfans.net/wls/docs92/secintro/…
shiro(1) 注:这里只介绍spring配置模式. 因为官方例子虽然中有更加简洁的ini配置形式,但是使用ini配置无法与spring整合.而且两种配置方法一样,只是格式不一样. 涉及的jar包 Jar包名称 版本 核心包shiro-core 1.2.0 Web相关包shiro-web 1.2.0 缓存包shiro-ehcache 1.2.0 与spring整合包shiro-spring 1.2.0 Ehcache缓存核心包ehcache-core 2.5.3 Shiro自身日志包slf4j…
Realm:域,Shiro从从Realm获取安全数据(如用户.角色.权限),就是说SecurityManager要验证用户身份,那么它需要从Realm获取相应的用户进行比较以确定用户身份是否合法:也需要从Realm得到用户相应的角色/权限进行验证用户是否能进行操作:可以把Realm看成DataSource,即安全数据源.如我们之前的ini配置方式将使用org.apache.shiro.realm.text.IniRealm. org.apache.shiro.realm.Realm接口如下: S…
引用: [1]开涛的<跟我学shiro> [2]<SpringMVC整合Shiro> [3]<shiro简单配置> [4]Apache shiro集群实现 (一) shiro入门介绍 shiro.ini文件默认在_/WEB-INF/_ 或_classpath_下.shiro会自动查找 #'#'为注释 [main] #↓修改默认跳转页 #↓shiro 认证失败后默认redirect到/login.jsp.这里修改默认项 authc.loginUrl = /login #↓…
Authentication(身份认证)是Shiro权限控制的第一步,用来告诉系统你就是你. 在提交认证的时候,我们需要给系统提交两个信息: Principals:是一个表示用户的唯一属性,可以是用户名,邮箱之类的. Credentials:是证明用户身份的证书,可以是密码或者指纹之类的. 认证主要分为三步: 1.收集认证信息 2.提交认证信息 3.如果认证成功,则允许访问,否则就拒绝访问或者重试. 收集认证信息: 在入门的例子中,使用了一个UsernamePasswordToken来收集用户的…
这里采用第三方实现好的JdbcRealm连接数据库:首先来看一下源码: 接着前面的说:就把这个类当做我们自己写的就好了,我们需要实例化它,然后给他注入一个数据源 下面是ini文件配置 [main] #采用第三方JdbcRealm连接数据库 jdbcRealm=org.apache.shiro.realm.jdbc.JdbcRealm #实例化数据源 dataSource=com.alibaba.druid.pool.DruidDataSource #设置参数 dataSource.driverC…
4.1 根对象SecurityManager 从之前的Shiro架构图可以看出,Shiro是从根对象SecurityManager进行身份验证和授权的:也就是所有操作都是自它开始的,这个对象是线程安全且真个应用只需要一个即可,因此Shiro提供了SecurityUtils让我们绑定它为全局的,方便后续操作. 因为Shiro的类都是POJO的,因此都很容易放到任何IoC容器管理.但是和一般的IoC容器的区别在于,Shiro从根对象securityManager开始导航:Shiro支持的依赖注入:p…
抄袭的连接:https://blog.csdn.net/clj198606061111/article/details/24185023 注:这里只介绍spring配置模式. 因为官方例子虽然中有更加简洁的ini配置形式,但是使用ini配置无法与spring整合.而且两种配置方法一样,只是格式不一样. 涉及的jar包 Jar包名称 版本 核心包shiro-core 1.2.0 Web相关包shiro-web 1.2.0 缓存包shiro-ehcache 1.2.0 与spring整合包shiro…
4.1 根对象SecurityManager 从之前的Shiro架构图可以看出,Shiro是从根对象SecurityManager进行身份验证和授权的:也就是所有操作都是自它开始的,这个对象是线程安全且真个应用只需要一个即可,因此Shiro提供了SecurityUtils让我们绑定它为全局的,方便后续操作. 因为Shiro的类都是POJO的,因此都很容易放到任何IoC容器管理.但是和一般的IoC容器的区别在于,Shiro从根对象securityManager开始导航:Shiro支持的依赖注入:p…
INI配置 从之前的Shiro架构图可以看出,Shiro是从根对象SecurityManager进行身份验证和授权的:也就是所有操作都是自它开始的,这个对象是线程安全且真个应用只需要一个即可,因此Shiro提供了SecurityUtils让我们绑定它为全局的,方便后续操作.因为Shiro的类都是POJO的,因此都很容易放到任何IoC容器管理.但是和一般的IoC容器的区别在于,Shiro从根对象securityManager开始导航:Shiro支持的依赖注入:public空参构造器对象的创建.se…
导读 Tomcat对于J2EE或Java web开发者而言绝不陌生,但说到Realm,可能有些人不太清楚甚至没有听说过,那么到底什么是Realm?简单一句话就是:Realm是Tomcat中为web应用程序提供访问认证和角色管理的机制.配置了Realm,你就不需要在程序中写web应用登陆验证代码,不需要费力的管理用户角色,甚至不需要你自己写登陆界面.因此,使用Realm可以减轻开发者不少编程和管理负担.下面从几个方面简单介绍Tomcat Realm,为Realm学习者提供一个入门级教程. 目录 1…
上面一章说到shiro的认证和授权最底层就是调用realm的getAuthorizationInfo(获取用户的角色和资源)和getAuthenticationInfo(校验账号密码是否正确)两个方法. 如果我们要从数据库中查询用户和他的权限信息,我们可以使用shiro提供给我们的JdbcRealm JdbcRealm 添加jar <dependency> <groupId>mysql</groupId> <artifactId>mysql-connecto…
[单Realm] 1) jar包 2) 实现自定义Realm public class RealmOne implements Realm{ /** * 获取基本类名 */ @Override public String getName() { // TODO Auto-generated method stub System.out.println("className:" + this.getClass().getName()); return this.getClass().ge…
之前章节我们已经接触过一些INI配置规则了,如果大家使用过如Spring之类的IoC/DI容器的话,Shiro提供的INI配置也是非常类似的,即可以理解为是一个IoC/DI容器,但是区别在于它从一个根对象securityManager开始. 4.1 根对象SecurityManager 从之前的Shiro架构图可以看出,Shiro是从根对象SecurityManager进行身份验证和授权的:也就是所有操作都是自它开始的,这个对象是线程安全且真个应用只需要一个即可,因此Shiro提供了Securi…
身份认证流程 流程如下: 1.首先调用Subject.login(token)进行登录,其会自动委托给Security Manager,调用之前必须通过SecurityUtils. setSecurityManager()设置: 2.SecurityManager负责真正的身份验证逻辑:它会委托给Authenticator进行身份验证: 3.Authenticator才是真正的身份验证者,Shiro API中核心的身份认证入口点,此处可以自定义插入自己的实现: 4.Authenticator可能…
注:这里只介绍spring配置模式. 因为官方例子虽然中有更加简洁的ini配置形式,但是使用ini配置无法与spring整合.而且两种配置方法一样,只是格式不一样. 涉及的jar包 Jar包名称 版本 核心包shiro-core 1.2.0 Web相关包shiro-web 1.2.0 缓存包shiro-ehcache 1.2.0 与spring整合包shiro-spring 1.2.0 Ehcache缓存核心包ehcache-core 2.5.3 Shiro自身日志包slf4j-jdk14 1.…
转发地址:https://www.iteye.com/blog/jinnianshilongnian-2020820 第四章 INI配置——<跟我学Shiro> 博客分类: 跟我学Shiro 跟我学Shiro  目录贴:跟我学Shiro目录贴 之前章节我们已经接触过一些INI配置规则了,如果大家使用过如Spring之类的IoC/DI容器的话,Shiro提供的INI配置也是非常类似的,即可以理解为是一个IoC/DI容器,但是区别在于它从一个根对象securityManager开始. 4.1 根对…
引入 上一篇在讲解Realm简介时,介绍过Realm包含大概4类缺省的Realm,本章主要讲解: 1)IniRealm的用法: 2)JdbcRealm基于mysql   默认表及查询语句实现认证.授权: 3)JdbcRealm基于mysql自定义表及查询语句实现认证.授权. 4)自定义Realm. 在上一张讲解时,截图了一张Realm的类图,这里需要重复引用下: 从图中,我们可以看出AuthenticatingRealm是AuthorizingRealm的父类: 1)Authenticating…
在单Realm的基础上,进行如下内容的修改 原有的ShiroRealm.java: package com.atguigu.shiro.realms; import org.apache.shiro.authc.AuthenticationException; import org.apache.shiro.authc.AuthenticationInfo; import org.apache.shiro.authc.AuthenticationToken; import org.apache.…