• OAuth认证服务


    服务简码 HOTH

    默认端口 8020

    默认路由 /oauth/**

    组件编码 hzero-oauth

    简介

    hzero-oauth 服务是基于 Spring SecuritySpring OAuth2JWT 实现的统一认证服务中心,登录基于 spring security 的标准登录流程,客户端授权支持 oauth2.0 的四种授权模式:授权码模式简化模式密码模式客户端模式,授权流程跟标准的 oauth2 流程一致。web 端采用简化模式(implicit)登录系统,移动端可使用密码模式(password)登录系统 。并支持基于 Spring Social 的三方账号登录方式(如微信)。

    组件坐标

    <dependency>
        <groupId>org.hzero</groupId>
        <artifactId>hzero-oauth</artifactId>
        <version>${hzero.service.version}</version>
    </dependency>
    

    主要功能

    服务配置

    OAuth 服务的参数配置使用场景可具体参考 OAuth 服务下的其它文档。

    hzero:
      send-message:
        # 手机登录发送验证码模板代码
        mobile-login: HOTH.MOBILE_LOGIN
        # 修改密码发送验证码模板代码
        modify-login-password: HOTH.MODIFY_PASSWORD
      oauth:
        # 认证服务器 自定义资源匹配器
        # 可实现 ResourceMatcher 接口,自定义 OAuth ResourceServer 对哪些API认证
        custom-resource-matcher: false
        # 授权码模式验证 client 时不检查 client 的一致性
        not-check-client-equals: false
        # 移动设备ID参数
        device-id-parameter: device_id
        # 登录设备来源参数
        source-type-parameter: source_type
        # 移动端开启图形验证码校验,默认不开启
        enable-app-captcha: false
        # 始终开启图形验证码校验,默认否
        # 设置为 true 时,在进入登录页面时就显示图形验证码
        enable-always-captcha: false
        # client_credentials 模式是否返回 refresh_token,标准模式不返回
        credentials-allow-refresh: false
        # 登录页面标题
        title: HZERO
        # 版权信息
        copyright: ${HZERO_OAUTH_COPYRIGHT:Copyright © The HZERO Author®. All rights reserved.}
        # Logo URL
        logo-url: ${HZERO_OAUTH_LOGO_URL:/oauth/static/main/img/logo.svg}
        # 登录页面默认语言
        default-language: ${HZERO_OAUTH_DEFAULT_LANGUAGE:zh_CN}
        # 是否显示切换语言
        show-language: ${HZERO_OAUTH_SHOW_LANGUAGE:true}
        login:
          #网关是否启用https
          enable-https: ${HZERO_OAUTH_LOGIN_ENABLE_HTTPS:false}
          #开放给外部的oauth网关地址,支持https
          gateway-domain: ${HZERO_OAUTH_LOGIN_GATEWAY_DOMAIN:http://dev.hzero.org:8080/oauth}
          # 允许使用的登录名,默认有 用户名、邮箱、手机号
          support-fields: username,email,phone
          # 手机登录参数
          mobile-parameter: phone
          # 登录页面默认模板,oauth 提供了两套模板
          # 在请求 /oauth/authorize 接口时,可通过 template 参数指定使用的模板
          default-template: main
          # 默认登录成功跳转地址
          # 在直接访问 oauth 的登录地址时,登录成功后会跳转到这个默认地址
          success-url: http://dev.hzero.org/workplace
        logout:
          # 退出时是否清理token
          clear-token: true
        sso:
          # 是否启用二级域名单点登录
          enabled: false
          service: 
            # oauth 服务地址
            baseUrl: http://dev.hzero.org:8080/oauth
          # SAML 协议登录相关配置  
          saml:
            entity_id: hzero:org:sp
            passphrase: secret
            private_key: MIIEvQIBADANBgk......
            certificate: MIIDEzCCA.......
        password:
          # 是否启用 RSA 加密
          enable-encrypt: true
          # 密码传输加密:公钥
          public-key: MFwwDQYJKoZIhvcNAQEBB......
          # 密码传输加密:私钥
          private-key: MIIBVQIBADANBgkqhkiG......
    

    在启动类上加如下注解设置 HttpSession 超时时间

    @EnableRedisHttpSession(maxInactiveIntervalInSeconds = 600)
    

    密码加密配置