shiro认证

shiro权限认证:

具体的认证流程是这样的:

一般流程:

通过.ini的文件来初始化工厂,.ini的文件的好处是可以创建多个组,而.properties的文件只能创建一组。

系统默认有shiro.ini的文件,但是一般我们是自定义数据源Realm:来存放数据;

该类如下:这里采用了模拟数据库;

package cn.itcast.shiro;

import java.util.HashMap;
import java.util.Map;

import org.apache.shiro.authc.AuthenticationException;
import org.apache.shiro.authc.AuthenticationInfo;
import org.apache.shiro.authc.AuthenticationToken;
import org.apache.shiro.authc.SimpleAuthenticationInfo;
import org.apache.shiro.authz.AuthorizationInfo;
import org.apache.shiro.realm.AuthorizingRealm;
import org.apache.shiro.subject.PrincipalCollection;

public class TestCustomRealm extends AuthorizingRealm{
	  //模拟数据库
	private static HashMap<String,String> userInfo=new HashMap<String,String>();
	static{
		userInfo.put("zhangsan","123456");
		userInfo.put("lisi","1234");
	}
     @Override
	public void setName(String name) {
		// TODO Auto-generated method stub
		super.setName("testCustomRealm");
	}
   //认证功能
		@Override
		protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken token) throws AuthenticationException {
		  String userCode=(String) token.getPrincipal();
		  String pwd=null;
		  for (Map.Entry<String,String> entry:userInfo.entrySet()) {
			  pwd=entry.getValue();
			  break;
		}
		  SimpleAuthenticationInfo simpleAuthenticationInfo = new SimpleAuthenticationInfo(userCode, pwd,this.getName());
			return simpleAuthenticationInfo;
		}

	//授权功能
	@Override
	protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection arg0) {

		return null;
	}

}

  测试的话就是跟之前一样创建工厂,不同的是运用了.ini的文件换了。

时间: 2024-10-05 16:33:35

shiro认证的相关文章

Apache Shiro 使用手册(二)Shiro 认证

认证就是验证用户身份的过程.在认证过程中,用户需要提交实体信息(Principals)和凭据信息(Credentials)以检验用户是否合法.最常见的"实体/凭证"组合便是"用户名/密码"组合. 一.Shiro认证过程 1.收集实体/凭据信息 Java代码   //Example using most common scenario of username/password pair: UsernamePasswordToken token = new Userna

JAVAWEB开发之权限管理(二)——shiro入门详解以及使用方法、shiro认证与shiro授权

shiro介绍 什么是shiro shiro是Apache的一个开源框架,它将软件系统的安全认证相关的功能抽取出来,实现用户身份认证,权限授权.加密.会话管理等功能,组成了一个通用的安全认证框架.它可以实现如下的功能: 1.验证用户 2.对用户执行访问控制,如:判断用户是否具有角色admin,判断用户是否拥有访问的资源权限. 3.在任何环境下使用SessionAPI.例如C/S程序 4.可以使用多个用户数据源.例如一个是Oracle数据库,另外一个是MySQL数据库. 5.单点登录(SSO)功能

权限项目总结(三) shiro 认证

认证是shiro在使用过程中最开始的一个步骤,只有通过了认证才回有下面授权等操作.认证就是shiro获取当前 用户凭据并进行匹配的过程,最朴素的理解就是弄清楚当前用户的到底是谁的过程.这里也是针对在应用层面的总结,因为发现跟到shiro内部东西就很多了,容易迷失自己. 其实shiro认证过程简化的步骤非常简单 1.提交凭据 2.获取验证信息 3.验证凭据和验证信息是否一致 看一下详细的步骤 粗略的跟了一下shiro认证的流程,处理流程如下. 流程中省去了提交表单获取凭据的过程,也省去了在自定义r

【shiro】(4)---Shiro认证、授权案例讲解

Shiro认证.授权案例讲解 一.认证  1. 认证流程     2.用户密码已经加密.加盐的用户认证 (1)测试类 // 用户登陆和退出,这里我自定了一个realm(开发肯定需要自定义realm获取数据库密码和权限) @Test public void testCustomRealmMd5() { // 创建securityManager工厂,通过ini配置文件创建securityManager工厂 Factory<SecurityManager> factory = new IniSecu

shiro认证-SSM

shiro认证-SSM pom <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-core</artifactId> <version>1.3.2</version> </dependency> <dependency> <groupId>org.apache.shiro</groupId>

shiro框架学习-2-springboot整合shiro及Shiro认证授权流程

1. 添加依赖 1 <dependency> 2 <groupId>org.springframework.boot</groupId> 3 <artifactId>spring-boot-starter-web</artifactId> 4 </dependency> 5 <dependency> 6 <groupId>mysql</groupId> 7 <artifactId>mys

源码分析shiro认证授权流程

1. shiro介绍 Apache Shiro是一个强大易用的Java安全框架,提供了认证.授权.加密和会话管理等功能: 认证 - 用户身份识别,常被称为用户“登录”: 授权 - 访问控制: 密码加密 - 保护或隐藏数据防止被偷窥: 会话管理 - 每用户相关的时间敏感的状态. 对于任何一个应用程序,Shiro都可以提供全面的安全管理服务.并且相对于其他安全框架,Shiro要简单的多. 2. shiro源码概况 先要了解shiro的基本框架(见http://www.cnblogs.com/davi

Shiro认证时的密码比对

在前面一节<Shiro在Web环境下集成Spring的大致工作流程>的最后一步中提到由Shiro完整密码比对. 那么具体是怎么工作的? 1,既然shiro会把密码来进行比对,当然会调用 UserNamePasswordkToken 中的 getPassword() 方法了.在该方法中打上断点,往前跟踪一下即可. 2,开启debug模式,跟踪发现 org.apache.shiro.authc.credential.SimpleCredentialsMatcher 类进行密码的比对 3,继续跟踪,

Apache Shiro 认证、授权、加密和会话管理

官方解释 : Apache Shiro(日语"堡垒(Castle)"的意思)是一个强大易用的Java安全框架,提供了认证.授权.加密和会话管理功能,可为任何应用提供安全保障 - 从命令行应用.移动应用到大型网络及企业应用. Shiro为解决下列问题(我喜欢称它们为应用安全的四要素)提供了保护应用的API: 认证 - 用户身份识别,常被称为用户"登录": 授权 - 访问控制: 密码加密 - 保护或隐藏数据防止被偷窥: 会话管理 - 每用户相关的时间敏感的状态. Shi