权限框架

1. 简介

用户认证、授权类库旨在提供一套标准的、统一的 用户管理,权限管理,菜单管理,用户登陆(jwt token)的机制,减轻单业务系统由单独系统集成到复杂大系统中所要进行的用户权限管理的迁移工作。

2. 如何集成

2.1. 面向服务项目

  • web-api层引用
        <dependency>
            <groupId>com.jpxx.auth</groupId>
            <artifactId>auth-client</artifactId>
        </dependency>
  • ${ProjectName}ResouceConfig 继承AuthJerseyResourceConfig
  • Application @Import(AuthConfiguration.class) 通过以上步骤,即可轻松继承认证授权库。

在web-api层的类(方法)即可使用@Authorization(permission = {"permission:value"})的方式限制只有该权限的用户才能访问。

初始化项目生成,默认集成Auth库。

2.2. JSP web项目

针对jsp web 项目,可以使用shiro权限管理,具体实现调用auth service api即可。

引用依赖

        <dependency>
                <groupId>com.jpxx.auth</groupId>
                <artifactId>auth-service-api</artifactId>
        </dependency>
        <dependency>
                <groupId>com.jpxx.auth</groupId>
                <artifactId>auth-service</artifactId>
                <scope>runtime</scope>
        </dependency>

具体调用发放,请参考实现细节介绍。

2.3. 单点登录项目

针对用户认证授权统一管理的系统,认证授权服务需要单独部署启动。

业务序列图:

2.3.1. 统一登录认证

业务系统进入后判断没有用户token,则跳转至统一登录界面,登录成功后,重定向到原界面,并携带用户Token参数信息(类似于oath2),后期调用每次携带token信息到头部即可。

2.3.2. 统一授权

Java项目

各项目直接依赖Auth Client SSO类库。

  1. 前后端分离项目,使用注解@Authrization在类或者接口上,自动鉴权。
  2. 其他项目,使用service api提供接口进行鉴权。

(实现细节:用户token、权限、过期等使用redis统一管理)

         <dependency>
            <groupId>com.jpxx.auth</groupId>
            <artifactId>auth-client-sso</artifactId>
        </dependency>

.Net项目

引用AuthClient.dll文件,调用内部方法进行鉴权。(待完善)

其他项目

根据协议自行封装实现逻辑。(redis的读取和更新)

2.4. 特别注意

为避免冲突,其他系统Domain/Dao命名上应避开 User Role Menu

3. 实现细节

3.1. 菜单(权限、资源)

菜单、目录、按钮以及其所具备的权限标识列表。针对Restful概念,是资源列表管理,可在角色中配置该角色拥有该资源的权限。

3.2. 基本用户信息

用户登录用户名、密码、系统标识、身份分类(管理员/用户)、是否可用。

各业务系统自行维护用户的业务属性字段,创建用户首先调用该系统创建返回用户ID给业务系统,业务系统UserID保持一致。

3.3. 角色

配置角色所拥有的所有菜单(权限、资源)。

3.4. 用户-角色

多对多的用户角色关系。

源码地址:http://sources.jpsycn.com/dev-plat/java-server/auth.git

版权归河南金鹏信息技术股份有限公司所有,仅用于技术交流,禁止用于商业目的 all right reserved,powered by Gitbook该文件修订时间: 2020-03-21 17:16:58

results matching ""

    No results matching ""