Skip to content
On this page

介绍

什么是Authz

Authz (Authorization 授权) 是一套权限安全框架,同时支持设备管理。它简化了配置,有简洁的sdk,内部实现了一套双层同步缓存,在性能上表现出色。支持微服务、支持RBAC的权限验证、支持API权限API参数权限数据权限字段权限、方法权限等权限管理。有用户设备的登录 & 退出 & 封禁 & 登录数量限制 & 查看在线人数等,ip限制,网段限制 & RateLimit 等功能。与此同时支持动态权限,且自带Dashboard(可以在Dashboard里动态的修改API、参数权限等权限和一些设备、黑名单操作)。

VersionGitHub StarsLicense

简图

简图

快速开始

Maven

xml
<dependency>
  <groupId>cn.omisheep</groupId>
  <artifactId>authz-spring-boot-starter</artifactId>
  <version>LATEST</version> 
</dependency>

基础配置

单机版本

yaml
authz:
  token:
    key: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'

启用了redis(微服务)

yaml
spring:
  redis:
    host: localhost
    port: 6389
    password: authz
    
authz:
  token:
    key: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'
  cache:
    enable-redis: true

登录

在需要登录的地方调用方法:

java
public boolean login(String username, String password) {
  // 自定义认证方式
  if ("authz".equals(username) && "authz".equals(password)){
    AuHelper.login(1); // 用户id为1,此id全局唯一
    return true;
  } else {
    return false;
  }
}

登录验证

java
// 在需要验证登录的方法上加上 @AuthRequireLogin
@AuthRequireLogin //注意只在web环境有效,也就是每次请求之后调用此方法
public String checkLogin() {
  System.out.println("ok"); // 某请求调用此方法,若此次请求未登录,那么将不会打印 ok 且会返回错误json
}

以上只是最简单的使用方法,需要判断登录的地方很多,所以也支持注解直接标记Controller或者Spring的Component

java
// 支持注解直接标记Controller或者Spring的Component
@Service
@AuthRequireLogin
public class Service  {
  public String ok() {
  	System.out.println("ok"); // 某请求调用此方法,若此次请求未登录,那么将不会打印 ok 且会返回错误json
	}
}

补充

当然大多情况只需要登录判断,但是某些系统也需要权限判断,所以会和@Roles或者@Auth等权限注解一起使用(后续会介绍)。而不是单纯的使用@AuthRequireLogin。所以下面将会逐一详细的介绍这些功能和使用方法。

qq群: 115222346