Skip to content

帐号管理模块致力基于concrete提供多种可复用、可扩展的帐号管理体系

Notifications You must be signed in to change notification settings

coodex2016/concrete-accounts

Repository files navigation

CONCRETE-ACCOUNTS

Concrete-accounts面向concrete提供多种可扩展、开箱即用人员、账户管理模型。

多租户架构

image

organization

模型

大致模型如下:

image

账户管理模块定义了两个角色,SystemManager-系统管理员,负责初始化系统、管理系统非业务设置;OrgManager-组织管理员,组织管理员角色需要赋予职位,从而确定账户可以管理哪些部门。

开箱即用

    <dependency>
        <groupId>org.coodex</groupId>
        <artifactId>concrete-accounts-organization-impl-reference</artifactId>
        <version>0.2.1-SNAPSHOT</version>
    </dependency>

Spring applicationContext配置参见organization-impl-reference/src/test/resources/test.xmlorganization-impl-reference/src/main/resources/spring_hibernate/accounts-organization.xml

  • 默认密码p@55w0rd,通过sha1散列
  • 基于google-authenticator提供二步验证
  • 参考实现中提供了一个基于Profile的系统管理员账户工厂
  • 基于所有抽象模型提供一个最简实现

扩展

目前扩展设计为扩展各数据模型的属性,需要做的是:

  1. 继承POJO模型,扩展相应属性
  • 继承抽象实体或增加实体关系,扩展持久化模型
  • 基于抽象接口定义具体接口,泛型参数使用具体模型,扩展其他业务所需的接口
  • 根据POJO和实体的关系,扩展双向复制器(TwoWayCopier)
  • 基于抽象的实现定义具体实现,泛型参数使用具体模型,实现扩展的接口
  • 定义日志的渲染模式

关于登录的扩展:抽象实现中提供了基于手机号、email、身份证号的登录逻辑,可通过扩展 AbstractLoginServiceImpl的protected PE getAccountEntityBy(String account)实现

默认密码可以通过concrete.properties的defaultPassword重载,也可以通过实现并注册PasswordGenerator扩展

google authenticator

totp.properties

# 容错范围,1-10,按照google authenticator的设计,30秒一个间隔,前后容错各fault.tolerance个间隔
fault.tolerance=10

#核发者
app.issuer.name=coodex.org 
# 服务器名
app.server.name=

About

帐号管理模块致力基于concrete提供多种可复用、可扩展的帐号管理体系

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages