# shiro_and_google_auth **Repository Path**: OldCorpseChen/shiro_and_google_auth ## Basic Information - **Project Name**: shiro_and_google_auth - **Description**: 使用springboot为主体框架,整合shiro、redis、GoogleAuthenticator动态认证方法(二步认证),实现关键页面进行二次动态认证,普通页面正常登陆验证逻辑 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 0 - **Created**: 2020-06-04 - **Last Updated**: 2021-09-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # shiro_and_google_auth #### 介绍 使用springboot为主体框架,整合shiro、redis、GoogleAuthenticator动态认证方法(二步认证),实现关键页面进行二次动态认证,普通页面正常登陆验证逻辑 #### 软件架构 软件架构说明 主体框架:springboot 安全框架:shiro 数据库:redis 移动端配合:google Authenticator APP #### 实现原理 使用 shiro 中 realm 的授权逻辑,每次访问需要权限的资源时都会走一次授权认证的 doGetAuthorizationInfo 方法,若通过则能访问到资源,若不通过则会到达默认或自定义的未授权页面,通过一个 mapping 来接收该请求,通过本 demo 中的 judgeAuth 方法查询该用户的权限,是管理员权限则可进入二步认证页面,若不是则会跳转到未授权页面,从而保证了普通用户和管理员一般功能的正常登录使用,也可拦截无权限的用户访问到二步认证页面。 ![](C:\Users\ChenZhiJun\OneDrive\桌面\shiro_goolgeAuth逻辑.png) #### 使用说明 1. redis数据库配置在 application.properties 中进行修改 2. shiroConfig 中修改需要二步认证的权限名称及页面,并在 controller 中stepAuthAction 方法替换成需要的权限名称 3. 因为懒,所以将service层省略了,逻辑很简单,因而不封装了 #### 反馈 有啥意见请轻喷,非职业程序员,仅兴趣爱好