Class ComboAuthCommandHandler

java.lang.Object
com.sankcrm.erp.auth.application.authz.command.create.ComboAuthCommandHandler
All Implemented Interfaces:
com.sankcrm.erp.bus.CommandHandler<AuthzResult,ComboAuthCommand>

@Component @Transactional(timeout=60, rollbackFor=java.lang.Exception.class) public class ComboAuthCommandHandler extends Object implements com.sankcrm.erp.bus.CommandHandler<AuthzResult,ComboAuthCommand>
处理组合认证
Since:
2.4.0
Author:
zhsxin
create time:
2024-06-06 10:56
  • Constructor Details

    • ComboAuthCommandHandler

      public ComboAuthCommandHandler()
  • Method Details

    • handle

      public AuthzResult handle(ComboAuthCommand command) throws com.sankcrm.erp.common.exception.CoreException
      验证组合认证命令并在所有因子通过后统一完成一次登录。
      Specified by:
      handle in interface com.sankcrm.erp.bus.CommandHandler<AuthzResult,ComboAuthCommand>
      Parameters:
      command - 包含多个认证因子及可选顶层验证码的组合命令
      Returns:
      唯一一次授权完成后的结果
      Throws:
      com.sankcrm.erp.common.exception.CoreException - 任一因子、账号一致性、验证码或最终授权失败时抛出
    • verifyTopLevelCaptcha

      protected void verifyTopLevelCaptcha(App app, AuthzCommand passwordAuth, com.sankcrm.erp.auth.sdk.authz.command.CaptchaAnswer answer) throws com.sankcrm.erp.common.exception.CoreException
      组合认证只在顶层校验一次验证码,内部 verifyOnly 不再次消费答案。
      Throws:
      com.sankcrm.erp.common.exception.CoreException