标签:
shiro-uaa 是一个基于 Shiro 实现的轻量级用户账号和身份认证解决方案 (UAA) 服务。
来源
当刚开始一个项目时,相信Shiro的简便会成为大多数开发者权限框架的首选,但当项目扩展后,从1到n,并且需要统一认证和授权时,Shiro本身并不支持统一认证和授权成为了限制,Shiro有CasFilter,但是CAS又是另外一套框架,较为重,为了能使认证授权服务更简单,轻量,易用,所以有了Shiro-UAA
为什么用 shiro-uaa
轻量 UAA Server
纯粹的 Shiro
学习简单
容易扩展
开箱即用
认证授权流程
说明
1、auth-server
maven
<dependency> <groupId>com.github.xfslove</groupId> <artifactId>shiro-uaa-resource-server</artifactId> <version>1.0.7-SNAPSHOT</version></dependency>
内置endpoint
URI地址说明/uaa-auth/authentication请求授权的地址,会定向到你的登录页/uaa-auth/authentication/apporveAuth Server同意授权,分发code地址/uaa-auth/access-token从Auth Server获取access-token的地址/uaa-auth/logout从Auth Server登出的地址可扩展api
接口名说明AccessClientService接入应用服务AccessTokenServiceaccess-token服务AccountService用户服务AuthCodeServicecode服务RoleService角色服务login
自定义Login页面和登录验证,implement org.apache.shiro.authc.credential.CredentialsMatcher ,实现登录时的校验逻辑,配置shiro.loginUrl
forwardError
默认情况下,当Server出现OAuthProblem的时候,会带着错误信息跳转到Resource的地址(redirect_uri参数),如果配置了forwardErrorUrl则不会重定向而显示错误页面,页面需要自定义,配置shiro.uaa.server.forwardErrorUrl, 此配置的目的是防止使用Server做非正常跳转
扩展的配置参数
参数名说明shiro.uaa.server.codeExpiresUAA分发Code过期时间,单位为秒shiro.uaa.server.accessTokenExpiresUAA分发AccessToken过期时间,单位为秒shiro.uaa.server.refreshTokenExpiresUAA分发RefreshToken过期时间,单位为秒shiro.loginUrl自定义的登录地址shiro.uaa.server.clients[].name接入应用名称,使用默认内存AccessClientService时有效shiro.uaa.server.clients[].clientId接入应用clientId,使用默认内存AccessClientService时有效shiro.uaa.server.clients[].clientSecret接入应用clientSecret,使用默认内存AccessClientService时有效shiro.uaa.server.roles[].name角色名称,对应Shiro的Role,使用默认内存RoleService时有效shiro.uaa.server.roles[].permCodes[]角色权限,对应Shiro的Permission,使用默认内存RoleService时有效shiro.uaa.server.roles[].clientId角色所属应用,使用默认内存RoleService时有效shiro.uaa.server.accounts[].username账号登录名,使用默认内存AccountService时有效shiro.uaa.server.accounts[].password账号密码,使用默认内存AccountService时有效shiro.uaa.server.accounts[].roles[]账号拥有角色,使用默认内存AccountService时有效shiro.uaa.server.forwardErrorUrl自定义OAuthProblem Error地址
2、resource-server
maven
<dependency> <groupId>com.github.xfslove</groupId> <artifactId>shiro-uaa-resource-server</artifactId> <version>1.0.7-SNAPSHOT</version></dependency>
filterChainDefinition
implement CustomFilterChainDefinition ,定义不同的path经过不同的Filter,默认/**经过resourceServerFilter
logout
先从Resource Server登出,再从UAA登出,配置shiro.logoutUrl参数加载LogoutEndpoint
注解
和Shiro一样
注解名@RequiresRoles@RequiresPermissions@RequiresUser@RequiresAuthentication@RequiresGuest扩展的配置参数
参数名说明shiro.uaa.resource.serverSchemeUAA地址的Schemeshiro.uaa.resource.serverHostUAA地址的Hostshiro.uaa.resource.serverPortUAA地址的Portshiro.uaa.resource.serverContextPathUAA地址的ContextPathshiro.uaa.resource.clientIdUAA分配的ClientIdshiro.uaa.resource.clientSecretUAA分配的ClientSecretshiro.logoutUrlResource Server登出地址
3、biz-logger
记录用户的业务记录
<dependency> <groupId>com.github.xfslove</groupId> <artifactId>shiro-uaa-biz-logger</artifactId> <version>1.0.7-SNAPSHOT</version></dependency>
注解
注解名@BizLogger注解方法说明remark备注,默认:""class_是否记录类名,默认:truemethod是否记录方法名,默认:truearguments需要记录参数的索引,默认:{}return_是否记录返回值,默认:falsesubject是否记录用户名,默认:true
BizLoggerEntityStringifier
implement BizLoggerEntityStringifier ,自定义logger输出内容
Requires
jdk1.8+ and spring boot
TODO
提供auth-server可部署服务
为auth-server提供用户metrics
加载全部内容
MaxKey单点登录认证系统 官方版20.59MB108人下载 MaxKey(马克思的钥匙)用户单点登录认证系统(Sigle Sign On System),寓意是最大钥匙,是业界领先的企业级IAM身份管理和身份认证产品,支持OAuth 2.0/OpenID Connect、SAML 2.0、JWT、CAS等标准化的开放协议,提供简单、标准、安全和开放的用户身份管理(IDM)、身份认证(AM)、单点登录(SSO)、RBAC权限管理和资源管理等。
下载bishengjdk-8 毕昇JDK8131.38MB107人下载毕昇JDK 8是华为内部OpenJDK定制版Huawei JDK的开源版本,是一个高性能、可用于生产环境的OpenJDK发行版。Huawei JDK运行在华为内部500多个产品上,积累了大量使用场景和java开发者反馈的问题和诉求,解决了业务实际运行中遇到的多个问题,并在ARM架构上进行了性能优化,毕昇JDK运行在大数据等场景下可以获得更好的性能。毕昇JDK 8与Java SE标准兼容,目前仅支持
下载Jpom 监控管理系统 正式版1.55MB106人下载Jpom项目监控软件是一款简而轻的低侵入式在线构建、自动部署、日常运维、项目监控软件。Jpom项目监控软件主要功能及特点:1、创建、修改、删除项目、Jar包管理2、实时查看控制台日志、备份日志、删除日志、导出日志3、cpu、ram 监控、导出堆栈信息、查看项目进程端口、服务器状态监控4、多节点管理、多节点自动分发5、实时监控项目状态异常自动报警6、在线构建项目发布项目一键搞定7、多用户管理,用户项
下载jdchain 区块链框架系统943KB105人下载京东区块链 JD Chain 是一个企业级的区块链框架系统,具有简洁、易用、可扩展和高性能的特点。 核心实现采用 Java 语言,学习门槛低,运维简便,无缝兼容企业应用IT架构。 这是主项目仓库,主要包括了文档和集成打包的结构,以及多个Git子模块仓库framework, core, explore 等。JD Chain 的目标是实现一个面向企业应用场景的通用区块链框架系统,能够作为企业级基础设施
下载Jenkins持续集成引擎 正式版17.87MB105人下载 Jenkins持续集成引擎的前身是Hudson是一个可扩展的持续集成引擎。Jenkins是一款开源CI&CD软件,用于自动化各种任务,包括构建、测试和部署软件。Jenkins支持各种运行方式,可通过系统包、Docker或者通过一个独立的Java程序。
下载SkyWalking应用性能监控系统4.16MB105人下载SkyWalking 是一款开源的应用性能监控系统,包括指标监控,分布式追踪,分布式系统性能诊断。功能:1、服务,服务实例,端点指标分析2、根本原因分析。在运行时分析代码。阅读Apache SkyWalking:使用性能分析来修复分布式跟踪的盲点。3、服务拓扑图分析4、服务,服务实例和端点依赖关系分析5、检测到慢速服务和端点6、性能优化7、分布式跟踪和上下文传播8、数据库访问指标。检测慢速数据库访
下载kkFileView在线预览 最新版286.18MB103人下载 kkFileView在线预览是一款使用spring boot打造的文件文档在线预览项目解决方案,支持doc、docx、ppt、pptx、xls、xlsx、zip、rar、mp4、mp3以及众多类文本如txt、html、xml、java、properties、sql、js、md、json、conf、ini、vue、php、py、bat、gitignore等文件在线预览。项目特性:支持office,p
下载ApacheMaven项目构建工具4.41MB103人下载Apache Maven项目构建工具是一个流行的Java项目构建系统。目前,绝大多数开发人员都把Ant当作Java编程项目的标准构建工具。遗憾的是,Ant的项目管理工具(作为make的替代工具)不能满足绝大多数开发人员的需要。通过检查Ant构建文件,很难发现项目的相关性信息和其它元信息(如开发人员/拥有者、版本或站点主页)。Maven除了以程序构建能力为特色之外,还提供Ant所缺少的高级项目管理工
下载Monibuca流媒体服务器开发框架29KB102人下载Monibuca是一个开源的流媒体服务器开发框架,适用于快速定制化开发流媒体服务器,可以对接CDN厂商,作为回源服务器,也可以自己搭建集群部署环境。丰富的内置插件提供了流媒体服务器的常见功能,例如rtmpserver、http-flv、视频录制、QoS等。除此以外还内置了后台web界面,方便观察服务器运行的状态。也可以自己开发后台管理界面,通过api方式获取服务器的运行信息。Monibuca提供了
下载kkFileView在线预览 官方版184.50MB102人下载 kkFileView在线预览是一款使用spring boot打造的文件文档在线预览项目解决方案,支持doc、docx、ppt、pptx、xls、xlsx、zip、rar、mp4、mp3以及众多类文本如txt、html、xml、java、properties、sql、js、md、json、conf、ini、vue、php、py、bat、gitignore等文件在线预览。
下载