当前位置:

shiro-uaa轻量级用户账号和身份认证服务 v1.0.7

收藏
举报
shiro-uaa 是一个基于 Shiro 实现的轻量级用户账号和身份认证解决方案 (UAA) 服务。
  • 作者:
    Iven
  • 演示网站:
    暂无
  • 当前版本:
    v1.0.7
  • 日期:
    2022-03-11
  • 相关链接:
    Home Page
  • 所属分类:
    管理和监控 Java
  • 软件评级:
  • 下载人气:
    418
免费下载
求购此源码
源码详情
免费下载
开发环境
联系客服/入群
源码属性
作者 Iven
授权 开源
大小 674.96KB
语言 Java
功能介绍

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地址的Scheme
shiro.uaa.resource.serverHostUAA地址的Host
shiro.uaa.resource.serverPortUAA地址的Port
shiro.uaa.resource.serverContextPathUAA地址的ContextPath
shiro.uaa.resource.clientIdUAA分配的ClientId
shiro.uaa.resource.clientSecretUAA分配的ClientSecret
shiro.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_是否记录类名,默认:true
method是否记录方法名,默认:true
arguments需要记录参数的索引,默认:{}
return_是否记录返回值,默认:false
subject是否记录用户名,默认:true


BizLoggerEntityStringifier

implement BizLoggerEntityStringifier ,自定义logger输出内容


Requires

jdk1.8+ and spring boot


TODO

提供auth-server可部署服务

为auth-server提供用户metrics

付费服务
模板/插件
其他
  • IntelliJ IDEA
    版本:v2020.2.2 大小:696 MB 更新时间:2020-09-17
    立即下载
  • Greenfoot
    版本:v3.6.0 大小:236 MB 更新时间:2020-09-14
    立即下载

联系客服

手机版

扫一扫进入手机版

返回顶部