-
Notifications
You must be signed in to change notification settings - Fork 16
八、属性配置列表
ZeroOrInfinity edited this page May 17, 2021
·
78 revisions
属性 | 类型 | 默认值 | 描述 | 可选项 |
---|---|---|---|---|
ums.oneClickLogin.loginProcessingUrl | String | /authentication/one-click |
一键登录请求处理 url, 默认 /authentication/one-click
|
|
ums.oneClickLogin.login.enable | Boolean | false |
一键登录是否开启, 默认 false | true/false |
ums.oneClickLogin.tokenParamName | String | accessToken | token 参数名称, 默认: accessToken | |
ums.oneClickLogin.otherParamNames | List | 其他请求参数名称列表(包括请求头名称), 此参数会传递到 OneClickLoginService.callback(String, Map) 与 UserDetailsRegisterService.registerUser(String, Map) ; 默认为: 空 |
属性 | 类型 | 默认值 | 描述 | 可选项 |
---|---|---|---|---|
ums.autoGetTokenUri | String | /oauth2Token | 第三方登录成功后, 返回获取 token 自动脚本页面. 默认: /oauth2Token
|
|
ums.oauth2CallbackUri | String | /oauth2Callback | 第三方登录成功后, autoGetTokenUrl 获取 token 处理接口 url , 默认: /oauth2Callback
|
|
ums.oauth2TokenParamName | String | tk | 第三方登录成功后, oauth2TokenUri 接收的参数名称, 默认: tk
|
|
ums.tempOauth2TokenPrefix | String | TEMP:OAuth2Token: | 存储 OAuth2Token 的临时缓存前缀: 默认: TEMP:OAuth2Token:
|
|
ums.delimiterOfTokenAndRefreshToken | String | #@# |
token 与 refreshToken 的分隔符: 默认: #@#
|
|
ums.tempOauth2TokenTimeout | Duration | PT30S | 第三方登录成功后, 临时存储在 redis 的 token 值的 TTL , 默认: 30 秒
|
属性 | 类型 | 默认值 | 描述 | 可选项 |
---|---|---|---|---|
ums.jwt.enable | Boolean | true | 是否支持 jwt , 默认: false
|
true/false |
ums.jwt.timeout | Duration | PT1H |
JWT 的有效期, 默认: 1 小时 |
|
ums.jwt.clockSkew | Duration | PT0S | 授权服务器的时钟与资源服务器的时钟可能存在偏差, 设置时钟偏移量以消除不同服务器间的时钟偏差的影响, 默认: 0 秒. |
|
ums.jwt.remainingRefreshInterval | Duration | PT600S | 当 JwtRefreshHandlerPolicy.AUTO_RENEW 时, JWT 剩余的有效期间隔小于此值后自动刷新 JWT ; 当 JwtRefreshHandlerPolicy.REFRESH_TOKEN 时, JWT 剩余的有效期间隔小于此值后通过 refreshToken 才会刷新新的 JWT , 否则直接返回旧的 JWT . 默认: 600 秒. |
|
ums.jwt.alwaysRefresh | Boolean | false | 通过 refreshToken 刷新 jwt 时, 如果 alwaysRefresh = false , oldJwt 剩余有效期没在 ums.jwt.remainingRefreshInterval 的时间内, 原样返回 oldJwt , 如果 ums.jwt.alwaysRefresh = true , 每次通过 refreshToken 刷新 jwt 则总是返回 newJwt . 默认: false
|
true/false |
ums.jwt.refreshHandlerPolicy | JwtRefreshHandlerPolicy | REJECT |
Jwt 刷新处理策略, 默认: REJECT . |
AUTO_RENEW/REFRESH_TOKEN/REJECT |
ums.jwt.jwtByRefreshTokenUri | String | /jwt/refreshToken | 通过 refreshToken 获取 JWT uri , 默认: /jwt/refreshToken , 注意: 当 exposeRefreshTokenUri=true 时才生效 |
|
ums.jwt.exposeRefreshTokenUri | Boolean | false | 是否曝露 jwtByRefreshTokenUri , 默认: false
|
true/false |
JWS 与 JWK 相关 | ||||
ums.jwt.exposeJwkSetUri | Boolean | false | 是否曝露 jwk-set-uri , 默认: false . 如果为 true , 需要实现 JwkEndpointPermissionService 权限服务接口 |
true/false |
ums.jwt.jwsAlgorithms | String | RS256 | Use the given signing algorithm . The value should be one of RS256, RS384, RS512, HS256, HS384, or HS512 . 默认: RS256
|
RS256, RS384, RS512, HS256, HS384, or HS512 |
ums.jwt.macsSecret | String | 用于 JWT 的 HMAC protection 的 secret , 字符长度必须大于等于 32 ; 当设置此属性时, 属性 jwsAlgorithms 必须是 HS256, HS384, HS512 中的一个. 注意: 属性 macsSecret 与 jksKeyPairLocation 同时配置, jksKeyPairLocation 属性优于 macsSecret . |
||
ums.jwt.jksKeyPairLocation | Resource | 用于 JWT 的密钥键值对(KeyPair )的文件位置; 当设置此属性时, 属性 jwsAlgorithms 必须是 RS256, RS384, RS512 中的一个. 注意: 属性 macsSecret 与 jksKeyPairLocation 同时配置, jksKeyPairLocation 属性优于 macsSecret . |
||
ums.jwt.jksAlias | String | 密钥键值对(KeyPair )的别名 |
||
ums.jwt.jksPassword | String | 密钥键值对(KeyPair )的密码 |
||
ClaimSet 相关 | ||||
ums.jwt.principalClaimName | String | sub |
JWT 存储 principal 的 claimName , 默认: sub , 注意: 如果是高版本的 JwtAuthenticationConverter , 高版本没有 principalClaimName 字段, 所以必须是此默认值. |
|
ums.jwt.kid | String | The "kid" (key ID) parameter is used to match a specific key. This is used, for instance, to choose among a set of keys within a JWK Set during key rollover. The structure of the "kid" value is unspecified. When "kid" values are used within a JWK Set, different keys within the JWK Set SHOULD use distinct "kid" values. (One example in which different keys might use the same "kid" value is if they have different "kty" (key type) values but are considered to be equivalent alternatives by the application using them.) The "kid" value is a case-sensitive string. Use of this member is OPTIONAL. When used with JWS or JWE, the "kid" value is used to match a JWS or JWE "kid" Header Parameter value. | ||
ums.jwt.iss | String | 该JWT的签发者, 必须是 URL , 根据是否需要设置 |
||
Bearer token | ||||
ums.jwt.bearer.bearerTokenParameterName | String | access_token |
request parameter name , 默认为: access_token . 不能为 null 值. 注意: 1. 属性 bearerTokenParameterName 只有在 allowFormEncodedBodyParameter 或 allowUriQueryParameter 其中一方为 true 时生效. |
|
ums.jwt.bearer.bearerTokenHeaderName | String | Authorization |
bearer token header name . 默认: Authorization . 不能为 null 值. 注意: 1. 属性 bearerTokenHeaderName 只有在 allowFormEncodedBodyParameter , allowUriQueryParameter 都为 false 时生效. 2. 如果是跨域的场景, 需要设置 ums.client.cors.accessControlExposeHeaders . 3. 当 usm.jwt.refreshHandlerPolicy=AUTO_RENEW 时, 不管此字段是否生效, 刷新的 jwt 直接设置到此 header 中, 前端可以从相应的 header 中获取. |
|
ums.jwt.bearer.refreshTokenParameterName | String | refresh_token |
request parameter name , 默认为: refresh_token . 不能为 null 值. 注意: 1. 属性 refreshTokenParameterName 只有在 allowFormEncodedBodyParameter 或 allowUriQueryParameter 其中一方为 true 时生效. 2. 目前 allowFormEncodedBodyParameter , allowUriQueryParameter 属性还不能配置, 默认都为 false , refreshTokenParameterName 总是失效. |
|
ums.jwt.bearer.refreshTokenHeaderName | String | refresh_token |
bearer token header name . 默认: refresh_token . 不能为 null 值. 注意: 1. 属性 refreshTokenHeaderName 只有在 allowFormEncodedBodyParameter , allowUriQueryParameter 都为 false 时生效. 2. 如果是跨域的场景, 需要设置 ums.client.cors.accessControlExposeHeaders
|
|
ums.jwt.bearer.allowUriQueryParameter | Boolean | false | 是否支持从 uri query parameter 传递参数名称为 bearerTokenParameterName 的 bearer token , 默认: false 注意: 属性 allowFormEncodedBodyParameter , allowUriQueryParameter 只能是其中一个值为 true , 表示使用 bearerTokenParameterName 的值, bearerTokenHeaderName 失效; 两个值为 false 时表示使用 bearerTokenHeaderName 的值, bearerTokenParameterName 失效. |
true/false |
ums.jwt.bearer.allowFormEncodedBodyParameter | Boolean | false | 是否支持从 form encoded body parameter 传递参数名称为 bearerTokenParameterName 的 bearer token 或传递参数名称为refreshTokenParameterName 的 refresh token , 默认: false 注意: 1. 属性 allowFormEncodedBodyParameter , allowUriQueryParameter 只能是其中一个值为 true , 表示使用 bearerTokenParameterName 的值, bearerTokenHeaderName 失效; 2. 两个值为 false 时表示使用 bearerTokenHeaderName 的值, bearerTokenParameterName 失效. 3. 此属性也控制认证成功后 jwt 与 refresh token 返回的方式, false 表示从 header 中返回, true 表示 json 返回. 4. 当启用通过 request 的 form 来传递 JWT 时会带来很多局限性, 前端只能通过 org.springframework.http.HttpMethod.POST 来访问需要权限的 API ; 一般情况下请保持此默认值, 通过请求头传递. |
true/false |
Jwt blacklist |
jti 缓存(用于 refreshToken ), 以及 jwt 黑名单缓存属性(旧 jwt 失效引发的并发访问问题). |
|||
ums.jwt.blacklist.enable | Boolean | true | 是否支持 jwt 黑名单功能, 默认: true . 如果为 false , jwtToken 与 refreshToken 会保存到 redis
|
true/false |
ums.jwt.blacklist.reAuthPrefix | String | JWT:REAUTH: | 是否需要重新登录认证的redis key 前缀, 默认: JWT:REAUTH:
|
|
ums.jwt.blacklist.tokenInfoPrefix | String | JWT:tokenInfo: | 用于存储用户 Token 信息的前缀, 也可以理解为用户信息, 后面回添加 Jwt 的 jti , 默认: JWT:tokenInfo:
|
|
ums.jwt.blacklist.refreshTokenPrefix | String | JWT:refreshToken: |
JWT refresh token 缓存前缀, 默认: JWT:refreshToken:
|
|
ums.jwt.blacklist.refreshTokenTtl | Duration | PT720H |
JWT refresh token ttl (有效期), 默认: 30 天 |
|
ums.jwt.blacklist.blacklistPrefix | String | JWT:BLACKLIST: |
JWT 黑名单缓存前缀, 默认: JWT:BLACKLIST:
|
属性 | 类型 | 默认值 | 描述 | 可选项 |
---|---|---|---|---|
ums.rbac.roleHierarchy | List | 用户角色层级配置,默认为 空. 分隔符为:" > ". 例如: ROLE_ADMIN 拥有 ROLE_USER 权限则表示为: ROLE_ADMIN > ROLE_USER > ROLE_EMPLOYEE 注意:// ROLE_ADMIN 拥有 ROLE_USER 与 ROLE_EMPLOYEE 权限, ROLE_USER 拥有 ROLE_EMPLOYEE 权限. ROLE_ADMIN > ROLE_USER > ROLE_EMPLOYEE // 等价于 ROLE_ADMIN > ROLE_USER ROLE_USER > ROLE_EMPLOYEE
|
||
ums.rbac.accessDenyPage | String | 403 页面, 默认 空 | ||
ums.rbac.accessExp | String | isAuthenticated() | 权限表达式, 当 enableRestfulApi=false 或者有 @EnableGlobalMethodSecurity 注释时生效, 默认为 isAuthenticated() . String accessExp = "isAuthenticated()"; // 配置等效与 httpSecurity.authorizeRequests().anyRequest().access(isAuthenticated());
|
|
ums.rbac.restfulAccessExp | String | hasPermission(request, authentication) | 权限表达式, 当 enableRestfulApi=true 且没有 @EnableGlobalMethodSecurity 注释时生效, 默认为 hasPermission(request, authentication) . hasPermission 表达式 默认实现为 UriAuthoritiesPermissionEvaluator , 想自定义逻辑, 实现 PermissionEvaluator 即可替换. String accessExp = "hasPermission(request, authentication)"; // 配置等效与 httpSecurity.authorizeRequests().anyRequest().access(hasPermission(request, authentication));
|
|
ums.rbac.enableRestfulApi | Boolean | true | 是否支持 restful Api (前后端交互接口的风格; 如: 查询(GET),添加(POST),修改(PUT),删除(DELETE)), 默认: true. 当 enableRestfulApi=false 时 accessExp 权限表达式生效, 当 enableRestfulApi=true 时 restfulAccessExp 权限表达式生效. |
true/false |
属性 | 类型 | 默认值 | 描述 | 可选项 |
---|---|---|---|---|
ums.mdc.enabled | Boolean | true | 是否支持基于 SLF4J MDC 机制日志的链路追踪, 默认: true | true/false |
ums.mdc.type | MdcIdType | UUID | 基于 SLF4J MDC 机制实现日志链路追踪 id 的类型, 默认为 uuid. 当需要自定义 id 时, type = MdcIdType.CUSTOMIZE_ID , 再实现 MdcIdGenerator.getMdcId() 方法, 注入 IOC 容器即可. |
UUID/THREAD_ID/SESSION_ID/CUSTOMIZE_ID |
ums.mdc.includeUrls | List | /** | 需要添加 MDC 日志的链路追踪的 url, 默认: /**, 并在日志文件的 pattern 中添加 %X{MDC_TRACE_ID} | |
ums.mdc.excludeUrls | List | 不需要 MDC 日志的链路追踪的 url, 如: 静态路径 |
属性 | 类型 | 默认值 | 描述 | 可选项 |
---|---|---|---|---|
ums.client.topDomain | String | 一级域名(不包括二级域名) 例如:domain: www.example.com -> topDomain: example.com<br/> domain: www.example.com.cn -> topDomain: example.com.cn<br/> domain: aaa.bbb.example.net -> topDomain: example.net<br/> 测试时用的 IP 或 localhost 直接原样设置就行. 在应用启动时通过 SecurityAutoConfiguration 自动注入 MvcUtil 字段 topDomain 中. 如在设置跨域 cookie 时可以通过 MvcUtil.getTopDomain() 方法获取. |
||
ums.client.loginPage | String | /login(必须自己实现) | 设置登录页 | |
ums.client.loginProcessingUrl | String | /authentication/form | 设置处理登录表单的 uri,不需要用户实现此 uri,由 Spring security 自动实现, | |
ums.client.failureUrl | String | /login(必须自己实现) | 设置认证失败默认跳转页面 | |
ums.client.successUrl | String | /(必须自己实现) | 设置认证成功默认跳转页面 | |
ums.client.alwaysUseDefaultTargetUrl | Boolean | false | 登录后是否总是使用默认的 successUrl 进行跳转, 默认为: false | true/false |
ums.client.ignoringUrls | String[] | 不需要认证的静态资源 urls | ||
ums.client.permitUrls | Set | 不需要认证的 uri(可以带 HttpMethod 后缀; 用:隔开), 例如: /user/** 或 /user/**:post , 默认为 空 Set. 支持通配符 规则具体看 AntPathMatcher.match(pattern, path) Example Usage: Set<String> permitUrls = Set.of("/user/**:post");<br/> //equivalent to :<br/> httpSecurity.authorizeRequests().antMatchers(HttpMethod.POST, "/user/**").permitAll(); // 如果没有带 HttpMethod 后缀: Set<String> permitUrls = Set.of("/user/**");<br/> //equivalent to :<br/> httpSecurity.authorizeRequests().antMatchers("/user/**").permitAll();
|
||
ums.client.openAuthenticationRedirect | Boolean | false | 是否开启登录路由功能, 根据不同的uri跳转到相对应的登录页, 默认为: false, 当为 true 时还需要配置 loginUnAuthenticationRoutingUrl 和 authRedirectSuffixCondition
|
true/false |
ums.client.loginUnAuthenticationRoutingUrl | String | /authentication/require | 当请求需要身份认证时,默认跳转的url, 当 openAuthenticationRedirect = true 时生效. 会根据 authJumpSuffixCondition 条件判断的认证处理类型的 url |
|
ums.client.authRedirectSuffixCondition | List | 设置 uri 相对应的跳转登录页, 例如:``key=/user/: value=/login.html, 用等号隔开key与value, 如: /user/=/login.html, 默认为空. 当 openAuthenticationRedirect = true` 时生效. 支持通配符 规则具体看 `AntPathMatcher.match(pattern, path)` |
||
ums.client.loginProcessType | LoginProcessType | JSON | 设置登录后返回格式, | REDIRECT/JSON |
ums.client.logoutUrl | String | /logout | 设置登出 url | |
ums.client.logoutSuccessUrl | String | /login(必须自己实现) | 设置登出后跳转的 url | |
ums.client.targetUrlParameter | String | redirectTargetUrl | 设置由客户端决定认证成功要跳转的 url 的 request 参数名称 | |
ums.client.usernameParameter | String | username | 设置登录时用户名的 request 参数名称 | |
ums.client.passwordParameter | String | password | 设置登录时用户密码的 request 参数名称 | |
ums.client.useReferer | Boolean | true | 登录后是否利用 Referer 进行跳转 | true/false |
ums.client.sameOrigin | Boolean | false | 允许来自同一来源(如: example.com)的 X-Frame-Options headers 请求 |
true/false |
ums.client.suppressReflectWarning | Boolean | false | 抑制反射警告, 支持 JDK11, 默认: false , 在确认 WARNING: An illegal reflective access operation has occurred 安全后, 可以打开此设置, 可以抑制反射警告. | true/false |
SESSION | ||||
ums.client.session.sessionNumberControl | Boolean | false | 当为 false 时允许单个用户拥有任意数量的 session(不同设备或不同浏览器),默认为 false。 当设置 true 时,同时请设置一下选项:maximumSessions 和 maxSessionsPreventsLogin
|
true/false |
ums.client.session.maximumSessions | Integer | 1 | 当设置为 1 时,maxSessionsPreventsLogin 为 false 时,同个用户登录会自动踢掉上一次的登录状态。 当设置为 1 时,maxSessionsPreventsLogin=true 时,同个用户登录会自动自动拒绝用户再登录。 默认为 1。 如要此选项生效,sessionNumberControl 必须为 true |
|
ums.client.session.maxSessionsPreventsLogin | Boolean | false | 同个用户达到最大 maximumSession 后,当为 true 时自动拒绝用户再登录,当为 false 时自动踢掉上一次的登录状态, 默认为 false。 如要此选项生效,``sessionNumberControl` 必须为 true |
true/false |
ums.client.session.enableSessionUrlRewriting | Boolean | false | If set to true, allows HTTP sessions to be rewritten in the URLs when using HttpServletResponse.encodeRedirectURL(String) or HttpServletResponse.encodeURL(String) , otherwise disallows HTTP sessions to be included in the URL. This prevents leaking information to external domains. |
true/false |
ums.client.session.sessionCreationPolicy | SessionCreationPolicy | ALWAYS | Specifies the various session creation policies for Spring Security. | ALWAYS/NEVER/IF_REQUIRED/STATELESS |
ums.client.session.forwardOrRedirect | Boolean | true | 无效 session 处理请求的方式: true 表示创建新的 session 并转发, false 表示重定向(invalidSessionUrl ). 默认: true , 注意: 必须手动配置属性, InvalidSessionStrategy 依赖此配置加载. |
true/false |
ums.client.session.invalidSessionUrl | String | /session/invalid | session 失效后跳转地址, loginProcessType=redirect 时有效. 注意: forwardOrRedirect 为 false 时有效. |
|
ums.client.session.invalidSessionOfConcurrentUrl | String | /(必须自己实现) | concurrent session 失效后跳转地址, loginProcessType=redirect 时有效. |
|
ums.client.session.sessionCookieName | String | JSESSIONID | session 的 cookie name, 默认为: JSESSIONID, , 需要与 server.servlet.session.cookie.name 同时设置 | |
rememberMe | ||||
ums.client.rememberMe.enable | Boolean | false | RememberMe 是否开启, 默认为 false; | true/false |
ums.client.rememberMe.rememberMeTimeout | Duration | P14D | 设置记住我功能的 session 的缓存时长,默认 14 天. If a duration suffix is not specified, seconds will be used. | |
ums.client.rememberMe.rememberMeCookieName | String | REMEMBER_ME | 设置记住我功能的 CookieName, 自定义 RememberMeServices 时, 此配置失效 | |
ums.client.rememberMe.rememberMeParameter | String | REMEMBER_ME | 设置记住我功能的参数名称, | |
ums.client.rememberMe.useSecureCookie | Boolean | false | Whether the cookie should be flagged as secure or not. Secure cookies can only be sent over an HTTPS connection and thus cannot be accidentally submitted over HTTP where they could be intercepted. By default the cookie will be secure if the request is secure. If you only want to use remember-me over HTTPS (recommended) you should set this property to true | true/false |
csrf | ||||
ums.client.csrf.csrfIsOpen | Boolean | false | csrf 是否开启, 默认为 false; | true/false |
ums.client.csrf.ignoringAntMatcherUrls | Set | 忽略指定请求的 CSRF 防护, 默认为 空 Set | ||
ums.client.csrf.tokenRepositoryType | CsrfTokenRepositoryType | SESSION | csrf tokenRepository 的存储类型, 默认为 session | SESSION/REDIS |
anonymous | ||||
ums.client.anonymous.anonymousIsOpen | Boolean | true | ANONYMOUS 是否开启, 默认为 true | true/false |
ums.client.anonymous.principal | String | ANONYMOUS | 匿名用户名称, 默认为 ANONYMOUS | |
ums.client.anonymous.authorities | List | ROLE_ANONYMOUS | 匿名用户权限 list, 默认为 ROLE_ANONYMOUS | |
跨域 | ||||
ums.client.cors.enable | Boolean | false | 是否支持跨域, 默认为 false
|
true/false |
ums.client.cors.accessControlAllowOrigin | List | 允许跨域访问的域,可以是一个域的列表,也可以是通配符 "*" 。这里要注意Origin规则只对域名有效,并不会对子目录有效。 | ||
ums.client.cors.accessControlAllowCredentials | Boolean | true | 是否允许请求带有验证信息, 当为 true 时, accessControlAllowOrigin 不能为 "*", 默认为 true
|
true/false |
ums.client.cors.accessControlExposeHeaders | List | 进行跨区请求允许曝露的 headers ,请求成功后,ajax 可以在 XMLHttpRequest 中访问这些头的信息; 注意: 不支持 * . |
||
ums.client.cors.accessControlMaxAge | Duration | 缓存此次请求的秒数。在这个时间范围内,所有同类型的请求都将不再发送预检请求而是直接使用此次返回的头作为判断依据,非常有用,大幅优化请求次数 | ||
ums.client.cors.accessControlAllowMethods | List | 允许进行跨区请求的请求方法 | ||
ums.client.cors.accessControlAllowHeaders | List | Set the list of headers that a pre-flight request can list as allowed for use during an actual request. The special value "*" allows actual requests to send any header. A header name is not required to be listed if it is one of: Cache-Control, Content-Language, Expires, Last-Modified, or Pragma. By default this is not set. | ||
ums.client.cors.urlList | List | 允许进行跨区请求的 url, 支持通配符. |
属性 | 类型 | 默认值 | 描述 | 可选项 |
---|---|---|---|---|
ums.sign.signKeyPrefix | String | u:sign: | 用于 redis 签到 key 前缀,默认为: u:sign: | |
ums.sign.totalSignKeyPrefix | String | total:sign: | 用于 redis 总签到 key 前缀,默认为: total:sign: | |
ums.sign.charset | String | UTF-8 | redis key(String) 转 byte[] 转换时所用的 charset | |
ums.sign.lastFewDays | Integer | 7 | 获取最近几天的签到情况, 不能大于 28 天, 默认为 7 天 | |
ums.sign.userExpired | Long | 2678400L | 用户签到 redis key TTL, 默认: 二个月 , 单位: 秒 | |
ums.sign.totalExpired | Long | 5356800L | 用户签到统计 redis key TTL, 默认: 二个月 , 单位: 秒 |
属性 | 类型 | 默认值 | 描述 | 可选项 |
---|---|---|---|---|
ums.mobile.login.loginProcessingUrlMobile | String | /authentication/mobile | 手机验证码登录请求处理url, 默认 /authentication/mobile | |
ums.mobile.login.smsCodeLoginIsOpen | Boolean | false | 手机验证码登录是否开启, 默认 false | true/false |
属性 | 类型 | 默认值 | 描述 | 可选项 |
---|---|---|---|---|
ums.codes.validateCodeUrlPrefix | String | /code | 获取验证码的 url 的前缀, 默认: /code | |
ums.codes.validateCodeCacheType | ValidateCodeCacheType | SESSION | 验证码缓存类型, 默认: SESSION, 可选: REDIS/SESSION | REDIS/SESSION |
ums.codes.refreshValidateCodeJobCron | String | "0 * 4 * * ?" | A cron-like expression. 0 * 4 * * ? 分别对应: second/minute/hour/day of month/month/day of week 默认为: "0 * 4 * * ?", 凌晨四点 |
|
ums.codes.enableRefreshValidateCodeJob | Boolean | false | 是否支持定时刷新 validateCodeJob 定时任务, 考虑到很多应用都有自己的定时任务应用, 默认: false. RefreshValidateCodeCacheJob 接口的实现已注入 IOC 容器, 方便自定义定时任务接口时调用. | true/false |
ums.codes.totalImages | Integer | 100 | 定时刷新 validateCodeJob 任务时, 需要缓存的验证码图片数. 默认: 100; 注意: 这里为了方便开发而设置的值, 生产环境根据情况直接设置 | |
image | ||||
ums.codes.image.width | Integer | 270 | 图片验证码的宽度,默认 270; 宽度如果小于 height * 45 / 10, 则 width = height * 45 / 10 | |
ums.codes.image.height | Integer | 60 | 图片验证码的高度,默认 60 | |
ums.codes.image.length | Integer | 4 | 验证码的验证码长度,默认 4位 | |
ums.codes.image.expire | Integer | 300 | 验证码的有效时间,默认 300秒 | |
ums.codes.image.requestParamImageCodeName | String | imageCode | 提交图片验证码请求时,请求中带的图片验证码变量名,默认 imageCode | |
ums.codes.image.imageCacheDirectory | String | classpath:static/image/code | 缓存图片验证码目录,默认 classpath:static/image/code , 不以 "classpath:" 开头时即认为是绝对路径, 以 "classpath:" 开头时即认为是基于 classpath 的相对路径. |
|
ums.codes.image.authUrls | List | /authentication/form | 设置需要图片验证码认证的 uri(必须是非 GET 请求),多个 uri 用 “-” 或 ","号分开支持通配符,如:/hello,/user/* ;默认为 /authentication/form
|
|
sms | ||||
ums.codes.sms.private Integer length = 6; | Integer | 6 | 验证码的验证码长度,默认 6 位 | |
ums.codes.sms.expire | Integer | 120 | 验证码的有效时间,默认 120秒 | |
ums.codes.sms.requestParamSmsCodeName | String | smsCode | 提交短信验证码请求时,请求中带的短信验证码变量名,默认 smsCode | |
ums.codes.sms.requestParamMobileName | String | mobile | 提交短信验证码请求时,请求中带的手机号变量名,默认 mobile | |
ums.codes.sms.authUrls | List | |||
slider | ||||
ums.codes.slider.authUrls | List | 设置需要验证码认证的 uri(必须是非 GET 请求),多个 uri 用 “-” 或 ","号分开支持通配符,如:/hello,/user/*;默认为 空 | ||
ums.codes.slider.sliderCheckUrl | String | /slider/check | 设置滑块验证码校验证的 uri, 默认: /slider/check
|
|
ums.codes.slider.requestParamName | String | sliderCode | 提交验证码请求时,请求中带的验证码变量名,默认 sliderCode . 用于滑块验证码第二次校验的参数名称. |
|
ums.codes.slider.tokenRequestParamName | String | sliderToken | request token param name, 默认: sliderToken. | |
ums.codes.slider.xRequestParamName | String | x | request X param name, 默认: x. | |
ums.codes.slider.yRequestParamName | String | y | request Y param name, 默认: y. | |
ums.codes.slider.expire | Integer | 180 | 滑块验证码默认过期时间, 180 秒 | |
ums.codes.slider.redundancyValue | Integer | 3 | 校验 SliderCode.getLocationX() 时的允许的差异值: 默认: 3 PX
|
|
ums.codes.slider.grayscale | Integer | 5 | 在模板上抠图区灰阶等级: 4-10, 数值越高, 灰色越深, 默认: 5 | |
ums.codes.slider.imageSuffix | String | png | 模板图片与原始图片的图片后缀, 默认: png | |
ums.codes.slider.originalImageDirectory | String | classpath:static/image/slider/original | 原始图片目录,默认 classpath:static/image/slider/original, 不以 "classpath:"开头时即认为是绝对路径, 以 "classpath:"开头时即认为是基于 classpath` 的相对路径. |
|
ums.codes.slider.templateImageDirectory | String | classpath:static/image/slider/template | 模板图片目录, 模板图片必须符合: 模板图片的宽 * 3 < 原始图片的宽, 且 模板图片的高 *2 < 原始图片的高; 背景必须是白色, 默认 classpath:static/image/slider/template , 不以 "classpath:" 开头时即认为是绝对路径, 以 "classpath:" 开头时即认为是基于 classpath 的相对路径. |
|
ums.codes.slider.codeImageDirectory | String | classpath:static/image/slider/code | 根据原始图片生成的滑块图片目录,用于自定义缓存滑块图片的存储目录, 默认 classpath:static/image/slider/code , 不以 "classpath:" 开头时即认为是绝对路径, 以 "classpath:" 开头时即认为是基于 classpath 的相对路径. |
|
track | ||||
ums.codes.track.authUrls | List | 设置需要验证码认证的 uri(必须是非 GET 请求),多个 uri 用 “-” 或 ","号分开支持通配符,如:/hello,/user/*;默认为 空 | ||
ums.codes.track.requestParamName | String | trackCode | 提交验证码请求时,请求中带的验证码变量名 | |
ums.codes.image.expire | Integer | 300 | 验证码的有效时间,默认 180秒 | |
selection | ||||
ums.codes.selection.authUrls | List | 设置需要验证码认证的 uri(必须是非 GET 请求),多个 uri 用 “-” 或 ","号分开支持通配符,如:/hello,/user/*;默认为 空 | ||
ums.codes.selection.requestParamName | String | selectionCode | 提交验证码请求时,请求中带的验证码变量名 | |
ums.codes.image.expire | Integer | 300 | 验证码的有效时间,默认 180秒 | |
customize | ||||
ums.codes.customize.authUrls | List | 设置需要验证码认证的 uri(必须是非 GET 请求),多个 uri 用 “-” 或 ","号分开支持通配符,如:/hello,/user/*;默认为 空 | ||
ums.codes.customize.requestParamName | String | customizeCode | 提交验证码请求时,请求中带的验证码变量名 | |
ums.codes.image.expire | Integer | 300 | 验证码的有效时间,默认 180秒 |
属性 | 类型 | 默认值 | 描述 | 可选项 |
---|---|---|---|---|
ums.oauth.enabled | Boolean | 是否支持第三方授权登录功能, 默认: 空, 必须明确配置是否支持 | true/false | |
ums.oauth.autoSignUp | Boolean | true | 第三方授权登录后如未注册用户是否支持自动注册功能, 默认: true | true/false |
ums.oauth.signUpUrl | String | /signUp.html | 第三方授权登录后如未注册用户不支持自动注册功能, 则跳转到此 url 进行注册逻辑, 此 url 必须开发者自己实现; 默认: /signUp.html ; 例如: 1. 设置值 "/signUp" , 则跳转指定到 "/signUp" 进行注册. 2. 想返回自定义 json 数据到前端, 这里要设置 为空 , 在 Auth2LoginAuthenticationFilter 设置的 AuthenticationSuccessHandler 上处理返回 json; 判断是否为临时用户的条件是: Authentication.getPrincipal() 是否为 TemporaryUser 类型. |
|
ums.oauth.temporaryUserPassword | String | "" | 用于第三方授权登录时, 未开启自动注册且用户是第一次授权登录的临时用户密码, 默认为: "". 注意: 生产环境更换密码 | |
ums.oauth.temporaryUserAuthorities | String | "ROLE_TEMPORARY_USER" | 用于第三方授权登录时, 未开启自动注册且用户是第一次授权登录的临时用户的默认权限, 多个权限用逗号分开, 默认为: "ROLE_TEMPORARY_USER" | |
ums.oauth.domain | String | http://127.0.0.1 | 第三方登录回调的域名, 例如:https://localhost 默认为 "http://127.0.0.1", redirectUrl 直接由 {domain}/{servletContextPath}/{redirectUrlPrefix}/{providerId}(ums.oauth.[qq/gitee/weibo]) 组成 |
|
ums.oauth.redirectUrlPrefix | String | /oauth/login | 第三方登录回调处理 url 前缀 ,也就是 RedirectUrl 的前缀, 不包含 ServletContextPath ,默认为 /oauth/login
|
|
ums.oauth.authLoginUrlPrefix | String | /oauth/authorization | 第三方登录授权登录 url 前缀, 不包含 ServletContextPath ,默认为 /oauth/authorization
|
|
ums.oauth.temporaryUserAuthorities | String | ROLE_USER | 第三方授权登录成功后的默认权限, 多个权限用逗号分开, 默认为: "ROLE_USER" | |
ums.oauth.enableUserConnectionAndAuthTokenTable | Boolean | true | 是否支持内置的第三方登录用户表(user_connection ) 和 第三方登录 token 表(auth_token ). 默认: true . 注意: 如果为 false , 则必须重新实现 ConnectionService 接口. |
true/false |
ums.oauth.enableAuthTokenTable | Boolean | true | 是否支持内置的第三方登录 token 表(auth_token ). 默认: true . |
true/false |
refreshToken 定时任务 | ||||
ums.oauth.refreshTokenJobCron | String | 0 * 2 * * ? | A cron-like expression.0 * 2 * * ? 分别对应: second/minute/hour/day of month/month/day of week 默认为: "0 * 2 * * ?", 凌晨 2 点启动定时任务, 支持分布式(分布式 IOC 容器中必须有 RedisConnectionFactory , 也就是说, 是否分布式执行依据 IOC 容器中是否有 RedisConnectionFactory ) |
|
ums.oauth.enableRefreshTokenJob | Boolean | false | 是否支持定时刷新 AccessToken 定时任务, 考虑到很多应用都有自己的定时任务应用, 默认: false . RefreshTokenJob 接口的实现已注入 IOC 容器, 方便自定义定时任务接口时调用. 支持分布式(分布式 IOC 容器中必须有 RedisConnectionFactory , 也就是说, 是否分布式执行依据 IOC 容器中是否有 RedisConnectionFactory ) |
true/false |
ums.oauth.batchCount | Integer | 1000 | 定时刷新 accessToken 任务时, 批处理数据库的记录数. 注意: 分布式应用时, 此配置不同服务器配置必须是一样的. batchCount 大小需要根据实际生产环境进行优化 |
|
ums.oauth.remainingExpireIn | Integer | 24 |
accessToken 的剩余有效期内进行刷新 accessToken , 默认: 24, 单位: 小时. 注意: 需要根据实际生产环境进行优化 |
|
justAuth | ||||
ums.oauth.justAuth.ignoreCheckState | Boolean | false | 忽略校验 state 参数,默认不开启。当 ignoreCheckState 为 true 时, me.zhyd.oauth.request.AuthDefaultRequest.login(AuthCallback) 将不会校验 state 的合法性。 使用场景:当且仅当使用自实现 state 校验逻辑时开启 以下场景使用方案仅作参考: 1. 授权、登录为同端,并且全部使用 JustAuth 实现时,该值建议设为 false; 2. 授权和登录为不同端实现时,比如前端页面拼装 authorizeUrl,并且前端自行对state进行校验, 后端只负责使用code获取用户信息时,该值建议设为 true; 如非特殊需要,不建议开启这个配置 该方案主要为了解决以下类似场景的问题: |
true/false |
ums.oauth.justAuth.timeout | Duration | PT180S | 默认 state 缓存过期时间:3分钟(PT180S) 鉴于授权过程中,根据个人的操作习惯,或者授权平台的不同(google等),每个授权流程的耗时也有差异,不过单个授权流程一般不会太长 本缓存工具默认的过期时间设置为3分钟,即程序默认认为3分钟内的授权有效,超过3分钟则默认失效,失效后删除 | |
ums.oauth.justAuth.cacheType | StateCacheType | SESSION | JustAuth state 缓存类型, 默认 session | DEFAULT/SESSION/REDIS |
ums.oauth.justAuth.cacheKeyPrefix | String | JUST_AUTH: | JustAuth state 缓存 key 前缀 | |
proxy | ||||
ums.oauth.proxy.enable | Boolean | false | 是否支持代理, 默认为: false. 当为 false 时, 其他属性都失效. | true/false |
ums.oauth.proxy.proxy | Proxy.Type | HTTP | 针对国外服务可以单独设置代理类型, 默认 Proxy.Type.HTTP | HTTP/DIRECT/SOCKS |
ums.oauth.proxy.hostname | String | 代理 host, enable = true 时生效. | ||
ums.oauth.proxy.port | Integer | 代理端口, enable = true 时生效. | ||
ums.oauth.proxy.timeout | Duration | PT3S | 代理超时, 默认 PT3S | |
ums.oauth.proxy.foreignTimeout | Duration | PT15S | 用于国外网站代理超时, 默认 PT15S | |
github | ||||
ums.oauth.github.clientId | String | client Id |
||
ums.oauth.github.clientSecret | String | client Secret |
||
ums.oauth.github.scopes | List | 支持自定义授权平台的 scope 内容, 格式参考对应的 AuthScope.getScope() 的子类. 注意: 会自动添加默认的 scope 设置. | ||
ums.oauth.weibo.clientId | String | client Id |
||
ums.oauth.weibo.clientSecret | String | client Secret |
||
ums.oauth.weibo.scopes | List | 支持自定义授权平台的 scope 内容, 格式参考对应的 AuthScope.getScope() 的子类. 注意: 会自动添加默认的 scope 设置. | ||
gitee | ||||
ums.oauth.gitee.clientId | String | client Id |
||
ums.oauth.gitee.clientSecret | String | client Secret |
||
ums.oauth.gitee.scopes | List | 支持自定义授权平台的 scope 内容, 格式参考对应的 AuthScope.getScope() 的子类. 注意: 会自动添加默认的 scope 设置. | ||
dingtalk | ||||
ums.oauth.dingtalk.clientId | String | client Id |
||
ums.oauth.dingtalk.clientSecret | String | client Secret |
||
baidu | ||||
ums.oauth.baidu.clientId | String | client Id |
||
ums.oauth.baidu.clientSecret | String | client Secret |
||
ums.oauth.baidu.scopes | List | 支持自定义授权平台的 scope 内容, 格式参考对应的 AuthScope.getScope() 的子类. 注意: 会自动添加默认的 scope 设置. | ||
coding | ||||
ums.oauth.coding.clientId | String | client Id |
||
ums.oauth.coding.clientSecret | String | client Secret |
||
ums.oauth.coding.codingGroupName | String | 使用 Coding 登录时,需要传该值。 团队域名前缀,比如以“ https://justauth.coding.net/ ”为例,``codingGroupName = justauth` |
||
ums.oauth.coding.scopes | List | 支持自定义授权平台的 scope 内容, 格式参考对应的 AuthScope.getScope() 的子类. 注意: 会自动添加默认的 scope 设置. | ||
oschina | ||||
ums.oauth.oschina.clientId | String | client Id |
||
ums.oauth.oschina.clientSecret | String | client Secret |
||
alipay | ||||
ums.oauth.alipay.clientId | String | client Id |
||
ums.oauth.alipay.clientSecret | String | client Secret |
||
ums.oauth.alipay.alipayPublicKey | String | 支付宝公钥:当选择支付宝登录时,该值可用 对应“RSA2(SHA256)密钥”中的“支付宝公钥” | ||
ums.oauth.alipay.proxyHost | String | 支付宝: 支付宝有自己的代理, 默认代理对支付宝不生效, 代理主机: | ||
ums.oauth.alipay.proxyPort | Integer | 支付宝: 支付宝有自己的代理, 默认代理对支付宝不生效, 代理端口: | ||
ums.oauth.qq.clientId | String | client Id |
||
ums.oauth.qq.clientSecret | String | client Secret |
||
ums.oauth.qq.unionId | String | 是否需要申请 unionId,默认: false. 目前只针对qq登录 注:qq授权登录时,获取 unionId 需要单独发送邮件申请权限。如果个人开发者账号中申请了该权限,可以将该值置为true,在获取openId时就会同步获取unionId 参考链接:http://wiki.connect.qq.com/unionid%E4%BB%8B%E7%BB%8D | ||
ums.oauth.qq.scopes | List | 支持自定义授权平台的 scope 内容, 格式参考对应的 AuthScope.getScope() 的子类. 注意: 会自动添加默认的 scope 设置. | ||
wechatOpen | ||||
ums.oauth.wechatOpen.clientId | String | client Id |
||
ums.oauth.wechatOpen.clientSecret | String | client Secret |
||
wechatMp | ||||
ums.oauth.wechatMp.clientId | String | client Id |
||
ums.oauth.wechatMp.clientSecret | String | client Secret |
||
ums.oauth.wechatMp.scopes | List | 支持自定义授权平台的 scope 内容, 格式参考对应的 AuthScope.getScope() 的子类. 注意: 会自动添加默认的 scope 设置. | ||
taobao | ||||
ums.oauth.taobao.clientId | String | client Id |
||
ums.oauth.taobao.clientSecret | String | client Secret |
||
ums.oauth.taobao.scopes | List | 支持自定义授权平台的 scope 内容, 格式参考对应的 AuthScope.getScope() 的子类. 注意: 会自动添加默认的 scope 设置. | ||
ums.oauth.google.clientId | String | client Id |
||
ums.oauth.google.clientSecret | String | client Secret |
||
ums.oauth.google.scopes | List | 支持自定义授权平台的 scope 内容, 格式参考对应的 AuthScope.getScope() 的子类. 注意: 会自动添加默认的 scope 设置. | ||
ums.oauth.facebook.clientId | String | client Id |
||
ums.oauth.facebook.clientSecret | String | client Secret |
||
ums.oauth.facebook.scopes | List | 支持自定义授权平台的 scope 内容, 格式参考对应的 AuthScope.getScope() 的子类. 注意: 会自动添加默认的 scope 设置. | ||
github | ||||
ums.oauth.github.clientId | String | client Id |
||
ums.oauth.github.clientSecret | String | client Secret |
||
ums.oauth.github.scopes | List | 支持自定义授权平台的 scope 内容, 格式参考对应的 AuthScope.getScope() 的子类. 注意: 会自动添加默认的 scope 设置. | ||
douyin | ||||
ums.oauth.douyin.clientId | String | client Id |
||
ums.oauth.douyin.clientSecret | String | client Secret |
||
ums.oauth.linkedin.clientId | String | client Id |
||
ums.oauth.linkedin.clientSecret | String | client Secret |
||
ums.oauth.linkedin.scopes | List | 支持自定义授权平台的 scope 内容, 格式参考对应的 AuthScope.getScope() 的子类. 注意: 会自动添加默认的 scope 设置. | ||
microsoft | ||||
ums.oauth.microsoft.clientId | String | client Id |
||
ums.oauth.microsoft.clientSecret | String | client Secret |
||
ums.oauth.microsoft.scopes | List | 支持自定义授权平台的 scope 内容, 格式参考对应的 AuthScope.getScope() 的子类. 注意: 会自动添加默认的 scope 设置. | ||
mi | ||||
ums.oauth.mi.clientId | String | client Id |
||
ums.oauth.mi.clientSecret | String | client Secret |
||
ums.oauth.mi.scopes | List | 支持自定义授权平台的 scope 内容, 格式参考对应的 AuthScope.getScope() 的子类. 注意: 会自动添加默认的 scope 设置. | ||
toutiao | ||||
ums.oauth.toutiao.clientId | String | client Id |
||
ums.oauth.toutiao.clientSecret | String | client Secret |
||
teambition | ||||
ums.oauth.teambition.clientId | String | client Id |
||
ums.oauth.teambition.clientSecret | String | client Secret |
||
renren | ||||
ums.oauth.renren.clientId | String | client Id |
||
ums.oauth.renren.clientSecret | String | client Secret |
||
ums.oauth.renren.scopes | List | 支持自定义授权平台的 scope 内容, 格式参考对应的 AuthScope.getScope() 的子类. 注意: 会自动添加默认的 scope 设置. | ||
ums.oauth.pinterest.clientId | String | client Id |
||
ums.oauth.pinterest.clientSecret | String | client Secret |
||
ums.oauth.pinterest.scopes | List | 支持自定义授权平台的 scope 内容, 格式参考对应的 AuthScope.getScope() 的子类. 注意: 会自动添加默认的 scope 设置. | ||
stackOverflow | ||||
ums.oauth.stackOverflow.clientId | String | client Id |
||
ums.oauth.stackOverflow.clientSecret | String | client Secret |
||
ums.oauth.stackOverflow.stackOverflowKey | String | Stack Overflow Key | ||
ums.oauth.stackOverflow.scopes | List | 支持自定义授权平台的 scope 内容, 格式参考对应的 AuthScope.getScope() 的子类. 注意: 会自动添加默认的 scope 设置. | ||
huawei | ||||
ums.oauth.huawei.clientId | String | client Id |
||
ums.oauth.huawei.clientSecret | String | client Secret |
||
ums.oauth.huawei.scopes | List | 支持自定义授权平台的 scope 内容, 格式参考对应的 AuthScope.getScope() 的子类. 注意: 会自动添加默认的 scope 设置. | ||
wechatEnterprise 企业微信二维码版 | ||||
ums.oauth.wechatEnterprise.clientId | String | client Id |
||
ums.oauth.wechatEnterprise.clientSecret | String | client Secret |
||
ums.oauth.wechatEnterprise.agentId | String | 企业微信,授权方的网页应用ID | ||
kujiale | ||||
ums.oauth.kujiale.clientId | String | client Id |
||
ums.oauth.kujiale.clientSecret | String | client Secret |
||
ums.oauth.kujiale.scopes | List | 支持自定义授权平台的 scope 内容, 格式参考对应的 AuthScope.getScope() 的子类. 注意: 会自动添加默认的 scope 设置. | ||
gitlab | ||||
ums.oauth.gitlab.clientId | String | client Id |
||
ums.oauth.gitlab.clientSecret | String | client Secret |
||
ums.oauth.gitlab.scopes | List | 支持自定义授权平台的 scope 内容, 格式参考对应的 AuthScope.getScope() 的子类. 注意: 会自动添加默认的 scope 设置. | ||
meituan | ||||
ums.oauth.meituan.clientId | String | client Id |
||
ums.oauth.meituan.clientSecret | String | client Secret |
||
eleme | ||||
ums.oauth.eleme.clientId | String | client Id |
||
ums.oauth.eleme.clientSecret | String | client Secret |
||
ums.oauth.twitter.clientId | String | client Id |
||
ums.oauth.twitter.clientSecret | String | client Secret |
||
jd | ||||
ums.oauth.jd.clientId | String | client Id |
||
ums.oauth.jd.clientSecret | String | client Secret |
||
ums.oauth.jd.scopes | List | 支持自定义授权平台的 scope 内容, 格式参考对应的 AuthScope.getScope() 的子类. 注意: 会自动添加默认的 scope 设置. | ||
aliyun | ||||
ums.oauth.aliyun.clientId | String | client Id |
||
ums.oauth.aliyun.clientSecret | String | client Secret |
||
feishu | ||||
ums.oauth.feishu.clientId | String | client Id |
||
ums.oauth.feishu.clientSecret | String | client Secret |
||
xmly 喜马拉雅 | ||||
ums.oauth.xmly.clientId | String | client Id |
||
ums.oauth.xmly.clientSecret | String | client Secret |
||
ums.oauth.xmly.deviceId | String | 喜马拉雅:设备ID, 设备唯一标识ID
|
||
ums.oauth.xmly.clientOsType | Integer | 喜马拉雅:客户端操作系统类型,1-iOS系统,2-Android系统,3-Web
|
||
ums.oauth.xmly.packId | String | 喜马拉雅:客户端包名,如果 AuthConfig#getClientOsType() 为1或2时必填。对Android 客户端是包名,对IOS 客户端是Bundle ID
|
||
wechatEnterpriseWeb 企业微信网页版 | ||||
ums.oauth.wechatEnterpriseWeb.clientId | String | client Id |
||
ums.oauth.wechatEnterpriseWeb.clientSecret | String | client Secret |
||
ums.oauth.wechatEnterpriseWeb.agentId | String | 企业微信,授权方的网页应用ID | ||
ums.oauth.wechatEnterpriseWeb.scopes | List | 支持自定义授权平台的 scope 内容, 格式参考对应的 AuthScope.getScope() 的子类. 注意: 会自动添加默认的 scope 设置. | ||
customize | ||||
ums.oauth.customize.clientId | String | client Id |
||
ums.oauth.customize.clientSecret | String | client Secret |
||
ums.oauth.customize.customizeProviderId | String | 自定义第三方授权登录, 当 Auth2Properties#customize 时有效, 此字段必须以驼峰方式命名. 比如此字段的值为 umsCustomize , 那么 /auth2/authorization/customize 会替换为 /auth2/authorization/umsCustomize
|
||
ums.oauth.customize.customizeIsForeign | Boolean | false | 自定义第三方授权登录, 当 Auth2Properties#customize 时有效, 设置第三方是否在国外, 默认: false . 如果为 false 时, 设置 HttpConfig 的超时时间为 ums.oauth.proxy.timeout 的值. 如果为 true 时, 设置 HttpConfig 的超时时间为 ums.oauth.proxy.foreignTimeout 的值. |
true/false |
gitlabPrivate | ||||
ums.oauth.gitlabPrivate.clientId | String | client Id |
||
ums.oauth.gitlabPrivate.clientSecret | String | client Secret |
属性 | 类型 | 默认值 | 描述 | 可选项 |
---|---|---|---|---|
jobTaskScheduledExecutor | 定时任务时的 Executor 属性 注意: 需要根据实际生产环境进行优化 | |||
ums.executor.jobTaskScheduledExecutor.corePoolSize | Integer | 0 | 线程池中空闲时保留的线程数, 默认: 0 | |
ums.executor.jobTaskScheduledExecutor.keepAliveTime | Integer | 10 | keep alive time, 默认: 10 | |
ums.executor.jobTaskScheduledExecutor.timeUnit | TimeUnit | TimeUnit.MILLISECONDS | keepAliveTime 时间单位, 默认: 毫秒 | MILLISECONDS/MICROSECONDS/MILLISECONDS/SECONDS/MINUTES/HOURS/DAYS |
ums.executor.jobTaskScheduledExecutor.poolName | String | accessTokenJob | 线程池名称, 默认: accessTokenJob | |
ums.executor.jobTaskScheduledExecutor.rejectedExecutionHandlerPolicy | RejectedExecutionHandlerPolicy | ABORT | 拒绝策略, 默认: ABORT | ABORT/CALLER_RUNS/DISCARD_OLDEST/DISCARD |
ums.executor.jobTaskScheduledExecutor.executorShutdownTimeout | Duration | PT10S | 线程池关闭过程的超时时间, 默认: PT10S | |
refreshToken | 更新第三方授权登录用户的 accessToken 的执行逻辑, 向本地数据库 auth_token 表获取过期或在一定时间内过期的 token 记录, 用 refreshToken 向第三方服务商更新 accessToken 信息的 Executor 属性, 注意: 定时刷新 accessToken 的执行逻辑是多线程的, 需要根据实际生产环境进行优化 | |||
ums.executor.refreshToken.corePoolSize | Integer | 0 | 线程池中空闲时保留的线程数, 默认: 0 | |
ums.executor.refreshToken.maximumPoolSize | Integer | Runtime.getRuntime().availableProcessors() | 最大线程数, 默认: 本机核心数 | |
ums.executor.refreshToken.keepAliveTime | Integer | 5 | keep alive time, 默认: 5 | |
ums.executor.refreshToken.timeUnit | TimeUnit | TimeUnit.SECONDS | keepAliveTime 时间单位, 默认: 秒 | MILLISECONDS/MICROSECONDS/MILLISECONDS/SECONDS/MINUTES/HOURS/DAYS |
ums.executor.refreshToken.blockingQueueCapacity | Integer | maximumPoolSize * 2 | blocking queue capacity, 默认: maximumPoolSize * 2 | |
ums.executor.refreshToken.poolName | String | refreshToken | 线程池名称, 默认: refreshToken | |
ums.executor.refreshToken.rejectedExecutionHandlerPolicy | RejectedExecutionHandlerPolicy | CALLER_RUNS | 拒绝策略, 默认: CALLER_RUNS 注意: 一般情况下不要更改默认设置, 没有实现 RefreshToken 逻辑被拒绝执行后的处理逻辑, 除非自己实现RefreshTokenJob.refreshTokenJob() 对 RefreshToken 逻辑被拒绝执行后的处理逻辑. | ABORT/CALLER_RUNS/DISCARD_OLDEST/DISCARD |
ums.executor.refreshToken.executorShutdownTimeout | Duration | PT10S | 线程池关闭过程的超时时间, 默认: PT10S | |
updateConnection | 第三方授权登录时, 异步更新用户的第三方授权用户信息与 token 信息的 Executor 属性, 注意: 第三方授权登录时是异步更新第三方用户信息与 token 信息到本地数据库时使用此配置, 需要根据实际生产环境进行优化 | |||
ums.executor.updateConnection.corePoolSize | Integer | 5 | 线程池中空闲时保留的线程数, 默认: 5 | |
ums.executor.updateConnection.maximumPoolSize | Integer | Runtime.getRuntime().availableProcessors() | 最大线程数, 默认: 本机核心数 | |
ums.executor.updateConnection.keepAliveTime | Integer | 10 | keep alive time, 默认: 10 | |
ums.executor.updateConnection.timeUnit | TimeUnit | TimeUnit.SECONDS | keepAliveTime 时间单位, 默认: 秒 | MILLISECONDS/MICROSECONDS/MILLISECONDS/SECONDS/MINUTES/HOURS/DAYS |
ums.executor.updateConnection.blockingQueueCapacity | Integer | maximumPoolSize * 2 | blocking queue capacity, 默认: maximumPoolSize * 2 | |
ums.executor.updateConnection.poolName | String | updateConnection | 线程池名称, 默认: updateConnection | |
ums.executor.updateConnection.rejectedExecutionHandlerPolicy | RejectedExecutionHandlerPolicy | CALLER_RUNS | 拒绝策略, 默认: CALLER_RUNS 注意: 一般情况下不要更改默认设置, 除非自己实现Auth2LoginAuthenticationProvider更新逻辑; 改成 ABORT 也支持, 默认实现 Auth2LoginAuthenticationProvider 是异步更新被拒绝执行后, 会执行同步更新. | ABORT/CALLER_RUNS/DISCARD_OLDEST/DISCARD |
ums.executor.updateConnection.executorShutdownTimeout | Duration | PT10S | 线程池关闭过程的超时时间, 默认: PT10S |
属性 | 类型 | 默认值 | 描述 | 可选项 |
---|---|---|---|---|
ums.cache.redis.open | Boolean | false | Redis cache is open, 默认 false | true/false |
ums.cache.redis.useIocRedisConnectionFactory | Boolean | false | 是否使用 spring IOC 容器中的 RedisConnectionFactory, 默认: false. 如果使用 spring IOC 容器中的 RedisConnectionFactory,则要注意 cache.database-index 要与 spring.redis.database 一样 | true/false |
cache | ||||
ums.cache.redis.cache.databaseIndex | Integer | 0 | redis cache 存放的 database index, 默认: 0 | |
ums.cache.redis.cache.defaultExpireTime | Duration | PT200S | 设置缓存管理器管理的缓存的默认过期时间, 默认: 200, 单位: 秒 | |
ums.cache.redis.cache.entryTtl | Duration | PT180S | cache ttl 。使用 0 声明一个永久的缓存。 默认: 180, 单位: 秒 取缓存时间的 20% 作为动态的随机变量上下浮动, 防止同时缓存失效而缓存击穿 | |
ums.cache.redis.cache.cacheNames | Set | Names of the default caches to consider for caching operations defined in the annotated class. |
属性 | 类型 | 默认值 | 描述 | 可选项 |
---|---|---|---|---|
数据库初始化相关语句 | ||||
ums.repository.enableStartUpInitializeTable | Boolean | true | 是否在启动时检查并自动创建 userConnectionTableName 与 authTokenTableName , 默认: TRUE
|
true/false |
ums.repository.queryDatabaseNameSql | String | select database(); | 查询数据库名称, 默认为 mysql 查询语句. |
|
ums.repository.authTokenTableName | String | auth_token | 第三方登录 AuthTokenPo 数据库表名称. |
|
ums.repository.queryAuthTokenTableExistSql | String | SELECT COUNT(1) FROM information_schema.tables WHERE table_name = '%s' AND table_schema = '%s'; | 查询户 authTokenTableName 在数据库中是否存在的语句。 注意: sql 语句中的 %s 必须写上,且 %s 的顺序必须与后面的字段名称所对应的含义对应 : authTokenTableName , database
|
|
ums.repository.createAuthTokenTableSql | String | 创建 authTokenTableName 的建表语句 | 创建 authTokenTableName 的建表语句。 注意: sql 语句中的 %s 必须写上,且 %s 的顺序必须与后面的字段名称所对应的含义对应 : authTokenTableName
|
|
自定义第三方登录用户表及相关 CURD 语句 | ||||
ums.repository.userConnectionTableName | String | user_connection | 第三方登录用户数据库表名称, | |
ums.repository.userIdColumnName | String | userId | 第三方登录用户数据库用户表用户唯一 ID 字段名称, 默认为 userId | |
ums.repository.providerIdColumnName | String | providerId | 第三方登录用户数据库用户表服务商 providerId 字段名称, 默认为 providerId | |
ums.repository.providerUserIdColumnName | String | providerUserId | 第三方登录用户数据库用户表服务商用户 providerUserId 字段名称, 默认为 providerUserId | |
ums.repository.rankColumnName | String | rank | 第三方登录用户数据库用户表 rank 字段名称, 默认为 rank 。 注意:因为 MySQL 8.0 版本 rank 是个关键字。一定要用 ` 包裹。 |
|
ums.repository.displayNameColumnName | String | displayName | 第三方登录用户数据库用户表用户显示名称 displayName 字段名称, 默认为 displayName | |
ums.repository.profileUrlColumnName | String | profileUrl | 第三方登录用户数据库用户表用户主页 profileUrl 字段名称, 默认为 profileUrl | |
ums.repository.imageUrlColumnName | String | imageUrl | 第三方登录用户数据库用户表用户头像 imageUrl 字段名称, 默认为 imageUrl | |
ums.repository.accessTokenColumnName | String | accessToken | 第三方登录用户数据库用户表用户 accessToken 字段名称, 默认为 accessToken | |
ums.repository.tokenIdColumnName | String | tokenId | 第三方登录用户数据库用户表用户 tokenId 字段名称, 默认为 tokenId | |
ums.repository.refreshTokenColumnName | String | refreshToken | 第三方登录用户数据库用户表用户显 refreshToken 字段名称, 默认为 refreshToken | |
ums.repository.expireTimeColumnName | String | expireTime | 第三方登录用户数据库用户表用户过期时间 expireTime 字段名称, 默认为 expireTime | |
ums.repository.creatUserConnectionTableSql | String | "CREATE TABLE %s (%s varchar(255) NOT NULL, %s varchar(255) NOT NULL, %s varchar(255) NOT NULL, %s int NOT NULL, %s varchar(255), %s varchar(512), %s varchar(512), %s varchar(512) NOT NULL, %s varchar(512), %s varchar(512), %s bigint, PRIMARY KEY (%s, %s, %s), unique KEY idx_userId_providerId_rank (%s, %s, %s), KEY idx_providerId_providerUserId_rank (%s, %s, %s)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;" |
第三方登录用户数据库用户表创建语句。 修改第三方登录用户数据库用户表创建语句时,要注意:修改字段名称可以直接修改上面的字段名称即可,不用修改建表语句,不可以减少字段,但可以另外增加字段。 用户需要对第三方登录的用户表与 curd 的 sql 语句结构进行更改时, 必须实现对应的 UsersConnectionRepositoryFactory, 如果需要,请实现 UsersConnectionRepositoryFactory,可以参考 Auth2JdbcUsersConnectionRepositoryFactory。 注意: sql 语句中的 %s 必须写上,且 %s 的顺序必须与后面的字段名称所对应的含义对应 : tableName、 userIdColumnName、 providerIdColumnName、 providerUserIdColumnName、 rankColumnName、 displayNameColumnName、 profileUrlColumnName、 imageUrlColumnName、 accessTokenColumnName、 tokenIdColumnName、 refreshTokenColumnName、 expireTimeColumnName、 userIdColumnName、 providerIdColumnName、 providerUserIdColumnName、 userIdColumnName、 providerIdColumnName、 rankColumnName、 providerIdColumnName、 providerUserIdColumnName、 rankColumnName、 | |
ums.repository.queryUserConnectionTableExistSql | String | SELECT COUNT(1) FROM information_schema.tables WHERE table_schema='%s' AND table_name = '%s' | 第三方登录用户数据库用户表查询 userIds 的查询语句。 注意: sql 语句中的 %s 必须写上,问号必须与指定的 %s 相对应,%s按顺序会用对应的 : databaseName、 tableName | |
ums.repository.findUserIdsWithConnectionSql | String | select %s from %s where %s = ? and %s = ? | 第三方登录用户数据库用户表查询 userIds 的查询语句。 注意: sql 语句中的 %s 必须写上,问号必须与指定的 %s 相对应,%s按顺序会用对应的 : userIdColumnName、 tableName、 providerIdColumnName、 providerUserIdColumnName | |
ums.repository.findUserIdsConnectedToSql | String | select %s from %S where %s = :%s and %s in (:%s) | 通过第三方服务提供商提供的 providerId 与 providerUserIds 从数据库用户表查询 userIds 的查询语句。 注意: sql 语句中的 %s 必须写上,问号必须与指定的 %s 相对应,%s按顺序会用对应的 : userIdColumnName、 tableName、 providerIdColumnName、 providerUserIdColumnName | |
ums.repository.selectFromUserConnectionSql | String | select %s, %s, %s, %s, %s, %s, %s, %s, %s, %s from %s | 通过第三方服务提供商提供的 providerId 与 providerUserIds 从数据库用户表查询 userIds 的查询语句。 注意: sql 语句中的 %s 必须写上,问号必须与指定的 %s 相对应, %s按顺序会用对应的 : userIdColumnName、 providerIdColumnName、 providerUserIdColumnName、 displayNameColumnName、 profileUrlColumnName、 imageUrlColumnName、 accessTokenColumnName、 tokenIdColumnName、 refreshTokenColumnName、 expireTimeColumnName、 tableName | |
ums.repository.updateConnectionSql | String | update %s set %s = ?, %s = ?, %s = ?, %s = ?, %s = ?, %s = ?, %s = ? where %s = ? and %s = ? and %s = ? | 第三方登录用户数据库用户表更新语句。 注意: sql 语句中的 %s 必须写上,问号必须与指定的 %s 相对应, %s按顺序会用对应的 : tableName、 displayNameColumnName、 profileUrlColumnName、 imageUrlColumnName、 accessTokenColumnName、 tokenIdColumnName、 refreshTokenColumnName、 expireTimeColumnName、 userIdColumnName、 providerIdColumnName、 providerUserIdColumnName | |
ums.repository.addConnectionSql | String | insert into %s(%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) | 第三方登录用户数据库用户表添加用户语句。 注意: sql 语句中的 %s 必须写上,问号必须与指定的 %s 相对应, %s按顺序会用对应的 : tableName、 userIdColumnName、 providerIdColumnName、 providerUserIdColumnName、 rankColumnName、 displayNameColumnName、 profileUrlColumnName、 imageUrlColumnName、 accessTokenColumnName、 tokenIdColumnName、 refreshTokenColumnName、 expireTimeColumnName | |
ums.repository.addConnectionQueryForRankSql | String | select coalesce(max(%s) + 1, 1) as %s from %s where %s = ? and %s = ? | 第三方登录用户数据库用户表查询添加用户时的所需 rank 的值。 注意: sql 语句中的 %s 必须写上,问号必须与指定的 %s 相对应,%s按顺序会用对应的 : rankColumnName、 rankColumnName、 tableName、 userIdColumnName、 providerIdColumnName | |
ums.repository.removeConnectionsSql | String | delete from %s where %s = ? and %s = ? | 第三方登录用户数据库用户表根据 userId 与 providerId 删除多个用户。 注意: sql 语句中的 %s 必须写上,问号必须与指定的 %s 相对应,%s按顺序会用对应的 : tableName、 userIdColumnName、 providerIdColumnName | |
ums.repository.removeConnectionSql | String | delete from %s where %s = ? and %s = ? and %s = ? | 第三方登录用户数据库用户表根据 userId、providerId、providerUserId 删除一个用户。 注意: sql 语句中的 %s 必须写上,问号必须与指定的 %s 相对应,%s按顺序会用对应的 : tableName、 userIdColumnName、 providerIdColumnName、 providerUserIdColumnName |
属性 | 类型 | 默认值 | 描述 | 可选项 |
---|---|---|---|---|
ums.redis.open | Boolean | false | Redis cache is open, 默认 false | true/false |
ums.redis.useIocRedisConnectionFactory | Boolean | false | 是否使用 spring IOC 容器中的 RedisConnectionFactory, 默认: false. 如果使用 spring IOC 容器中的 RedisConnectionFactory,则要注意 cache.database-index 要与 spring.redis.database 一样 | true/false |
cache | ||||
ums.redis.cache.databaseIndex | Integer | 0 | redis cache 存放的 database index, 默认: 0 | |
ums.redis.cache.defaultExpireTime | Duration | PT200S | 设置缓存管理器管理的缓存的默认过期时间, 默认: 200s | |
ums.redis.cache.entryTtl | Duration | PT180S | Set the ttl to apply for cache entries. Use Duration.ZERO to declare an eternal cache. 默认: 180s | |
ums.redis.cache.cacheNames | Set | Names of the default caches to consider for caching operations defined in the annotated class. |
属性 | 类型 | 默认值 | 描述 | 可选项 |
---|---|---|---|---|
第三方登录注册相关 | ||||
ums.social.socialSignUpIsOpen | Boolean | false | social 第三方登录注册功能是否开启,默认为 false | true/false |
ums.social.socialUserRegisterUrl | String | /authentication/social | 第三方登录用户从 signUpUrl 提交的用户信息表单,默认由 /authentication/social 进行处理,由 Social 处理,不需要用户实现, 更改 url,需自己实现处理逻辑 | |
ums.social.signUpUrl | String | /signUp.html(必须自己实现) | 第三方登录用户授权成功且未注册,则跳转的注册页面, 默认为 /signUp.html, autoSignIn=true 且实现 BaseConnectionSignUp 接口则自动登录时 signUpUrl 会失效 | |
ums.social.signInUrl | String | /signIn.html(必须自己实现) | 第三方登录页面, 默认为 /signIn.html | |
ums.social.autoSignIn | Boolean | true | 第三方登录时是否自动注册:如果为 true 且实现 BaseConnectionSignUp 接口则自动登录,而且 signUpUrl 失效, 默认为 true | true/false |
第三方登录绑定相关 | ||||
ums.social.bandingUrl | String | /banding.html(必须自己实现) | 第三方登录绑定页面(必须自己实现), 默认为 /banding.html | |
ums.social.bandingProviderConnectionListName | String | connections | 用户绑定第三方账号的 List 的参数名称, 默认: connections | |
ums.social.viewPath | String | connect/ | 用户绑定第三方账号后返回状态信息的视图前缀, 默认: connect/ , 在自定义 AbstractView 时有用 | |
第三方登录相关 | ||||
ums.social.userIdParamName | String | userId | 第三方登录用户注册时: 用户唯一 ID 字段名称, 默认为 userId | |
ums.social.passwordParamName | String | password | 第三方登录用户注册时: 密码 字段名称, 默认为 password | |
ums.social.providerIdParamName | String | providerId | 第三方录用户注册时: 服务商 providerId 字段名称, 默认为 providerId | |
ums.social.providerUserIdParamName | String | providerUserId | 第三方登录用户注册时: 在服务商那的用户唯一ID providerUserId 字段名称, 默认为 providerUserId | |
ums.social.avatarUrlParamName | String | avatarUrl | 第三方登录用户注册时: 用户头像 avatarUrl 字段名称, 默认为 avatarUrl | |
ums.social.callbackUrl | String | /auth/callback | 第三方登录回调处理 url ,也是 RedirectUrl 的前缀,也是统一的回调地址入口,默认为 /auth/callback. | |
ums.social.domain | String | http://127.0.0.1 | 第三方登录回调的域名, 例如:https://localhost 默认为 "http://127.0.0.1", redirectUrl 直接由 domain/servletContextPath/callbackUrl/providerId(ums.social.[qq/wechat/gitee/weibo])组成 | |
ums.social.failureUrl | String | /signIn.html(必须自己实现) | 第三方登录用户授权失败跳转页面(必须自己实现), 默认为 "/signIn.html" | |
第三方登录 key 与 secret 加密相关 | ||||
ums.social.textEncryptorPassword | String | 7ca5d913a17b4942942d16a974e3fecc | 第三方登录用户数据库表的字段 key 与 secret 加密专用密码 | |
ums.social.textEncryptorSalt | String | cd538b1b077542aca5f86942b6507fe2 | 第三方登录用户数据库表的字段 key 与 secret 加密专用 salt | |
ums.social.qq.enable | Boolean | false | true/false | |
ums.social.qq.providerId | String | |||
ums.social.qq.redirectUrl | String | 自动配置 | 回调地址(格式必须是:domain/servletContextPath/callbackUrl/providerId) ,servletContextPath 在 SocialAutoConfiguration.init() 中设置 |
|
ums.social.qq.appId | String | 第三方 appId | ||
ums.social.qq.appSecret | String | 第三方 appSecret | ||
GITEE | ||||
ums.social.gitee.enable | Boolean | false | true/false | |
ums.social.gitee.providerId | String | gitee | ||
ums.social.gitee.redirectUrl | String | 自动配置 | 回调地址(格式必须是:domain/servletContextPath/callbackUrl/providerId) ,servletContextPath 在 SocialAutoConfiguration.init() 中设置 |
|
ums.social.gitee.appId | String | 第三方 appId | ||
ums.social.gitee.appSecret | String | 第三方 appSecret | ||
WEIXIN | ||||
ums.social.weixin.enable | Boolean | false | true/false | |
ums.social.weixin.providerId | String | weixin | ||
ums.social.weixin.redirectUrl | String | 自动配置 | 回调地址(格式必须是:domain/servletContextPath/callbackUrl/providerId) ,servletContextPath 在 SocialAutoConfiguration.init() 中设置 |
|
ums.social.weixin.appId | String | 第三方 appId | ||
ums.social.weixin.appSecret | String | 第三方 appSecret | ||
ums.social.weibo.enable | Boolean | false | true/false | |
ums.social.weibo.providerId | String | |||
ums.social.weibo.redirectUrl | String | 自动配置 | 回调地址(格式必须是:domain/servletContextPath/callbackUrl/providerId) ,servletContextPath 在 SocialAutoConfiguration.init() 中设置 |
|
ums.social.weibo.appId | String | 第三方 appId | ||
ums.social.weibo.appSecret | String | 第三方 appSecret |
属性 | 类型 | 默认值 | 描述 | 可选项 |
---|---|---|---|---|
自定义第三方登录用户表及相关 CURD 语句 | ||||
ums.social.tableName | String | social_UserConnection | 第三方登录用户数据库表名称, | |
ums.social.userIdColumnName | String | userId | 第三方登录用户数据库用户表用户唯一 ID 字段名称, 默认为 userId | |
ums.social.providerIdColumnName | String | providerId | 第三方登录用户数据库用户表服务商 providerId 字段名称, 默认为 providerId | |
ums.social.providerUserIdColumnName | String | providerUserId | 第三方登录用户数据库用户表服务商用户 providerUserId 字段名称, 默认为 providerUserId | |
ums.social.rankColumnName | String | rank | 第三方登录用户数据库用户表 rank 字段名称, 默认为 rank 。 注意:因为 MySQL 8.0 版本 rank 是个关键字。一定要用 ` 包裹。 |
|
ums.social.displayNameColumnName | String | displayName | 第三方登录用户数据库用户表用户显示名称 displayName 字段名称, 默认为 displayName | |
ums.social.profileUrlColumnName | String | profileUrl | 第三方登录用户数据库用户表用户主页 profileUrl 字段名称, 默认为 profileUrl | |
ums.social.imageUrlColumnName | String | imageUrl | 第三方登录用户数据库用户表用户头像 imageUrl 字段名称, 默认为 imageUrl | |
ums.social.accessTokenColumnName | String | accessToken | 第三方登录用户数据库用户表用户 accessToken 字段名称, 默认为 accessToken | |
ums.social.secretColumnName | String | secret | 第三方登录用户数据库用户表用户 secret 字段名称, 默认为 secret | |
ums.social.refreshTokenColumnName | String | refreshToken | 第三方登录用户数据库用户表用户显 refreshToken 字段名称, 默认为 refreshToken | |
ums.social.expireTimeColumnName | String | expireTime | 第三方登录用户数据库用户表用户过期时间 expireTime 字段名称, 默认为 expireTime | |
ums.social.creatUserConnectionTableSql | String | "create table %s (%s varchar(255) not null,\n\t%s varchar(255) not null,\n\t%s varchar(255),\n\t%s int not null,\n\t%s varchar(255),\n\t%s varchar(512),\n\t%s varchar(512),\n\t%s varchar(512) not null,\n\t%s varchar(512),\n\t%s varchar(512),\n\t%s bigint,\n\tprimary key (%s, %s, %s),\n\tunique index UserConnectionRank(%s, %s, %s));" | 第三方登录用户数据库用户表创建语句。 修改第三方登录用户数据库用户表创建语句时,要注意:修改字段名称可以直接修改上面的字段名称即可,不用修改建表语句,不可以减少字段,但可以另外增加字段。 用户需要对第三方登录的用户表与 curd 的 sql 语句结构进行更改时, 必须实现对应的 UsersConnectionRepositoryFactory, 如果需要,请实现 UsersConnectionRepositoryFactory,可以参考 OAuth2UsersConnectionRepositoryFactory。 注意: sql 语句中的 %s 必须写上,且 %s 的顺序必须与后面的字段名称所对应的含义对应 : tableName、 userIdColumnName、 providerIdColumnName、 providerUserIdColumnName、 rankColumnName、 displayNameColumnName、 profileUrlColumnName、 imageUrlColumnName、 accessTokenColumnName、 secretColumnName、 refreshTokenColumnName、 expireTimeColumnName、 userIdColumnName、 providerIdColumnName、 providerUserIdColumnName、 userIdColumnName、 providerIdColumnName、 rankColumnName | |
ums.social.queryUserConnectionTableExistSql | String | SELECT COUNT(1) FROM information_schema.tables WHERE table_schema='%s' AND table_name = '%s' | 第三方登录用户数据库用户表查询 userIds 的查询语句。 注意: sql 语句中的 %s 必须写上,问号必须与指定的 %s 相对应,%s按顺序会用对应的 : databaseName、 tableName | |
ums.social.findUserIdsWithConnectionSql | String | select %s from %s where %s = ? and %s = ? | 第三方登录用户数据库用户表查询 userIds 的查询语句。 注意: sql 语句中的 %s 必须写上,问号必须与指定的 %s 相对应,%s按顺序会用对应的 : userIdColumnName、 tableName、 providerIdColumnName、 providerUserIdColumnName | |
ums.social.findUserIdsConnectedToSql | String | select %s from %S where %s = :%s and %s in (:%s) | 通过第三方服务提供商提供的 providerId 与 providerUserIds 从数据库用户表查询 userIds 的查询语句。 注意: sql 语句中的 %s 必须写上,问号必须与指定的 %s 相对应,%s按顺序会用对应的 : userIdColumnName、 tableName、 providerIdColumnName、 providerUserIdColumnName | |
ums.social.selectFromUserConnectionSql | String | select %s, %s, %s, %s, %s, %s, %s, %s, %s, %s from %s | 通过第三方服务提供商提供的 providerId 与 providerUserIds 从数据库用户表查询 userIds 的查询语句。 注意: sql 语句中的 %s 必须写上,问号必须与指定的 %s 相对应,%s按顺序会用对应的 : userIdColumnName、 providerIdColumnName、 providerUserIdColumnName、 displayNameColumnName、 profileUrlColumnName、 imageUrlColumnName、 accessTokenColumnName、 secretColumnName、 refreshTokenColumnName、 expireTimeColumnName、 tableName | |
ums.social.updateConnectionSql | String | update %s set %s = ?, %s = ?, %s = ?, %s = ?, %s = ?, %s = ?, %s = ? where %s = ? and %s = ? and %s = ? | 第三方登录用户数据库用户表更新语句。 注意: sql 语句中的 %s 必须写上,问号必须与指定的 %s 相对应,%s按顺序会用对应的 : tableName、 displayNameColumnName、 profileUrlColumnName、 imageUrlColumnName、 accessTokenColumnName、 secretColumnName、 refreshTokenColumnName、 expireTimeColumnName、 userIdColumnName、 providerIdColumnName、 providerUserIdColumnName | |
ums.social.addConnectionSql | String | insert into %s(%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) | 第三方登录用户数据库用户表添加用户语句。 注意: sql 语句中的 %s 必须写上,问号必须与指定的 %s 相对应,%s按顺序会用对应的 : tableName、 userIdColumnName、 providerIdColumnName、 providerUserIdColumnName、 rankColumnName、 displayNameColumnName、 profileUrlColumnName、 imageUrlColumnName、 accessTokenColumnName、 secretColumnName、 refreshTokenColumnName、 expireTimeColumnName | |
ums.social.addConnectionQueryForRankSql | String | select coalesce(max(%s) + 1, 1) as %s from %s where %s = ? and %s = ? | 第三方登录用户数据库用户表查询添加用户时的所需 rank 的值。 注意: sql 语句中的 %s 必须写上,问号必须与指定的 %s 相对应,%s按顺序会用对应的 : rankColumnName、 rankColumnName、 tableName、 userIdColumnName、 providerIdColumnName | |
ums.social.removeConnectionsSql | String | delete from %s where %s = ? and %s = ? | 第三方登录用户数据库用户表根据 userId 与 providerId 删除多个用户。 注意: sql 语句中的 %s 必须写上,问号必须与指定的 %s 相对应,%s按顺序会用对应的 : tableName、 userIdColumnName、 providerIdColumnName | |
ums.social.removeConnectionSql | String | delete from %s where %s = ? and %s = ? and %s = ? | 第三方登录用户数据库用户表根据 userId、providerId、providerUserId 删除一个用户。 注意: sql 语句中的 %s 必须写上,问号必须与指定的 %s 相对应,%s按顺序会用对应的 : tableName、 userIdColumnName、 providerIdColumnName、 providerUserIdColumnName |