# celesea **Repository Path**: jack.yuan/celesea ## Basic Information - **Project Name**: celesea - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2017-11-05 - **Last Updated**: 2021-11-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 系统架构图 ![image](/docs/img/p1.jpg) 系统基础框架为Spring Boot的微服务架构,整合Mongo,Mysql,Redis等。 sso方案,使用JWT结合Spring security做单点登录和登录状态管理。 整个系统整合Swagger作为API管理,测试工具。 ## 项目结构 celesea |-- framework 系统基础包 |-- mybatis mybatis整合包 |-- sso 统一登录认证中心 |-- auth 权限域 |-- workflow 工作流域 ### 1.SSO 当用户访问子应用服务时,在子应用Filter中JWTFilter会检查用户Token。 ##### 1.1 如果没有合法的Token就重定向到SSO登录中心。 要求用户输入合法的鉴权信息,鉴权通过后,加载用户的授权信息,从user表加载用户信息,然后根据用户跟角色的关联加载用户的角色信息,根据 然后再根据角色跟资源的关联关系加载用的资源点授权关系 然后根据用户特征生成用户指纹(loginSessionId), 然后讲指纹,有效期等信息统一生成Token凭证。 ##### 1.2 如果有合法的Token,则继续访问 根据Token中的指纹信息,从Redis中获取用户登录信息和相关的权限信息 ### 2. auth 权限域 auth为权限域,基于角色的权限访问控制(Role-Based Access Control).系统域对象包含该,用户(User),角色(Role),资源(Menu), 群组(Group),岗位(Position),部门(Dept)等参与权限控制。 其中部门分为公司和普通部门,其中用户和业务上的数据的分离标准就以公司为标准,其中部门,用户,岗位,角色都是基于公司维度来管理的 用户跟角色为多对多的关联关系,角色跟资源的对应关系为多对多。用户跟岗位对应关系为多对多 系统提供权限接口比如获取群组成员,获取岗位成员,获取部门员工,获取用户角色等,详细查看 http://域名/auth/swagger-ui.html查看 ### 3. workflow等业务域 业务领域集成SSO功能,完成登录鉴权和用户权限信息的获取。业务领域调用权限接口通过com.celesea.workflow.component.AuthService 调用权限域的接口(就是调用restful的接口),其原理为基于RestTemplate实现自定义的JwtRestTemplate,会在请求auth域的时候携带当前 用户的Token,确保调用的合法性