CAS单点登录(第7版)13.票务
如有疑问,请看视频:CAS单点登录(第7版)
有两个核心的可配置工单组件:
部署环境和技术专业知识通常决定特定的 TicketRegistry 组件。建议对 HA 部署使用缓存支持的实现,而默认的内存注册表可能适用于小型部署。
-
-
-
- 执行器端点
-
-
CAS 提供以下端点:
DELETE | /cas/actuator/ticketRegistry/clean |
按需清理票据注册表,特别是当清理程序计划关闭并且您希望通过自己的调度程序手动强制清理时。
GET | /cas/actuator/ticketRegistry/ticketCatalog |
GET | /cas/actuator/ticketRegistry/query |
-
-
-
- 我该如何选择?
-
-
菜单上有各种各样的票务登记处。选择标准概述如下:
- 选择您最熟悉的技术,并具备排除故障、调整和扩展的技能和耐心,以取得成功。
- 选择一种不会强制将 CAS 配置绑定到集群中任何单个服务器/节点的技术,因为这将带来自动扩展问题和手动操作。
- 选择一种与您的网络和防火墙配置配合良好且性能足够高且可靠的技术,具体取决于您的网络拓扑。
- 选择一种在预期负载下显示有希望的结果的技术,并运行性能和压力测试。
- 选择一种尽可能不依赖外部流程和系统、自力更生且自包含的技术。
以上概述了您可能希望考虑的建议和指南。每个选项都有不同的优点和缺点,最后,您必须决定哪些缺点或优点可以为您提供最佳体验。
-
-
-
- 基于缓存的票据注册表
-
-
基于缓存的票据注册表为高可用性部署中的票据存储提供了高性能解决方案。提供了以下缓存技术的组件:
- Default
- Hazelcast
- Ignite
-
-
- 无状态票证注册表
-
-
无状态票证注册表不需要后端存储,但有一些注意事项和限制。提供了以下缓存技术的组件:
- Stateless
-
-
- 基于消息的票证注册表
-
-
- AMQP
- Google Cloud PubSub
-
-
- RDBMS 票证注册表
-
-
基于 RDBMS 的票证注册表提供跨多个 CAS 节点的分布式票证存储。提供了以下缓存技术的组件:
- JPA
-
-
- NoSQL 票证注册表
-
-
CAS 还支持各种其他数据库,包括 Redis、MongoDb 和 ApacheCassandra,用于票据存储和持久性:
- Redis
- MongoDb
- DynamoDb
- Google Cloud Firestore
-
-
- 安全缓存复制
-
-
许多基于缓存的票据注册表支持跨网络安全复制票据数据,以便在复制尝试时对票据进行加密和签名,以防止嗅探和窃听。有关更多信息,请参阅本指南。
-
-
-
- 工单注册表锁定
-
-
许多 ticket registry 支持针对高并发请求的高级分布式锁定操作,以协助数据同步和操作的原子性。有关更多信息,请参阅本指南。
CAS 支持可插拔、可扩展的策略框架,用于控制票证授予票证 (TGT) 和服务票证 (ST) 的过期策略。有关如何配置过期策略的详细信息,请参阅本指南。
JSON Web Token(JWT)是一种开放的行业标准 RFC 7519 方法,用于在两方之间安全地表示声明。还可以允许 CAS 完全创建签名/加密的 JWT,并将其以服务票证的形式传递回应用程序。
JWT 是完全独立的,包含经过身份验证的主体以及 JWT 声明形式的所有授权属性。
JCE 要求
确保在 ACS 使用的 Java 环境中安装了正确的 JCE 捆绑包,尤其是在需要使用特定的签名/加密算法和方法时。请务必为您的 Java 版本选择正确的 JCE 版本。可以通过 java -version 命令检测 Java 版本。
基于 JWT 的服务票证根据 CAS 协议定义的相同语义颁发给应用程序。CAS 通过其 /login 端点收到身份验证请求后,将通过请求的 http 方法有条件地以 ticket 参数的形式向应用程序颁发 JWT 服务票证。
默认情况下,所有 JWT 都由 CAS 根据部署期间生成和控制的密钥进行签名和加密。此类密钥可以与客户端应用程序交换,以解压缩 JWT 并访问声明。
请注意,根据上图,默认情况下,JWT 请求会在内部导致 CAS 为应用程序生成一个 ST,然后立即对其进行验证,以便访问与 CAS 服务注册表中的应用程序注册记录关联的每个策略的经过身份验证的主体和属性。此响应将转换为 JWT,然后将其传递到客户端应用程序。
换句话说,接收服务票证 (ST 并验证它的责任全部转移到 CAS 内部并由 CAS 处理。该应用程序只需要学习如何破译和解压缩最终的 JWT 并确保其有效性。
生成的 JWT 的过期时间由作为验证事件的一部分返回的断言的长度控制。如果未指定断言有效期长度,则过期时间由定义为 CAS 服务器的 SSO 过期策略一部分的 SSO 会话长度控制。
非 OpenID Connect
请记住,您只是以 JWT 的形式收到一个票证,因此您的客户端无需验证正常的服务票证。该票证由 CAS 在内部进行验证,您作为客户端仅负责验证 JWT 本身。不要将此与 OpenID Connect 混淆。虽然是 JWT,但令牌本身不是 ID 令牌,无法刷新,一旦您认为它已过期,就必须再次获取。如果需要更多,请考虑改用 OpenID Connect 协议。请注意,验证 JWT 的责任被推给了 Client 端,而不是 CAS 服务器本身。
CAS 提供以下端点:
GET | /cas/actuator/jwtTicketSigningPublicKey |
获取用于签名操作的公钥。
通过在 WAR 覆盖中包含以下依赖项来启用 JWT 支持:
Apache Maven
Gradle
BOM - Spring
BOM - Gradle
资源
1 2 3 4 5 6 7 8 9 10 | dependencies { /* The following platform references should be included automatically and are listed here for reference only. implementation enforcedPlatform("org.apereo.cas:cas-server-support-bom:${project.'cas.version'}") implementation platform(org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES)
*/ implementation "org.apereo.cas:cas-server-support-token-tickets" } |
CAS 配置目录中提供了以下设置和属性:
必填
自选
签名和加密
认证
笔记
下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。
Show entries
搜索:
· cas.authn.token.crypto.encryption.key= 加密密钥是一个 JWT,其长度由加密密钥大小设置定义。 此设置支持 Spring 表达式语言。 org.apereo.cas.configuration.model.core.util.EncryptionJwtCryptoProperties. 如何配置此属性? |
· cas.authn.token.crypto.signing.key= 签名密钥是一个 JWT,其长度由签名密钥大小设置定义。 此设置支持 Spring 表达式语言。 org.apereo.cas.configuration.model.core.util.SigningJwtCryptoProperties. 如何配置此属性? |
显示 1 到 2 的 2 个条目
上一页1下一页
-
-
-
- 注册客户端
-
-
在 CAS 服务注册表中向相关应用程序发出信号,以生成服务票证的 JWT:
1 2 3 4 5 6 7 8 9 10 11 12 13 | { "@class" : "org.apereo.cas.services.CasRegisteredService", "serviceId" : "^https://.*", "name" : "Sample", "id" : 10, "properties" : { "@class" : "java.util.HashMap", "jwtAsServiceTicket" : { "@class" : "org.apereo.cas.services.DefaultRegisteredServiceProperty", "values" : [ "java.util.HashSet", [ "true" ] ] } } } |
-
-
-
- 为每个服务配置密钥
-
-
默认情况下,用于编码 JWT 的签名和加密密钥对于 CAS 服务器是全局的,可以通过 CAS 设置进行定义。还可以基于每个服务覆盖全局密钥,从而允许每个应用程序使用自己的签名和加密密钥集。为此,请在注册表中配置服务定义以匹配以下内容:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | { "@class" : "org.apereo.cas.services.CasRegisteredService", "serviceId" : "^https://.*", "name" : "Sample", "id" : 10, "properties" : { "@class" : "java.util.HashMap", "jwtAsServiceTicket" : { "@class" : "org.apereo.cas.services.DefaultRegisteredServiceProperty", "values" : [ "java.util.HashSet", [ "true" ] ] }, "jwtAsServiceTicketSigningKey" : { "@class" : "org.apereo.cas.services.DefaultRegisteredServiceProperty", "values" : [ "java.util.HashSet", [ "..." ] ] }, "jwtAsServiceTicketEncryptionKey" : { "@class" : "org.apereo.cas.services.DefaultRegisteredServiceProperty", "values" : [ "java.util.HashSet", [ "..." ] ] }, "jwtAsServiceTicketCipherStrategyType" : { "@class" : "org.apereo.cas.services.DefaultRegisteredServiceProperty", "values" : [ "java.util.HashSet", [ "ENCRYPT_AND_SIGN" ] ] } } } |
可以使用以下密码策略类型:
类型 | 描述 |
ENCRYPT_AND_SIGN | 默认策略;encrypt 值,然后签名。 |
SIGN_AND_ENCRYPT | 对值进行签名,然后加密。 |
CAS 为各种模块和功能提供并识别以下属性:
Show entries
搜索:
名字 | 默认值 | 类型 | 群 |
jwtAsServiceTicket | false | BOOLEAN | JWT_SERVICE_TICKETS |
jwtAsServiceTicketCipherStrategyType | ENCRYPT_AND_SIGN | STRING | JWT_SERVICE_TICKETS |
jwtAsServiceTicketEncryptionAlg | STRING | JWT_SERVICE_TICKETS | |
jwtAsServiceTicketEncryptionEnabled | true | BOOLEAN | JWT_SERVICE_TICKETS |
jwtAsServiceTicketEncryptionKey | STRING | JWT_SERVICE_TICKETS |
显示 1 到 5 的 7 个条目
上一页12下一页
以下示例代码片段演示了如何验证和解析 CAS 生成的 JWT,该 JWT 是通过 AES 使用共享密钥创建的:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | import org.apache.commons.codec.binary.Base64; import org.jose4j.jwe.JsonWebEncryption; import org.jose4j.jwk.JsonWebKey; import org.jose4j.jws.JsonWebSignature; import org.jose4j.keys.AesKey; import java.nio.charset.StandardCharsets; import java.security.Key; ... var signingKey = "..."; var encryptionKey = "..."; var key = new AesKey(signingKey.getBytes(StandardCharsets.UTF_8)); var jws = new JsonWebSignature(); jws.setCompactSerialization(secureJwt); jws.setKey(key); if (!jws.verifySignature()) { throw new Exception("JWT verification failed"); } var decodedBytes = Base64.decodeBase64(jws.getEncodedPayload().getBytes(StandardCharsets.UTF_8)); var decodedPayload = new String(decodedBytes, StandardCharsets.UTF_8); var jwe = new JsonWebEncryption(); var jsonWebKey = JsonWebKey.Factory .newJwk("\n" + "{\"kty\":\"oct\",\n" + " \"k\":\"" + encryptionKey + "\"\n" + "}"); jwe.setCompactSerialization(decodedPayload); jwe.setKey(new AesKey(jsonWebKey.getKey().getEncoded())); System.out.println(jwe.getPlaintextString()); |
CAS 支持可插拔和可扩展的策略框架,以控制票证授予票证 (TGT)、代理授予票证 (PGT)、服务票证 (ST)、代理票证 (PT 等的过期策略。
注意
CAS 中还有许多其他类型的工件采用票据抽象的基本形式。每个协议或功能都可能引入带有自己的过期策略的新票证类型,您需要查阅该功能或行为的文档,以了解如何调整和控制特定票证类型的过期策略。
-
-
-
- 执行器端点
-
-
CAS 提供以下端点:
GET | /cas/actuator/ticketExpirationPolicies |
在给定可选服务 ID 的情况下生成过期策略。
-
-
-
- 可用策略
-
-
以下策略可用:
存储 | 描述 |
门票授予门票 | 请参阅本指南。 |
服务工单 | 请参阅本指南。 |
代理授予票证 | 请参阅本指南。 |
代理票 | 请参阅本指南。 |
临时会话票证 | 请参阅本指南。 |
TGT 过期策略控制经过身份验证的用户可以向 ST授予有效(未过期)TGT 的时间跨度,而无需重新进行身份验证。尝试授予具有过期 TGT 的 ST 将要求用户重新进行身份验证以获取新的(有效)TGT。
工单过期策略在以下条件下激活:
如果默认策略的超时值全部设置为零或更小,则 CAS 应确保票证永远不会被视为过期。
禁用策略要求将其所有超时设置设置为等于或小于零的值。
如果未确定票证过期策略,CAS 应确保票证始终被视为已过期。
保留您需要的!
建议您仅保留和维护特定策略所需的属性和设置。没有必要获取所有字段的副本或保留副本作为参考,同时将它们注释掉。这种策略最终会导致糟糕的升级,增加中断更改的机会,并导致部署混乱。
工单过期策略按以下顺序激活:
如果相应地配置了默认策略的设置,则票证永远不会过期。
超时
Default
限制超时
硬超时
票证总是立即过期。
Default
按主要
每项服务
超时
硬超时
扼杀
从不
此策略提供了硬性退出和滑动窗口。
CAS 配置目录中提供了以下设置和属性:
自选
笔记
下面列出的配置设置在 CAS 配置元数据中标记为 Optional(可选)。This标志表示在最终用户 CAS 配置中不需要立即存在该设置,因为分配了默认值,或者该功能的激活不受设置值有条件地控制。换句话说,仅当需要修改默认值或需要打开由设置控制的功能时,才应在配置中包含此字段。
Show entries
搜索:
· cas.ticket.tgt.core.max-length=50 票证的最大长度。 org.apereo.cas.configuration.model.core.ticket.TicketGrantingTicketCoreProperties. 如何配置此属性? |
· cas.ticket.tgt.core.only-track-most-recent-session=true 用于控制是否跟踪最近的 SSO 会话的标志。由于可能会为同一应用程序颁发多个票证,这会影响跟踪每个票证的会话信息的方式,进而对注销产生后续影响。 org.apereo.cas.configuration.model.core.ticket.TicketGrantingTicketCoreProperties. 如何配置此属性? |
· cas.ticket.tgt.primary.max-time-to-live-in-seconds=PT8H 票证将在 CAS 服务器中处于活动状态的最长时间(以秒为单位)。 此设置支持java.time.Duration 语法 [?]。 org.apereo.cas.configuration.model.core.ticket.PrimaryTicketExpirationPolicyProperties. 如何配置此属性? |
· cas.ticket.tgt.primary.time-to-kill-in-seconds=PT2H 在一段时间不活动后销毁票证的时间(以秒为单位)。 此设置支持java.time.Duration 语法 [?]。 org.apereo.cas.configuration.model.core.ticket.PrimaryTicketExpirationPolicyProperties. 如何配置此属性? |
显示 1 到 4 的 4 个条目
上一页1下一页
-
-
-
- 我该如何选择?
-
-
更改 TGT 策略是一个组织策略问题,通常控制整个 SSO 会话的长度以获得最佳用户体验。除非您有充分的理由这样做,或者业务使用案例规定了某个场景,否则默认值通常是合适的。总的来说,您希望尝试将 SSO 会话的长度保持在最低限度,以避免安全问题,但又不能太小,以免用户对重复登录感到烦恼。
PGT 过期策略控制 CAS 可以向 PT授予有效(未过期)PGT 的时间跨度。
CAS 配置目录中提供了以下设置和属性:
自选
笔记
下面列出的配置设置在 CAS 配置元数据中标记为 Optional(可选)。This标志表示在最终用户 CAS 配置中不需要立即存在该设置,因为分配了默认值,或者该功能的激活不受设置值有条件地控制。换句话说,仅当需要修改默认值或需要打开由设置控制的功能时,才应在配置中包含此字段。
Show entries
搜索:
· cas.ticket.pgt.max-length=50 生成代理授予票证时的最大长度。 org.apereo.cas.configuration.model.core.ticket.ProxyGrantingTicketProperties. 如何配置此属性? |
显示 1 到 1 的 1 个条目
上一页1下一页
-
-
-
- 每项服务
-
-
代理授予票证的过期策略可以按应用程序有条件地决定。其代理授予票证过期策略的候选服务必须设计成这样:
1 2 3 4 5 6 7 8 9 10 | { "@class" : "org.apereo.cas.services.CasRegisteredService", "serviceId" : "^https://.*", "name" : "Sample", "id" : 10, "proxyGrantingTicketExpirationPolicy": { "@class": "org.apereo.cas.services.DefaultRegisteredServiceProxyGrantingTicketExpirationPolicy", "maxTimeToLiveInSeconds": 30 } } |
ST 过期策略控制经过身份验证的用户可以尝试验证 ST 的时间跨度。
应用于服务票证的默认策略是,票证在固定使用次数后或经过最长非活动时间后过期。
CAS 配置目录中提供了以下设置和属性:
自选
笔记
下面列出的配置设置在 CAS 配置元数据中标记为 Optional(可选)。This标志表示在最终用户 CAS 配置中不需要立即存在该设置,因为分配了默认值,或者该功能的激活不受设置值有条件地控制。换句话说,仅当需要修改默认值或需要打开由设置控制的功能时,才应在配置中包含此字段。
Show entries
搜索:
· cas.ticket.st.max-length=20 生成的服务工单的最大长度。 org.apereo.cas.configuration.model.core.ticket.ServiceTicketProperties. 如何配置此属性? |
· cas.ticket.st.number-of-uses=1 控制服务票证可在 CAS 服务器中使用的次数。在 CAS 上下文中的用法是指服务票证验证事务。 org.apereo.cas.configuration.model.core.ticket.ServiceTicketProperties. 如何配置此属性? |
· cas.ticket.st.time-to-kill-in-seconds=PT10S 在 CAS 服务器中应将服务票证视为实时的时间(以秒为单位)。 此设置支持java.time.Duration 语法 [?]。 org.apereo.cas.configuration.model.core.ticket.ServiceTicketProperties. 如何配置此属性? |
显示 1 到 3 个条目中的 3 个
上一页1下一页
-
-
-
- 每项服务
-
-
服务工单的过期策略可以按应用程序有条件地决定。服务票证过期策略要偏离默认配置的候选服务必须设计如下:
1 2 3 4 5 6 7 8 9 10 11 | { "@class" : "org.apereo.cas.services.CasRegisteredService", "serviceId" : "^https://.*", "name" : "Sample", "id" : 10, "serviceTicketExpirationPolicy": { "@class": "org.apereo.cas.services.DefaultRegisteredServiceServiceTicketExpirationPolicy", "numberOfUses": 1, "timeToLive": "10" }} |
PT 过期策略控制经过身份验证的用户可以尝试验证 PT 的时间跨度。
应用于代理票证的默认策略是,票证在固定使用次数后或经过最长非活动时间后过期。
CAS 配置目录中提供了以下设置和属性:
自选
笔记
下面列出的配置设置在 CAS 配置元数据中标记为 Optional(可选)。This标志表示在最终用户 CAS 配置中不需要立即存在该设置,因为分配了默认值,或者该功能的激活不受设置值有条件地控制。换句话说,仅当需要修改默认值或需要打开由设置控制的功能时,才应在配置中包含此字段。
Show entries
搜索:
· cas.ticket.pt.number-of-uses=1 允许的使用次数。 org.apereo.cas.configuration.model.core.ticket.ProxyTicketProperties. 如何配置此属性? |
· cas.ticket.pt.time-to-kill-in-seconds=10 此工单失效后的秒数。 org.apereo.cas.configuration.model.core.ticket.ProxyTicketProperties. 如何配置此属性? |
显示 1 到 2 的 2 个条目
上一页1下一页
-
-
-
- 每项服务
-
-
代理票证的过期策略可以按应用程序有条件地决定。代理票证过期策略要偏离默认配置的候选服务必须设计如下:
1 2 3 4 5 6 7 8 9 10 11 | { "@class" : "org.apereo.cas.services.CasRegisteredService", "serviceId" : "^https://.*", "name" : "Sample", "id" : 10, "proxyTicketExpirationPolicy": { "@class": "org.apereo.cas.services.DefaultRegisteredServiceProxyTicketExpirationPolicy", "numberOfUses": 1, "timeToLive": "30" } } |
TST 过期策略控制 CAS 可以跟踪与会话关联的特定活动的时间跨度。
CAS 配置目录中提供了以下设置和属性:
自选
笔记
下面列出的配置设置在 CAS 配置元数据中标记为 Optional(可选)。This标志表示在最终用户 CAS 配置中不需要立即存在该设置,因为分配了默认值,或者该功能的激活不受设置值有条件地控制。换句话说,仅当需要修改默认值或需要打开由设置控制的功能时,才应在配置中包含此字段。
Show entries
搜索:
· cas.ticket.tst.number-of-uses=1 控制票据在 CAS 服务器中可以使用的次数。 org.apereo.cas.configuration.model.core.ticket.TransientSessionTicketProperties. 如何配置此属性? |
· cas.ticket.tst.time-to-kill-in-seconds=15 此工单失效后的秒数。 org.apereo.cas.configuration.model.core.ticket.TransientSessionTicketProperties. 如何配置此属性? |
显示 1 到 2 的 2 个条目
上一页1下一页
许多票证注册表支持对高并发请求执行高级分布式锁定操作。在 CAS 服务器负载非常重的情况下,多个请求可能会同时尝试更改服务器状态。例如,您可以考虑同时请求两个单独的应用程序的服务票证,其中生成的票证和操作最终会更改单点登录会话的状态、linked票证授予票证以及它跟踪两个应用程序的方式。在这种情况下,可以将 CAS 配置为获取和强制执行锁定操作,以便以原子方式处理执行和请求的顺序,并保留适当的数据和状态,以便并发请求不会导致数据丢失和缺少更新。
默认情况下,锁定策略和选项可用于默认票证注册表实现。如果票据注册表技术确实支持分布式锁定,CAS 将遵循票据注册表本身提供和支持的分布式锁实现。与往常一样,如果所选的注册表技术尚不支持它,则可以开始设计自己的锁定策略。
CAS 锁实现通常由 Spring 集成支持,其行为可以通过 CAS 设置进行控制。
CAS 配置目录中提供了以下设置和属性:
自选
笔记
下面列出的配置设置在 CAS 配置元数据中标记为 Optional(可选)。This标志表示在最终用户 CAS 配置中不需要立即存在该设置,因为分配了默认值,或者该功能的激活不受设置值有条件地控制。换句话说,仅当需要修改默认值或需要打开由设置控制的功能时,才应在配置中包含此字段。
Show entries
搜索:
· cas.ticket.registry.core.enable-locking=true 当设置为 true 时,注册表操作将开始支持票证操作的分布式锁定。如果注册表本身支持分布式锁定,例如 JDBC 或 Redis,那么锁定实现将遵循该选项。否则,默认锁定解决方案将特定于 CAS 服务器节点,直到替换为独立于注册表技术本身的锁定实现或不同的锁定选项。 org.apereo.cas.configuration.model.core.ticket.registry.TicketRegistryCoreProperties. 如何配置此属性? |
· cas.ticket.registry.core.queue-identifier= 此 CAS 服务器节点的标识符,用于标记队列中的发送方/接收方并避免处理入站呼叫。如果留空,则自动生成标识符并保存在内存中。 org.apereo.cas.configuration.model.core.ticket.registry.TicketRegistryCoreProperties. 如何配置此属性? |
显示 1 到 2 的 2 个条目
上一页1下一页
默认锁实现通常适用于单节点部署,是锁注册表使用 Masked Hashcode 算法在 JVM 内存中获取和存储锁的实现。默认掩码为 0xFF它将创建一个由 1024 ReentrantLock 实例组成的数组。当锁存储库尝试获取给定锁键(即票证 ID)的锁时,Lock 的索引是通过屏蔽对象的哈希代码来确定的,并返回 Lock。
要设计自己的锁定实现,您可以将以下@Bean注入到 CAS 配置中:
1 2 3 4 | @Beanpublic LockRepository casTicketRegistryLockRepository() { return new MyLockRepository();} |
请参阅本指南,了解有关如何将配置注册到 CAS 运行时的更多信息。
分布式锁定支持可用于某些(但不是全部)票证注册表实现。请参阅每个票据注册表实施的文档,以了解是否支持分布式锁定。
系统会自动安排一个后台清理进程,以定期扫描 chosen 注册表实施,并根据配置的阈值参数删除过期的记录。
CAS 配置目录中提供了以下设置和属性:
自选
笔记
下面列出的配置设置在 CAS 配置元数据中标记为 Optional(可选)。This标志表示在最终用户 CAS 配置中不需要立即存在该设置,因为分配了默认值,或者该功能的激活不受设置值有条件地控制。换句话说,仅当需要修改默认值或需要打开由设置控制的功能时,才应在配置中包含此字段。
Show entries
搜索:
· cas.ticket.registry.cleaner.schedule.cron-expression= 一个类似 cron 的表达式,扩展了通常的 UN*X 定义,以包括秒、分钟、小时、月日、月和星期几的触发器。例如,0 * * * * MON-FRI 表示工作日每分钟一次(在分钟的顶部 - 第 0 秒),或 0 0 0 * * * 表示每天午夜。* 请注意,定义 cron 表达式时,必须删除 start delay 和 repeat interval 设置并将其设置为空白。 org.apereo.cas.configuration.model.support.quartz.SchedulingProperties. 如何配置此属性? |
· cas.ticket.registry.cleaner.schedule.cron-time-zone= 将解析 cron 表达式的时区。默认情况下,此属性为空(即将使用调度程序的时区)。 org.apereo.cas.configuration.model.support.quartz.SchedulingProperties. 如何配置此属性? |
· cas.ticket.registry.cleaner.schedule.enabled-on-host=.* 如果此属性与 CAS 服务器的主机名不匹配,则覆盖 SchedulingProperties#enabled 属性值 true。如果在 statefulset 中部署带有镜像的 CAS,其中所有名称都是可预测的,但很难为不同的服务器使用不同的配置,那么这可能很有用。该值可以是确切的主机名,也可以是将用于匹配主机名的正则表达式。 此设置支持正则表达式模式。[?]. org.apereo.cas.configuration.model.support.quartz.SchedulingProperties. 如何配置此属性? |
· cas.ticket.registry.cleaner.schedule.enabled=true 是否应启用计划程序来计划作业运行。 org.apereo.cas.configuration.model.support.quartz.SchedulingProperties. 如何配置此属性? |
· cas.ticket.registry.cleaner.schedule.repeat-interval=PT2M 为数据存储实施重新加载数据的重复间隔的字符串表示形式。这是连续任务执行之间的超时。 此设置支持java.time.Duration 语法 [?]。 org.apereo.cas.configuration.model.support.quartz.SchedulingProperties. 如何配置此属性? |
显示 1 到 5 的 6 个条目
上一页12下一页
在注册表实现无法通过后台任务自行自动逐出过期令牌和条目的情况下,票证注册表清理器通常很有用。如果策略参数化程度太高,或者具有许多其他动态条件,无法直接转换为票证注册表 API,则 CAS 中配置的票证过期策略不能直接与票证注册表 API 进行一对一匹配,则此方法也可能很有用。
请注意,CAS 本身将在获取和处理票证对象时按需删除过期的票证。票证注册表清理器使用案例主要处理过时的票证,否则这些票证永远不会被请求和处理,以根据需要完成按需清理过程。
清洁剂的使用
在群集 CAS 部署中,最好仅在一个指定的 CAS 节点上运行清理程序,并通过 CAS 设置在所有其他节点上将其关闭。保持清理程序在所有节点上运行可能会导致严重的性能和锁定问题。
默认注册表使用内存支持的内部并发映射来存储和检索票据,尽管也可以选择使用由缓存引擎支持的实现,以便在驱逐过期票据时获得略微更好的性能。
CAS 配置目录中提供了以下设置和属性:
必填
自选
签名和加密
笔记
下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。
Show entries
搜索:
· cas.ticket.registry.in-memory.crypto.encryption.key= 加密密钥。默认情况下,除非另有指定,否则加密密钥必须是随机生成的字符串,其长度由加密密钥大小设置定义。 org.apereo.cas.configuration.model.core.util.EncryptionRandomizedCryptoProperties. 如何配置此属性? |
· cas.ticket.registry.in-memory.crypto.signing.key= 签名密钥是一个 JWT,其长度由签名密钥大小设置定义。 此设置支持 Spring 表达式语言。 org.apereo.cas.configuration.model.core.util.SigningJwtCryptoProperties. 如何配置此属性? |
显示 1 到 2 的 2 个条目
上一页1下一页
-
-
-
- 驱逐策略
-
-
此票据注册表依赖于一个后台作业,该作业会自动安排在注册表之后进行清理并删除过期的票据。清理程序将定期检查注册表的状态以识别过期的票据,将其从注册表中删除,然后执行相关的注销操作。
-
-
-
- 聚类
-
-
默认情况下,此注册表不会在重新启动时保留票据状态,并且不是以主动/主动模式部署的群集 CAS 环境的合适解决方案。票证被管理和存储在绑定到 CAS 服务器节点的运行时内存中,这意味着当 CAS 服务器 B 收到对同一票证的请求时,无法找到和接受由 CAS 服务器 A 创建和管理的票证对象。
但是,注册表确实提供了用于广播票证操作结果的扩展点。Pub/Sub 类型的设置可以利用此类扩展点,以允许注册表在集群环境中运行,并在所有 CAS 服务器节点之间共享票证状态,使它们保持同步。一些票证注册表(如 AMQP 票证注册表)能够执行此操作。
无状态票据注册表是一种票据注册表,它不会通过后端存储技术以持久方式跟踪或存储票据。所有生成的票据都是自包含的,并且能够携带自己的状态,这反过来又使它们可以在 CAS 节点和群集部署之间移植。每张票据都经过数字加密,以确保其完整性和机密性。此外,生成的票证会尽可能地压缩,并限制为预定义的大小,以确保尽可能与各种 CAS 客户端向后兼容。
通过在 WAR 覆盖中包含以下依赖项来启用支持:
Apache Maven
Gradle
BOM - Spring
BOM - Gradle
资源
1 2 3 4 5 6 7 8 9 10 | dependencies { /* The following platform references should be included automatically and are listed here for reference only. implementation enforcedPlatform("org.apereo.cas:cas-server-support-bom:${project.'cas.version'}") implementation platform(org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES)
*/ implementation "org.apereo.cas:cas-server-support-stateless-ticket-registry"} |
-
-
-
- 特征
-
-
不需要存在、配置、安装、管理、维护、调整等集中式后端存储或缓存技术。
…因此,您无需担心存储架构升级、迁移等。
…因此,您无需担心清理过期的工单或垃圾回收工单实体。
…因此,您无需担心在集群部署和 Sync 状态下在 CAS 节点之间共享票据。
…因此,如果您的 CAS 部署是云原生的,则无需支付存储或可能的缓存技术许可证费用。
上述功能确实有许多注意事项和限制。见下文。
-
-
-
- 支持的协议
-
-
支持 CAS 协议。
支持 SAML1 协议。
支持 SAML2 协议,但以下情况除外:
SAML2 属性查询
支持 OAuth2 协议,但以下情况除外:
设备授权
代币兑换
支持 OpenID Connect 协议,但以下情况除外:
DPoP
怎么样。。。?
请记住,并非所有与票据注册表交互以创建、更新、获取或删除票据的 CAS 模块和功能都受支持。目标是从一小批最常见的特性和功能开始,然后迭代地增长和改进。如果您确实发现可能缺失或功能失调的内容,请调查、隔离、验证并考虑提供修复程序。
-
-
-
- 建议
-
-
将服务票证的过期策略增加到 30 秒左右,以便解密操作及时解码票证。
为所有身份验证处理程序分配名称,最好是简短的名称。
对应用程序使用较短的 URL,尤其是使用 CAS 协议的应用程序。这将有助于最小化生成的服务票证的大小。
-
-
-
- 警告
-
-
无状态票证注册表可能不是适合所有部署场景的解决方案,它的使用和采用确实需要许多妥协和安全权衡。以下是应注意的限制和注意事项列表:
生活建议
根据您的观点,上述任何一项警告都可以被视为轻微的安全失误。减少生成的工单的安全限制或无法远程管理单点登录会话等可能会破坏您的交易。毋庸置疑,在决定使用此选项或任何与此相关的选项之前,您应该仔细检查和了解安全性权衡。
所有生成的工单的过期策略都设置为忽略可重用性或空闲/非活动限制,并设置为仅强制执行过期瞬间。
生成的票证通常控制为不超过 256 个字符。您可能需要调整所选的 servlet 容器,以允许更大的表单/响应标头大小。同样,您必须确保您的应用程序,尤其是那些处理 CAS 或 OpenID Connect 协议的应用程序,可以使用更大和更长的票证和令牌大小。
可能会对生成的服务票证的大小产生负面影响的超长应用程序 URL 使用预定义的适度缩短技术进行压缩,而专用票证验证策略又会考虑到该技术。为了获得最佳结果(对于所有 CAS 支持的协议都是如此),建议应用程序使用较短的 URL。
为了最大限度地缩短生成的票证的长度,仅对票证进行加密。
最终用户的浏览器会话管理功能在所有无状态票证交换中都大量使用。浏览器必须能够支持 i.即 local/session 存储。
重要:在身份验证事务的第一阶段生成和收集的所有属性都将在反向通道票证验证尝试期间丢失并忽略。此类尝试指示 CAS 再次从配置的属性存储库中获取所有属性。换句话说,如果您的属性在身份验证事务期间由身份验证处理程序和系列仅生成一次,则还必须配置属性存储库,以便在票证验证操作期间再次获取属性。
在没有中央后端存储服务的情况下,不支持反向通道单点注销操作。同样,所有请求活动单点登录会话的操作或通常处理跟踪单点登录会话的任何操作都超出了范围,不太可能受支持。您将无法确定用户是否已登录,因此无法以管理方式终止用户的会话。
CAS 可以通过各种消息传递系统启用,以便分发和共享票证数据:从简化 AMQP API 的使用到异步接收消息的完整基础设施。
此注册表在很大程度上是默认票据注册表的扩展。区别在于,应用于注册表的票证操作使用消息队列广播到队列中的其他侦听 CAS 节点。每个节点都自己保留工单状态的副本,并且仅通过广播与每个节点关联的消息和数据来指示其他节点保持其副本准确。在集群的 CAS 节点内运行的每个消息和票据注册表实例都标有唯一标识符,以避免无限循环行为和递归不必要的入站操作。
广播和消息队列由高级消息队列协议 (AMQP) 协议提供支持。这是一个平台中立的有线级协议,适用于面向消息的中间件。此协议的实现由 RabbitMQ 提供支持。这是一个基于 AMQP 协议的轻量级、可靠、可扩展且可移植的消息代理。CAS 使用 RabbitMQ 通过 AMQP 协议进行通信。
通过在覆盖中包含以下依赖项来启用支持:
Apache Maven
Gradle
BOM - Spring
BOM - Gradle
资源
1 2 3 4 5 6 7 8 9 10 | dependencies { /* The following platform references should be included automatically and are listed here for reference only. implementation enforcedPlatform("org.apereo.cas:cas-server-support-bom:${project.'cas.version'}") implementation platform(org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES)
*/ implementation "org.apereo.cas:cas-server-support-amqp-ticket-registry"} |
-
-
-
- CAS 配置
-
-
CAS 配置目录中提供了以下设置和属性:
必填
自选
签名和加密
第三方
笔记
下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。
Show entries
搜索:
· cas.ticket.registry.in-memory.crypto.encryption.key= 加密密钥。默认情况下,除非另有指定,否则加密密钥必须是随机生成的字符串,其长度由加密密钥大小设置定义。 org.apereo.cas.configuration.model.core.util.EncryptionRandomizedCryptoProperties. 如何配置此属性? |
· cas.ticket.registry.in-memory.crypto.signing.key= 签名密钥是一个 JWT,其长度由签名密钥大小设置定义。 此设置支持 Spring 表达式语言。 org.apereo.cas.configuration.model.core.util.SigningJwtCryptoProperties. 如何配置此属性? |
显示 1 到 2 的 2 个条目
上一页1下一页
-
-
-
- 执行器端点
-
-
CAS 提供以下端点:
GET | /cas/actuator/health |
报告由各种监视器生成的系统的一般运行状况。
GET | /cas/actuator/health/{path} |
-
-
-
- 故障排除
-
-
要启用其他日志记录,请配置 log4j 配置文件以添加以下级别:
1 2 3 4 5 6 7 8 9 10 11 | ...<Logger name="org.springframework.amqp" level="debug" additivity="false"> <AppenderRef ref="casConsole"/> <AppenderRef ref="casFile"/></Logger> <Logger name="com.rabbitmq" level="debug" additivity="false"> <AppenderRef ref="casConsole"/> <AppenderRef ref="casFile"/></Logger> ... |
Kafka 票据注册表在很大程度上是默认票据注册表的扩展。区别在于,应用于注册表的票证操作使用 Kafka 主题广播到其他侦听 CAS 节点。每个节点都自己保留工单状态的副本,并且仅通过广播与每个节点关联的消息和数据来指示其他节点保持其副本准确。在集群的 CAS 节点内运行的每个消息和票据注册表实例都标有唯一标识符,以避免无限循环行为和递归不必要的入站操作。
广播和发布/订阅机制由 Apache Kafka 提供支持。Apache Kafka 是一个分布式事件流平台,旨在处理实时数据源。Kafka 具有高度可扩展性和容错能力,非常适合构建实时数据管道和流式应用程序。
Apache Kafka 的主要功能包括:
Message Broker:Kafka 充当分布式消息传递系统,支持实时发布、存储和处理数据流。
生产者和使用者:数据由 Kafka 中的生产者生成并由使用者使用。创建者向 Kafka 主题发送消息,使用者从这些主题中读取消息。
主题:主题是记录发送到的类别或流名称。根据主题在多个 Kafka 代理之间对数据进行分区。
通过在覆盖中包含以下依赖项来启用支持:
Apache Maven
Gradle
BOM - Spring
BOM - Gradle
资源
1 2 3 4 5 6 7 8 9 10 | dependencies { /* The following platform references should be included automatically and are listed here for reference only. implementation enforcedPlatform("org.apereo.cas:cas-server-support-bom:${project.'cas.version'}") implementation platform(org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES)
*/ implementation "org.apereo.cas:cas-server-support-kafka-ticket-registry"} |
-
-
-
- CAS 配置
-
-
CAS 配置目录中提供了以下设置和属性:
必填
自选
签名和加密
笔记
下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。
Show entries
搜索:
· cas.ticket.registry.in-memory.crypto.encryption.key= 加密密钥。默认情况下,除非另有指定,否则加密密钥必须是随机生成的字符串,其长度由加密密钥大小设置定义。 org.apereo.cas.configuration.model.core.util.EncryptionRandomizedCryptoProperties. 如何配置此属性? |
· cas.ticket.registry.in-memory.crypto.signing.key= 签名密钥是一个 JWT,其长度由签名密钥大小设置定义。 此设置支持 Spring 表达式语言。 org.apereo.cas.configuration.model.core.util.SigningJwtCryptoProperties. 如何配置此属性? |
· cas.ticket.registry.kafka.crypto.encryption.key= 加密密钥。默认情况下,除非另有指定,否则加密密钥必须是随机生成的字符串,其长度由加密密钥大小设置定义。 org.apereo.cas.configuration.model.core.util.EncryptionRandomizedCryptoProperties. 如何配置此属性? |
· cas.ticket.registry.kafka.crypto.signing.key= 签名密钥是一个 JWT,其长度由签名密钥大小设置定义。 此设置支持 Spring 表达式语言。 org.apereo.cas.configuration.model.core.util.SigningJwtCryptoProperties. 如何配置此属性? |
显示 1 到 4 的 4 个条目
上一页1下一页
-
-
-
- 故障排除
-
-
要启用其他日志记录,请配置 log4j 配置文件以添加以下级别:
1 2 3 4 5 6 | ...<Logger name="org.apache.kafka" level="debug" additivity="false"> <AppenderRef ref="casConsole"/> <AppenderRef ref="casFile"/></Logger> ... |
此注册表在很大程度上是默认票据注册表的扩展。区别在于,应用于注册表的票证操作是使用 Google Cloud 的 PubSub 广播的。
每个节点都自己保留工单状态的副本,并且仅通过广播与每个节点关联的消息和数据来指示其他节点保持其副本准确。在集群的 CAS 节点内运行的每个消息和票据注册表实例都标有唯一标识符,以避免无限循环行为和递归不必要的入站操作。
消息排序
此注册表实现要求您通过 CAS 设置启用消息排序。
通过在覆盖中包含以下依赖项来启用支持:
Apache Maven
Gradle
BOM - Spring
BOM - Gradle
资源
1 2 3 4 5 6 7 8 9 10 | dependencies { /* The following platform references should be included automatically and are listed here for reference only. implementation enforcedPlatform("org.apereo.cas:cas-server-support-bom:${project.'cas.version'}") implementation platform(org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES)
*/ implementation "org.apereo.cas:cas-server-support-gcp-pubsub-ticket-registry"} |
集成支持由 Spring Cloud GCP 项目提供支持。他们的参考文档提供了有关如何将 Google Cloud API 与 CAS 集成的详细信息。
要了解如何设置应用程序默认凭证,请查看此页面。
-
-
-
- CAS 配置
-
-
CAS 配置目录中提供了以下设置和属性:
必填
自选
签名和加密
第三方
笔记
下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。
Show entries
搜索:
· cas.ticket.registry.in-memory.crypto.encryption.key= 加密密钥。默认情况下,除非另有指定,否则加密密钥必须是随机生成的字符串,其长度由加密密钥大小设置定义。 org.apereo.cas.configuration.model.core.util.EncryptionRandomizedCryptoProperties. 如何配置此属性? |
· cas.ticket.registry.in-memory.crypto.signing.key= 签名密钥是一个 JWT,其长度由签名密钥大小设置定义。 此设置支持 Spring 表达式语言。 org.apereo.cas.configuration.model.core.util.SigningJwtCryptoProperties. 如何配置此属性? |
显示 1 到 2 的 2 个条目
上一页1下一页
-
-
-
- 执行器端点
-
-
CAS 提供以下端点:
GET | /cas/actuator/health |
报告由各种监视器生成的系统的一般运行状况。
GET | /cas/actuator/health/{path} |
云监控
要成功使用 Spring Cloud GCP 执行器端点,您还需要启用 Cloud Monitoring API。
-
-
-
- 故障排除
-
-
要启用其他日志记录,请配置 log4j 配置文件以添加以下级别:
1 2 3 4 5 6 | ...<Logger name="com.google.cloud" level="debug" additivity="false"> <AppenderRef ref="casConsole"/> <AppenderRef ref="casFile"/></Logger> ... |
Firestore 是一个 NoSQL 文档数据库,专为实现自动扩展、高性能和简化应用程序开发而构建。虽然 Firestore 接口具有许多与传统数据库相同的功能,但作为 NoSQL 数据库,它在描述数据对象之间关系的方式上与它们不同。
通过在覆盖中包含以下依赖项来启用支持:
Apache Maven
Gradle
BOM - Spring
BOM - Gradle
资源
1 2 3 4 5 6 7 8 9 10 | dependencies { /* The following platform references should be included automatically and are listed here for reference only. implementation enforcedPlatform("org.apereo.cas:cas-server-support-bom:${project.'cas.version'}") implementation platform(org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES)
*/ implementation "org.apereo.cas:cas-server-support-gcp-pubsub-ticket-registry"} |
集成支持由 Spring Cloud GCP 项目提供支持。他们的参考文档提供了有关如何将 Google Cloud API 与 CAS 集成的详细信息。
请注意,CAS 将自动创建每种票据类型所需的相应集合。但是,高级使用案例的 TTL 过期策略和字段索引不是由 CAS 自动创建的,可能需要手动干预。
要了解如何设置应用程序默认凭证,请查看此页面。
-
-
-
- CAS 配置
-
-
CAS 配置目录中提供了以下设置和属性:
必填
自选
签名和加密
第三方
笔记
下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。
Show entries
搜索:
· cas.ticket.registry.google-cloud-firestore.crypto.encryption.key= 加密密钥。默认情况下,除非另有指定,否则加密密钥必须是随机生成的字符串,其长度由加密密钥大小设置定义。 org.apereo.cas.configuration.model.core.util.EncryptionRandomizedCryptoProperties. 如何配置此属性? |
· cas.ticket.registry.google-cloud-firestore.crypto.signing.key= 签名密钥是一个 JWT,其长度由签名密钥大小设置定义。 此设置支持 Spring 表达式语言。 org.apereo.cas.configuration.model.core.util.SigningJwtCryptoProperties. 如何配置此属性? |
显示 1 到 2 的 2 个条目
上一页1下一页
-
-
-
- 故障排除
-
-
要启用其他日志记录,请配置 log4j 配置文件以添加以下级别:
1 2 3 4 5 6 | ...<Logger name="com.google.cloud" level="debug" additivity="false"> <AppenderRef ref="casConsole"/> <AppenderRef ref="casFile"/></Logger> ... |
Hazelcast Ticket Registry 是基于 Hazelcast 分布式网格库的分布式 Ticket Registry 实现。注册表实现是 cluster-aware 的,并且能够自动加入公开此注册表的所有 CAS 节点的群集。Hazelcast 将使用端口自动递增功能为集群的每个成员分配一个 TCP 端口,从最初提供的任意端口开始,默认情况下通常为 5701。
Hazelcast 将以非常有效的方式在集群的所有成员之间均匀分配工单数据。此外,默认情况下,每个节点上的数据收集都配置了 1 个备份副本,以便 Hazelcast 将使用它来保证强大的数据一致性,即如果任何其他主要数据所有者成员死亡,则不会发生 onlive 节点数据丢失。数据将在剩余的实时集群成员之间重新分区。
支持由以下模块启用:
Apache Maven
Gradle
BOM - Spring
BOM - Gradle
资源
1 2 3 4 5 6 7 8 9 10 | dependencies { /* The following platform references should be included automatically and are listed here for reference only. implementation enforcedPlatform("org.apereo.cas:cas-server-support-bom:${project.'cas.version'}") implementation platform(org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES)
*/ implementation "org.apereo.cas:cas-server-support-hazelcast-ticket-registry"} |
-
-
-
-
- 配置
-
-
-
该模块具有一个配置策略,默认情况下,该策略会自动配置票证注册表实现使用的 hazelcast 实例,以构建和检索 Hazelcast 映射以用于其分布式票证存储。在此自动配置模式下,hazelcast 配置的某些方面由 CAS 属性控制。
Hazelcast 配置
CAS 配置目录中提供了以下设置和属性:
自选
Groovy 脚本
笔记
下面列出的配置设置在 CAS 配置元数据中标记为 Optional(可选)。This标志表示在最终用户 CAS 配置中不需要立即存在该设置,因为分配了默认值,或者该功能的激活不受设置值有条件地控制。换句话说,仅当需要修改默认值或需要打开由设置控制的功能时,才应在配置中包含此字段。
Show entries
搜索:
· cas.ticket.registry.hazelcast.core.enable-compression=false 在使用默认 java 序列化时启用压缩。 org.apereo.cas.configuration.model.support.hazelcast.HazelcastCoreProperties. 如何配置此属性? |
· cas.ticket.registry.hazelcast.core.enable-jet=true 在 hazelcast 实例上启用 Jet 配置/服务。Hazelcast Jet 是一个分布式批处理和流处理系统,可以对大量数据进行有状态计算,并具有始终如一的低延迟。使用 SQL 服务执行 SQL 查询时,需要 Jet 服务。 org.apereo.cas.configuration.model.support.hazelcast.HazelcastCoreProperties. 如何配置此属性? |
· cas.ticket.registry.hazelcast.core.enable-management-center-scripting=true 从 管理中心启用脚本。 org.apereo.cas.configuration.model.support.hazelcast.HazelcastCoreProperties. 如何配置此属性? |
· cas.ticket.registry.hazelcast.core.license-key= Hazelcast 企业许可证密钥。 org.apereo.cas.configuration.model.support.hazelcast.HazelcastCoreProperties. 如何配置此属性? |
显示 1 到 4 的 4 个条目
上一页1下一页
Hazelcast 集群核心
CAS 配置目录中提供了以下设置和属性:
必填
自选
笔记
下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。
Show entries
搜索:
· cas.ticket.registry.hazelcast.cluster.core.instance-name= 实例名称。 此设置支持 Spring 表达式语言。 org.apereo.cas.configuration.model.support.hazelcast.HazelcastCoreClusterProperties. 如何配置此属性? |
显示 1 到 1 的 1 个条目
上一页1下一页
Hazelcast 集群联网
CAS 配置目录中提供了以下设置和属性:
必填
自选
笔记
下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。
Show entries
搜索:
· cas.ticket.registry.hazelcast.cluster.network.members= 设置已知成员。如果 members 为空,则调用该方法与调用 clear() 的效果相同。成员可以是逗号分隔的字符串,例如g 10.11.12.1,10.11.12.2,这表示将添加多个成员。成员列表必须包括 ALL CAS 服务器节点,包括拥有此配置的当前节点。 org.apereo.cas.configuration.model.support.hazelcast.HazelcastNetworkClusterProperties. 如何配置此属性? |
· cas.ticket.registry.hazelcast.cluster.network.port=5701 您可以指定 Hazelcast 将用于在集群成员之间通信的端口。此参数的名称为 port,其默认值为 5701。默认情况下,Hazelcast 将尝试绑定 100 个端口。这意味着,如果您将 port 的值设置为 5701,则当成员加入集群时,Hazelcast 会尝试查找介于 5701 和 5801 之间的端口。 org.apereo.cas.configuration.model.support.hazelcast.HazelcastNetworkClusterProperties. 如何配置此属性? |
显示 1 到 2 的 2 个条目
上一页1下一页
Hazelcast 网络 TLS 加密
您可以使用 TLS(传输层安全性)协议在具有密钥存储和信任存储的 Hazelcast 集群之间建立加密通信。Hazelcast 允许您加密 Hazelcast 成员之间以及 Hazelcast 客户端和成员之间的套接字级通信,以实现端到端加密。
用法
Hazelcast SSL 是一项企业功能。您需要适当的 Hazelcast Enterprise 许可证才能使用此功能。
Hazelcast 提供了一个默认的 SSL 上下文工厂实现,当启用该实现时,它由 CAS 指导和自动配置,以使用配置的密钥库来初始化 SSL 上下文。
CAS 配置目录中提供了以下设置和属性:
自选
笔记
下面列出的配置设置在 CAS 配置元数据中标记为 Optional(可选)。This标志表示在最终用户 CAS 配置中不需要立即存在该设置,因为分配了默认值,或者该功能的激活不受设置值有条件地控制。换句话说,仅当需要修改默认值或需要打开由设置控制的功能时,才应在配置中包含此字段。
Show entries
搜索:
· cas.ticket.registry.hazelcast.cluster.network.ssl.cipher-suites= 允许使用的密码套件名称的逗号分隔列表。其默认值是 Java 运行时中所有受支持的套件。 org.apereo.cas.configuration.model.support.hazelcast.HazelcastNetworkSslProperties. 如何配置此属性? |
· cas.ticket.registry.hazelcast.cluster.network.ssl.key-manager-algorithm= 提供身份验证密钥所基于的算法的名称。 org.apereo.cas.configuration.model.support.hazelcast.HazelcastNetworkSslProperties. 如何配置此属性? |
· cas.ticket.registry.hazelcast.cluster.network.ssl.key-store-type=JKS 密钥库的类型。其默认值为 JKS。另一种常用的类型是 PKCS12。可用的密钥库/信任库类型取决于您的操作系统和 Java 运行时。仅在使用相互身份验证时需要。 org.apereo.cas.configuration.model.support.hazelcast.HazelcastNetworkSslProperties. 如何配置此属性? |
· cas.ticket.registry.hazelcast.cluster.network.ssl.keystore-password= 用于从密钥库文件访问密钥的密码。仅在使用相互身份验证时需要。 org.apereo.cas.configuration.model.support.hazelcast.HazelcastNetworkSslProperties. 如何配置此属性? |
· cas.ticket.registry.hazelcast.cluster.network.ssl.keystore= 密钥库文件的路径。仅在使用相互身份验证时需要。 org.apereo.cas.configuration.model.support.hazelcast.HazelcastNetworkSslProperties. 如何配置此属性? |
显示 1 到 5 的 12 个条目
上一页123下一页
性能
在 Linux 下,JVM 自动使用 /dev/random 来生成随机数。如果此熵不足以跟上需要随机数的速率,则可能会减慢加密/解密的速度,因为它可能会阻塞几分钟等待足够的熵。这可以通过设置 -Djava.security.egd=file:/dev/./urandom 系统属性来修复。请注意,如果熵不足,此选项不会阻止,并且返回的随机值理论上可能容易受到加密攻击。
会话监控
请注意,在非常重的负载下,并且随着时间的推移,给定非常大的票证集合,CAS 的会话监控功能(基于底层 Hazelcast 票证注册表报告回溯票证统计信息)最终可能会超时。这是因为担心 Hazelcast 试图在整个网络上运行分布式查询,以收集、分析和聚合可能仍然有效或不断变化的票证。如果您确实遇到此行为,最好关闭会话监视器。
有关可用 Hazelcast 配置选项的更多信息,请参阅 Hazelcast 文档
-
-
-
-
-
- 安全
-
-
-
-
可以对 Hazelcast 票证注册表管理的令牌和票证进行签名和加密。
CAS 配置目录中提供了以下设置和属性:
必填
自选
签名和加密
笔记
下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。
Show entries
搜索:
· cas.ticket.registry.hazelcast.crypto.encryption.key= 加密密钥。默认情况下,除非另有指定,否则加密密钥必须是随机生成的字符串,其长度由加密密钥大小设置定义。 org.apereo.cas.configuration.model.core.util.EncryptionRandomizedCryptoProperties. 如何配置此属性? |
· cas.ticket.registry.hazelcast.crypto.signing.key= 签名密钥是一个 JWT,其长度由签名密钥大小设置定义。 此设置支持 Spring 表达式语言。 org.apereo.cas.configuration.model.core.util.SigningJwtCryptoProperties. 如何配置此属性? |
显示 1 到 2 的 2 个条目
上一页1下一页
-
-
-
-
- Hazelcast 地图自定义
-
-
-
Hazelcast 票证注册表实现允许您自定义用于存储票证的 Hazelcast Map。CAS 会自动创建此类映射的实例,以便为每个已知票证类型存储票证。如果你确实需要在向 Hazelcast 注册 map 实例之前对其进行自定义,则可以通过在应用程序上下文中提供 HazelcastMapCustomizer类型的 bean 来实现。
1 2 3 4 | @Beanpublic HazelcastMapCustomizer myHazelcastMapCustomizer() { return new MyHazelcastMapCustomizer();} |
请参阅本指南,了解有关如何将配置注册到 CAS 运行时的更多信息。
-
-
-
-
-
- 伐木
-
-
-
-
要为注册表启用其他日志记录,请配置 log4j 配置文件以添加以下级别:
1 2 3 4 5 6 | ...<Logger name="com.hazelcast" level="debug" additivity="false"> <AppenderRef ref="casConsole"/> <AppenderRef ref="casFile"/></Logger> ... |
-
-
-
- WAN 复制
- Hazelcast 票证注册表 - WAN 复制
- WAN 复制
-
-
Hazelcast WAN 复制允许您通过在 WAN 环境(如 Internet)上复制多个 Hazelcast 集群的状态,使它们保持同步。
使用警告!
使用 Hazelcast WAN 复制需要 Hazelcast Enterprise 订阅。在激活此功能之前,请确保您已从 Hazelcast 获得正确的许可证、SDK 和工具。请联系 Hazelcast 了解更多信息。
Hazelcast 支持两种不同的 WAN 复制操作模式:
主动-被动:此模式主要用于故障转移方案,在这种情况下,您希望将主动集群复制到一个或多个被动集群,以便维护备份。
主动-主动:每个集群都是平等的,每个集群都会复制到所有其他集群。这通常用于将不同的客户端连接到不同的集群,以实现客户端和服务器之间的最短路径。
有关更多信息,请参阅此页面。
在 CAS 中定义 WAN 复制终端节点是使用静态终端节点和发现完成的。
CAS 配置目录中提供了以下设置和属性:
自选
笔记
下面列出的配置设置在 CAS 配置元数据中标记为 Optional(可选)。This标志表示在最终用户 CAS 配置中不需要立即存在该设置,因为分配了默认值,或者该功能的激活不受设置值有条件地控制。换句话说,仅当需要修改默认值或需要打开由设置控制的功能时,才应在配置中包含此字段。
Show entries
搜索:
· cas.ticket.registry.hazelcast.cluster.wan-replication.enabled=false 是否应启用 WAN。 org.apereo.cas.configuration.model.support.hazelcast.HazelcastWANReplicationProperties. 如何配置此属性? |
· cas.ticket.registry.hazelcast.cluster.wan-replication.replication-name=apereo-cas 此复制组的名称。 org.apereo.cas.configuration.model.support.hazelcast.HazelcastWANReplicationProperties. 如何配置此属性? |
· cas.ticket.registry.hazelcast.cluster.wan-replication.targets= 要用于同步和复制的目标集群列表。 org.apereo.cas.configuration.model.support.hazelcast.HazelcastWANReplicationProperties. 如何配置此属性? |
· cas.ticket.registry.hazelcast.cluster.wan-replication.targets[0].acknowledge-type=ACK_ON_OPERATION_COMPLETE 接受的值为: ACK_ON_RECEIPT:目标集群收到 WAN 操作后的 ACK(无需等待实际操作调用的结果)。 ACK_ON_OPERATION_COMPLETE:等待目标集群上的操作完成。 org.apereo.cas.configuration.model.support.hazelcast.HazelcastWANReplicationTargetClusterProperties. 如何配置此属性? |
· cas.ticket.registry.hazelcast.cluster.wan-replication.targets[0].batch-maximum-delay-milliseconds=1000 如果未达到 batch.size,则在发送一批事件之前要等待的最长时间(以毫秒为单位)。 org.apereo.cas.configuration.model.support.hazelcast.HazelcastWANReplicationTargetClusterProperties. 如何配置此属性? |
显示 1 到 5 共 17 个条目
上一页1234下一页
-
-
-
- 自动发现
- Apache JClouds
- Hazelcast 票据注册表 - Apache JClouds 自动发现
- Apache JClouds
- 自动发现
-
-
CAS 中的 Hazelcast 支持可能会通过 Apache jclouds® 自动处理自动发现。当您不想提供或无法提供群集成员的可能 IP 地址列表时,它非常有用。Apache jclouds® 是一个适用于 Java 平台的开源多云工具包,让您可以自由创建可跨云移植的应用程序,同时让您完全控制使用特定于云的功能。要查看支持的云环境的完整列表,请参阅此链接。
Apache Maven
Gradle
BOM - Spring
BOM - Gradle
资源
1 2 3 4 5 6 7 8 9 10 | dependencies { /* The following platform references should be included automatically and are listed here for reference only. implementation enforcedPlatform("org.apereo.cas:cas-server-support-bom:${project.'cas.version'}") implementation platform(org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES)
*/ implementation "org.apereo.cas:cas-server-support-hazelcast-discovery-jclouds"} |
CAS 配置目录中提供了以下设置和属性:
必填
自选
笔记
下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。
Show entries
搜索:
· cas.ticket.registry.hazelcast.cluster.discovery.jclouds.credential= 云提供商凭证,可以看作是云服务的密码。 org.apereo.cas.configuration.model.support.hazelcast.discovery.HazelcastJCloudsDiscoveryProperties. 如何配置此属性? |
· cas.ticket.registry.hazelcast.cluster.discovery.jclouds.identity= 云提供商身份,可以被视为云服务的用户名。 org.apereo.cas.configuration.model.support.hazelcast.discovery.HazelcastJCloudsDiscoveryProperties. 如何配置此属性? |
· cas.ticket.registry.hazelcast.cluster.discovery.jclouds.provider= 用于标识 ComputeService 提供程序的 String 值。例如,“google-compute-engine” 用于 Google Cloud 服务。有关更多信息,请参阅此处。 org.apereo.cas.configuration.model.support.hazelcast.discovery.HazelcastJCloudsDiscoveryProperties. 如何配置此属性? |
显示 1 到 3 个条目中的 3 个
上一页1下一页
-
-
-
-
- Apache ZooKeeper
- Hazelcast 票证注册表 - Apache ZooKeeper 自动发现
- Apache ZooKeeper
-
-
-
此插件通过使用 Apache Curator 与您的 Zookeeper 服务器通信来提供基于服务的发现。支持由以下模块启用:
Apache Maven
Gradle
BOM - Spring
BOM - Gradle
资源
1 2 3 4 5 6 7 8 9 10 | dependencies { /* The following platform references should be included automatically and are listed here for reference only. implementation enforcedPlatform("org.apereo.cas:cas-server-support-bom:${project.'cas.version'}") implementation platform(org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES)
*/ implementation "org.apereo.cas:cas-server-support-hazelcast-discovery-zookeeper"} |
CAS 配置目录中提供了以下设置和属性:
必填
笔记
下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。
Show entries
搜索:
· cas.ticket.registry.hazelcast.cluster.discovery.zookeeper.group= 此 Hazelcast 集群的名称。您可以拥有多个不同的集群来使用相同的 ZooKeeper 安装 org.apereo.cas.configuration.model.support.hazelcast.discovery.HazelcastZooKeeperDiscoveryProperties. 如何配置此属性? |
· cas.ticket.registry.hazelcast.cluster.discovery.zookeeper.path=/discovery/hazelcast zookeeper 中的路径,用于自动发现跟踪成员的成员。 org.apereo.cas.configuration.model.support.hazelcast.discovery.HazelcastZooKeeperDiscoveryProperties. 如何配置此属性? |
· cas.ticket.registry.hazelcast.cluster.discovery.zookeeper.url= Zookeeper URL 地址通常采用 ip-address:port 格式。 org.apereo.cas.configuration.model.support.hazelcast.discovery.HazelcastZooKeeperDiscoveryProperties. 如何配置此属性? |
显示 1 到 3 个条目中的 3 个
上一页1下一页
工单注册表锁定
此票据注册表实现自动支持分布式锁定。跟踪锁定操作的数据库模式和结构应由 CAS 使用Spring 集成 ZooKeeper 支持自动创建。
-
-
-
-
- AWS EC2
- Hazelcast 票证注册表 - AWS EC2 自动发现
- AWS EC2
-
-
-
CAS 中的 Hazelcast 支持可以自动处理 EC2 自动发现。当您不想提供或无法提供群集成员的可能 IP 地址列表时,它非常有用。您还可以选择指定区域感知的分区组。使用区域感知配置时,将在其他可用区中创建备份。每个区域将被接受为一个分区组。使用 AWS Discovery 功能要求您在 CAS 设置中关闭和禁用多播和 TCP/IP 配置,这应该由 CAS 在运行时自动完成。
支持由以下模块启用:
Apache Maven
Gradle
BOM - Spring
BOM - Gradle
资源
1 2 3 4 5 6 7 8 9 10 | dependencies { /* The following platform references should be included automatically and are listed here for reference only. implementation enforcedPlatform("org.apereo.cas:cas-server-support-bom:${project.'cas.version'}") implementation platform(org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES)
*/ implementation "org.apereo.cas:cas-server-support-hazelcast-discovery-aws"} |
CAS 配置目录中提供了以下设置和属性:
必填
自选
笔记
下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。
Show entries
搜索:
· cas.ticket.registry.hazelcast.cluster.discovery.aws.access-key= AWS 访问密钥。 org.apereo.cas.configuration.model.support.hazelcast.discovery.HazelcastAwsDiscoveryProperties. 如何配置此属性? |
· cas.ticket.registry.hazelcast.cluster.discovery.aws.secret-key= AWS 密钥。 org.apereo.cas.configuration.model.support.hazelcast.discovery.HazelcastAwsDiscoveryProperties. 如何配置此属性? |
显示 1 到 2 的 2 个条目
上一页1下一页
-
-
-
-
- 天蓝色
- Hazelcast 票证注册表 - Azure 自动发现
- 天蓝色
-
-
-
CAS 中的 Hazelcast 支持可能会通过 Microsoft Azure 自动处理自动发现。发现策略将通过返回 Azure 资源组中标记有指定值的 VM 来提供所有 Hazelcast 实例。您需要为 Azure 订阅设置 Azure Active Directory 服务主体凭据,此插件才能正常工作。对于您在资源组中部署的每个 Hazelcast 虚拟机,您需要确保每个 VM 都使用 CAS Hazelcast 配置中定义的 clusterId 值进行标记。唯一的要求是每个 VM 都可以通过私有或公共 IP 地址相互访问。
Apache Maven
Gradle
BOM - Spring
BOM - Gradle
资源
1 2 3 4 5 6 7 8 9 10 | dependencies { /* The following platform references should be included automatically and are listed here for reference only. implementation enforcedPlatform("org.apereo.cas:cas-server-support-bom:${project.'cas.version'}") implementation platform(org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES)
*/ implementation "org.apereo.cas:cas-server-support-hazelcast-discovery-azure"} |
CAS 配置目录中提供了以下设置和属性:
必填
Groovy 脚本
笔记
下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。
Show entries
搜索:
· cas.ticket.registry.hazelcast.cluster.discovery.azure.client-id= Azure Active Directory 服务主体客户端 ID。 org.apereo.cas.configuration.model.support.hazelcast.discovery.HazelcastAzureDiscoveryProperties. 如何配置此属性? |
· cas.ticket.registry.hazelcast.cluster.discovery.azure.client-secret= Azure Active Directory 服务主体客户端密码。 org.apereo.cas.configuration.model.support.hazelcast.discovery.HazelcastAzureDiscoveryProperties. 如何配置此属性? |
· cas.ticket.registry.hazelcast.cluster.discovery.azure.cluster-id= hazelcast 虚拟机资源上的标记名称。对于您在资源组中部署的每个 Hazelcast 虚拟机,您需要确保每个 VM 都使用 Hazelcast 配置中定义的 cluster-id 值进行标记。唯一的要求是每个 VM 都可以通过私有或公共 IP 地址相互访问。 org.apereo.cas.configuration.model.support.hazelcast.discovery.HazelcastAzureDiscoveryProperties. 如何配置此属性? |
· cas.ticket.registry.hazelcast.cluster.discovery.azure.group-name= 群集的 Azure 资源组名称。可以在 Azure 门户或 CLI 中找到此内容。 org.apereo.cas.configuration.model.support.hazelcast.discovery.HazelcastAzureDiscoveryProperties. 如何配置此属性? |
· cas.ticket.registry.hazelcast.cluster.discovery.azure.subscription-id= Azure 订阅 ID。 org.apereo.cas.configuration.model.support.hazelcast.discovery.HazelcastAzureDiscoveryProperties. 如何配置此属性? |
显示 1 到 5 的 6 个条目
上一页12下一页
-
-
-
-
- 谷歌云
- Hazelcast 票证注册表 - Google Cloud Platform (GCP) 自动发现
- 谷歌云
-
-
-
此 hazelcast 发现插件提供 Google Cloud Platform (GCP) 发现策略。
Apache Maven
Gradle
BOM - Spring
BOM - Gradle
资源
1 2 3 4 5 6 7 8 9 10 | dependencies { /* The following platform references should be included automatically and are listed here for reference only. implementation enforcedPlatform("org.apereo.cas:cas-server-support-bom:${project.'cas.version'}") implementation platform(org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES)
*/ implementation "org.apereo.cas:cas-server-support-hazelcast-discovery-gcp"} |
CAS 配置目录中提供了以下设置和属性:
自选
笔记
下面列出的配置设置在 CAS 配置元数据中标记为 Optional(可选)。This标志表示在最终用户 CAS 配置中不需要立即存在该设置,因为分配了默认值,或者该功能的激活不受设置值有条件地控制。换句话说,仅当需要修改默认值或需要打开由设置控制的功能时,才应在配置中包含此字段。
Show entries
搜索:
· cas.ticket.registry.hazelcast.cluster.discovery.gcp.hz-port=5701-5708 插件在其中查找 Hazelcast 成员的一系列端口。 org.apereo.cas.configuration.model.support.hazelcast.discovery.HazelcastGoogleCloudPlatformDiscoveryProperties. 如何配置此属性? |
· cas.ticket.registry.hazelcast.cluster.discovery.gcp.label= 一个筛选条件,用于仅查找标记为 specified 的实例;属性格式:key=value。 org.apereo.cas.configuration.model.support.hazelcast.discovery.HazelcastGoogleCloudPlatformDiscoveryProperties. 如何配置此属性? |
· cas.ticket.registry.hazelcast.cluster.discovery.gcp.private-key-path= JSON 格式的 GCP 服务帐户私钥的文件系统路径;如果未设置,则从 GCP VM 实例获取访问令牌。 org.apereo.cas.configuration.model.support.hazelcast.discovery.HazelcastGoogleCloudPlatformDiscoveryProperties. 如何配置此属性? |
· cas.ticket.registry.hazelcast.cluster.discovery.gcp.projects= 插件在其中查找实例的项目列表;如果未设置,则使用当前项目。 org.apereo.cas.configuration.model.support.hazelcast.discovery.HazelcastGoogleCloudPlatformDiscoveryProperties. 如何配置此属性? |
· cas.ticket.registry.hazelcast.cluster.discovery.gcp.region= 插件查找实例的区域;如果未设置,则使用 #getZones() 属性;如果未设置 it 和 #getZones() 属性,则使用当前区域的所有区域。 org.apereo.cas.configuration.model.support.hazelcast.discovery.HazelcastGoogleCloudPlatformDiscoveryProperties. 如何配置此属性? |
显示 1 到 5 的 6 个条目
上一页12下一页
请注意:
您的 GCP 服务帐户必须具有查询配置中指定的所有项目/区域的权限。
如果您未指定任何属性,则 CAS 将从当前项目中当前区域中运行的所有 Hazelcast 成员形成一个集群。
-
-
-
-
- Kubernetes (简体中文)
- Hazelcast 票证注册表 - Kubernetes 自动发现
- Kubernetes (简体中文)
-
-
-
这个 hazelcast 发现插件提供了通过解决针对 Kubernetes 服务发现系统的请求来查找其他成员的 IP 地址的可能性。
此模块支持针对发现注册表进行解析的两种不同选项:
对 REST API 的请求
针对给定无头 DNS 服务名称的 DNS 查找
有关更多信息,请参阅此链接。
Apache Maven
Gradle
BOM - Spring
BOM - Gradle
资源
1 2 3 4 5 6 7 8 9 10 | dependencies { /* The following platform references should be included automatically and are listed here for reference only. implementation enforcedPlatform("org.apereo.cas:cas-server-support-bom:${project.'cas.version'}") implementation platform(org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES)
*/ implementation "org.apereo.cas:cas-server-support-hazelcast-discovery-kubernetes"} |
CAS 配置目录中提供了以下设置和属性:
自选
笔记
下面列出的配置设置在 CAS 配置元数据中标记为 Optional(可选)。This标志表示在最终用户 CAS 配置中不需要立即存在该设置,因为分配了默认值,或者该功能的激活不受设置值有条件地控制。换句话说,仅当需要修改默认值或需要打开由设置控制的功能时,才应在配置中包含此字段。
Show entries
搜索:
· cas.ticket.registry.hazelcast.cluster.discovery.kubernetes.api-retries=3 定义对 Kubernetes API 的重试次数。默认为:3。 org.apereo.cas.configuration.model.support.hazelcast.discovery.HazelcastKubernetesDiscoveryProperties. 如何配置此属性? |
· cas.ticket.registry.hazelcast.cluster.discovery.kubernetes.api-token= 为 kubernetes 客户端定义用于访问 kubernetes REST API 的 oauth 令牌。默认从自动注入的文件中读取令牌:/var/run/secrets/kubernetes.io/serviceaccount/token。 org.apereo.cas.configuration.model.support.hazelcast.discovery.HazelcastKubernetesDiscoveryProperties. 如何配置此属性? |
· cas.ticket.registry.hazelcast.cluster.discovery.kubernetes.ca-certificate= 来自 Kubernetes Master 的 CA 颁发机构证书。默认从自动注入的文件中读取证书:/var/run/secrets/kubernetes.io/serviceaccount/ca.crt。 org.apereo.cas.configuration.model.support.hazelcast.discovery.HazelcastKubernetesDiscoveryProperties. 如何配置此属性? |
· cas.ticket.registry.hazelcast.cluster.discovery.kubernetes.kubernetes-master= 定义 kubernetes 主节点的备用地址。默认为:https://kubernetes.default.svc org.apereo.cas.configuration.model.support.hazelcast.discovery.HazelcastKubernetesDiscoveryProperties. 如何配置此属性? |
· cas.ticket.registry.hazelcast.cluster.discovery.kubernetes.namespace= 通过 Kubernetes 的服务发现 REST API 定义应用程序 POD 的命名空间。 org.apereo.cas.configuration.model.support.hazelcast.discovery.HazelcastKubernetesDiscoveryProperties. 如何配置此属性? |
显示 1 到 5 的 15 个条目
上一页123下一页
-
-
-
-
- 组播
- Hazelcast Ticket Registry - 多播自动发现
- 组播
-
-
-
借助多播自动发现机制,Hazelcast 允许集群成员使用多播通信相互查找。集群成员不需要知道其他成员的具体地址,因为他们只需多播给所有其他成员进行侦听。是否可以或允许多播取决于您的环境。
请特别注意启用多播时的超时。多点传送超时指定成员在声明自身为 leadermember(加入群集的第一个成员)并创建自己的群集之前,应等待网络中运行的另一个成员的有效多点传送响应的时间(以秒为单位)。这仅适用于尚未分配 leader 的成员的启动。如果您指定一个较高的值(如 60 秒),则表示在选择领导者之前,每个成员将等待 60 秒,然后再继续。提供高价值时要小心。此外,请注意不要将该值设置得太低,否则成员可能会过早放弃并创建自己的集群。
以下设置和属性可从CAS配置曲库获得:
可选
笔记
下面列出的配置设置在CAS配置元数据中被标记为可选。该标志表示在最终用户CAS配置中不需要立即存在该设置,因为分配了默认值或功能的激活不受设置值的有条件控制。换句话说,如果您需要修改默认值或如果您需要打开由设置控制的功能,您应该只在您的配置中包含此字段。
Show entries
搜索:
· cas.ticket.registry.hazelcast.cluster.discovery.multicast.enabled=false 使用组地址和端口启用多播配置。包含多播发现机制的配置。通过多播发现机制,Hazelcast允许Hazelcast成员使用多播找到彼此。因此Hazelcast成员不需要知道成员的具体地址,他们只需多播给每个监听的人。多播是否可能或允许取决于您的环境;否则您需要查看tcp/ip集群 org.apereo.cas.configuration.model.support.hazelcast.HazelcastClusterMulticastProperties. 如何配置此属性? |
· cas.ticket.registry.hazelcast.cluster.discovery.multicast.group= 用于发现的多播组地址。通过多播自动发现机制,Hazelcast允许集群成员使用多播通信找到彼此。集群成员不需要知道其他成员的具体地址,因为他们只是多播给所有其他成员进行监听。多播是否可能或允许取决于您的环境。 org.apereo.cas.configuration.model.support.hazelcast.HazelcastClusterMulticastProperties. 如何配置此属性? |
· cas.ticket.registry.hazelcast.cluster.discovery.multicast.port=0 用于发现的多播端口。 org.apereo.cas.configuration.model.support.hazelcast.HazelcastClusterMulticastProperties. 如何配置此属性? |
· cas.ticket.registry.hazelcast.cluster.discovery.multicast.time-to-live=32 以秒为单位获取多播包的生存时间。这是在套接字上发送的多播数据包的默认生存时间 org.apereo.cas.configuration.model.support.hazelcast.HazelcastClusterMulticastProperties. 如何配置此属性? |
· cas.ticket.registry.hazelcast.cluster.discovery.multicast.timeout=2 指定一个成员在声明自己是领导者成员(第一个加入集群的成员)并创建自己的集群之前,应该等待网络中运行的另一个成员的有效多播响应的时间(以秒为单位)。这仅适用于尚未分配领导者的成员的启动。如果您指定一个高值,例如60秒,这意味着在选择领导者之前,每个成员将等待60秒才能继续前进。提供高值时要小心。此外,注意不要将值设置得太低,否则成员可能会过早放弃并创建自己的集群。 org.apereo.cas.configuration.model.support.hazelcast.HazelcastClusterMulticastProperties. 如何配置此属性? |
显示6个条目中的1到5个
上一个12下一个
通过在 WAR 覆盖中包含以下依赖项来启用 Memcached 集成:
Apache Maven
Gradle
BOM - Spring
BOM - Gradle
资源
1 | implementation "org.apereo.cas:cas-server-support-memcached-ticket-registry:${project.'cas.version'}" |
用法
此功能已弃用,并计划在将来删除。
此注册表将票据存储在一个或多个 memcached 实例中。Memcached 将数据存储在分布式缓存中的多个节点中的一个节点中,从而避免了在节点之间复制或以其他方式共享数据的要求。确定性函数用于定位要存储键 K 的节点 N':
1 | N' = f(h(K), N1, N2, N3, ... Nm) |
其中 h(K) 是密钥 K、N1 的哈希值 ...Nm 是缓存节点的集合,N' ∈ N ...纳米。
该函数是确定性的,因为它始终为给定的键和缓存节点集生成相同的结果。请注意,可用缓存节点集的更改可能会产生不同的目标节点来存储密钥。
实际的 memcached 实现可以通过以下选项之一来支持,这些选项应在 overlay 中定义。
使用警告!
并非所有票据注册表操作都受 memcached 票据注册表实现支持。特别是,执行批量查询的操作(例如在单个请求中删除和获取所有票证)可能不受支持,因为 memcached 本身无法处理和支持这种类型的查询。
-
-
-
- Spymemcached
-
-
通过 spymemcached 库启用支持。这是一个简单的异步单线程 memcached 客户端,应该是大多数部署的默认选择。
通过在 WAR 覆盖中包含以下依赖项来启用支持:
Apache Maven
Gradle
BOM - Spring
BOM - Gradle
资源
1 | implementation "org.apereo.cas:cas-server-support-memcached-spy:${project.'cas.version'}" |
-
-
-
- AWS ElastiCache
-
-
您还可以使用 AWS ElastiCache,这是一项 Web 服务,可让您轻松在云中设置、管理和扩展分布式内存数据存储或缓存环境。它提供高性能、可扩展且经济高效的缓存解决方案,同时消除了与部署和管理分布式缓存环境相关的复杂性。
对于运行 Memcached 引擎的集群,ElastiCache 支持自动发现,客户端程序能够自动识别缓存集群中的所有节点,并启动和维护与所有这些节点的连接。使用自动发现,CAS 无需手动连接到单个缓存节点;相反,CAS 会连接到一个 Memcached 节点并检索节点列表。从该列表中,CAS 可以了解集群中的其余节点,并且可以连接到其中任何节点。您无需对配置中的各个缓存节点终端节点进行硬编码
集群中的所有缓存节点都维护有关所有其他节点的元数据列表。每当在集群中添加或删除节点时,都会更新此元数据。
通过在 WAR 覆盖中包含以下依赖项来启用支持:
Apache Maven
Gradle
BOM - Spring
BOM - Gradle
资源
1 2 3 4 5 6 7 8 9 10 | dependencies { /* The following platform references should be included automatically and are listed here for reference only. implementation enforcedPlatform("org.apereo.cas:cas-server-support-bom:${project.'cas.version'}") implementation platform(org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES)
*/ implementation "org.apereo.cas:cas-server-support-memcached-aws-elasticache"} |
-
-
-
- 配置注意事项
-
-
memcached 有三个核心配置问题:
哈希算法
节点定位器策略
对象序列化机制
-
-
-
-
- 哈希算法
-
-
-
哈希算法用于将 key 值转换为 memcached 存储 key,以唯一标识相应的值。哈希算法的选择对故障转移行为有影响,这对 HA 部署非常重要。建议使用 FNV1_64_HASH 算法,因为它在速度和低碰撞率之间提供了很好的平衡;有关替代方案,请参阅 JavaDocs。
-
-
-
-
- 节点定位器
-
-
-
节点定位器用作底层 spymemcached 库提供的 memcached 客户端的确定性节点选择函数。有两种选择:
ARRAY_MOD
一致
数组模数机制是默认机制,适用于预期 memcached 池中的节点数保持一致的情况。该算法计算 memcached 节点数组的索引:
1 | hash(key) % length(nodes) |
显然,所选索引是 memcached 节点数的函数,因此节点数的差异会在选择存储密钥的节点中产生差异,这是不可取的。
一致性策略通常提供不随节点数变化的目标节点。此策略应用于 memcached 池可能动态增长或收缩的情况,包括由于频繁的节点故障。
-
-
-
-
- 对象序列化
-
-
-
Memcached 存储字节数据,因此在存储之前必须将 CAS 票证序列化为字节数组。CAS 附带了一个基于 Kryo serializationframework 的自定义序列化组件 KryoTranscoder。建议使用此组件而不是默认的 Java 序列化机制,因为它会生成更紧凑的数据,这有利于存储要求和吞吐量。
-
-
-
- 配置
-
-
CAS 配置目录中提供了以下设置和属性:
必填
自选
签名和加密
笔记
下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。
Show entries
搜索:
· cas.ticket.registry.memcached.crypto.encryption.key= 加密密钥。默认情况下,除非另有指定,否则加密密钥必须是随机生成的字符串,其长度由加密密钥大小设置定义。 org.apereo.cas.configuration.model.core.util.EncryptionRandomizedCryptoProperties. 如何配置此属性? |
· cas.ticket.registry.memcached.crypto.signing.key= 签名密钥是一个 JWT,其长度由签名密钥大小设置定义。 此设置支持 Spring 表达式语言。 org.apereo.cas.configuration.model.core.util.SigningJwtCryptoProperties. 如何配置此属性? |
· cas.ticket.registry.memcached.servers=localhost:11211 以逗号分隔的 memcached 服务器列表。 org.apereo.cas.configuration.model.support.memcached.MemcachedTicketRegistryProperties. 如何配置此属性? 弃用状态为 ERROR (ERROR),没有替换设置。 |
显示 1 到 3 个条目中的 3 个
上一页1下一页
-
-
-
- 高可用性注意事项
-
-
Memcached 在设计上不提供复制,但客户端可以容忍failureMode="Redistribute" 的节点故障。在此模式下,写入失败将导致客户端将节点标记为失败,并将其从可用节点集中删除。随后,它将重新计算 node location 函数,并设置 reducednode 以查找要存储密钥的新节点。如果节点位置函数选择相同的节点(对于 CONSISTENT 策略来说可能是这样),则将计算一个备份节点。该值将写入故障转移节点并从故障转移节点读取,直到主节点恢复。客户端将定期检查故障节点的活跃度,并在节点恢复后立即将其恢复到节点池中。当主节点复活时,如果它包含特定键的值,它将取代故障转移节点已知的值。在这种情况下,当票证授予票证具有重复值时,将对 CAS 行为产生最常见的影响,这可能会影响单点注销并阻止对服务的访问。特别是,当故障节点恢复时,当故障转移服务处于活动状态时发生的访问服务和强制身份验证将丢失。在大多数情况下,这种行为是可以容忍的,但可以通过在重新加入缓存池之前在故障节点上重新启动 memcached 服务来避免。
Redistribute 模式下的读取失败会导致从可用节点集中删除该节点,计算故障转移节点,并从该节点读取值。在大多数情况下,这会导致 key not found 情况。对 CAS 行为的影响取决于请求的票据类型:
服务票证 - 将拒绝对请求的票证进行服务访问,但允许后续尝试,因为将生成并验证新票证。
票证授予票证 - SSO 会话将终止,并且需要重新进行身份验证。
因此,对于可以接受重新身份验证的环境,读取失败是完全无害的。
JPA 票证注册表允许 CAS 将票证存储在关系数据库后端(如 MySQL)中。
使用警告!
使用关系数据库作为工单注册表状态管理的后端持久性选择是一个相当不必要且复杂的过程。除非您已经配备了集群数据库技术和管理它的资源,否则这种复杂性可能不值得。
通过将以下模块添加到覆盖中来启用支持:
Apache Maven
Gradle
BOM - Spring
BOM - Gradle
资源
1 2 3 4 5 6 7 8 9 10 | dependencies { /* The following platform references should be included automatically and are listed here for reference only. implementation enforcedPlatform("org.apereo.cas:cas-server-support-bom:${project.'cas.version'}") implementation platform(org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES)
*/ implementation "org.apereo.cas:cas-server-support-jpa-ticket-registry"} |
-
-
-
- 配置
-
-
CAS 配置目录中提供了以下设置和属性:
必填
自选
签名和加密
Hibernate 和 JDBC
笔记
下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。
Show entries
搜索:
· cas.ticket.registry.jpa.crypto.encryption.key= 加密密钥。默认情况下,除非另有指定,否则加密密钥必须是随机生成的字符串,其长度由加密密钥大小设置定义。 org.apereo.cas.configuration.model.core.util.EncryptionRandomizedCryptoProperties. 如何配置此属性? |
· cas.ticket.registry.jpa.crypto.signing.key= 签名密钥是一个 JWT,其长度由签名密钥大小设置定义。 此设置支持 Spring 表达式语言。 org.apereo.cas.configuration.model.core.util.SigningJwtCryptoProperties. 如何配置此属性? |
· cas.ticket.registry.jpa.driver-class=org.hsqldb.jdbcDriver 用于连接到数据库的 JDBC 驱动程序。 org.apereo.cas.configuration.model.support.jpa.ticketregistry.JpaTicketRegistryProperties. 如何配置此属性? |
· cas.ticket.registry.jpa.enabled=true 是否开启 JPA 管理工单。 org.apereo.cas.configuration.model.support.jpa.ticketregistry.JpaTicketRegistryProperties. 如何配置此属性? |
· cas.ticket.registry.jpa.password= 数据库连接密码。 org.apereo.cas.configuration.model.support.jpa.ticketregistry.JpaTicketRegistryProperties. 如何配置此属性? |
显示 1 到 5 的 7 个条目
上一页12下一页
-
-
-
- 工单注册表锁定
-
-
此票据注册表实现自动支持分布式锁定。跟踪锁定操作的数据库模式和表应由 CAS 使用Spring 集成 JDBC 支持自动创建。
CAS 配置目录中提供了以下设置和属性:
第三方
笔记
下面列出的配置设置在 CAS 配置元数据中标记为 Third Party(第三方)。此标志表示配置设置不受 CAS 生态系统的控制、拥有或管理,并且会影响第三方库(如 Spring Boot 或 Spring Cloud to CAS)提供的功能。有关更多信息,您可能必须访问第三方来源以查找更多详细信息。
Show entries
搜索:
· spring.integration.jdbc.initialize-schema=embedded 数据库 Schema 初始化模式。 org.springframework.boot.autoconfigure.integration.IntegrationProperties$Jdbc. 如何配置此属性? |
· spring.integration.jdbc.platform= 在初始化脚本中使用的平台(如果使用@@platform@@占位符)。默认情况下自动检测。 org.springframework.boot.autoconfigure.integration.IntegrationProperties$Jdbc. 如何配置此属性? |
· spring.integration.jdbc.schema=classpath:org/springframework/integration/jdbc/schema-@@platform@@.sql 用于初始化数据库架构的 SQL 文件的路径。 org.springframework.boot.autoconfigure.integration.IntegrationProperties$Jdbc. 如何配置此属性? |
显示 1 到 3 个条目中的 3 个
上一页1下一页
通过在 WAR 覆盖中包含以下依赖项来启用 Ignite 集成:
Apache Maven
Gradle
BOM - Spring
BOM - Gradle
资源
1 2 3 4 5 6 7 8 9 10 | dependencies { /* The following platform references should be included automatically and are listed here for reference only. implementation enforcedPlatform("org.apereo.cas:cas-server-support-bom:${project.'cas.version'}") implementation platform(org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES)
*/ implementation "org.apereo.cas:cas-server-support-ignite-ticket-registry"} |
此注册表将票据存储在 Ignite 实例中。
-
-
-
- 分布式缓存
-
-
建议将分布式缓存用于 HA 架构,因为它们在票据存储子系统中提供容错能力。
-
-
-
- TLS 复制
-
-
Ignite 支持通过 TLS 对由两个或多个节点组成的分布式缓存进行复制。要了解有关使用 Ignite 进行 TLS 复制的更多信息,请参阅此资源。
-
-
-
- 配置
-
-
CAS 配置目录中提供了以下设置和属性:
必填
自选
签名和加密
笔记
下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。
Show entries
搜索:
· cas.ticket.registry.ignite.crypto.encryption.key= 加密密钥。默认情况下,除非另有指定,否则加密密钥必须是随机生成的字符串,其长度由加密密钥大小设置定义。 org.apereo.cas.configuration.model.core.util.EncryptionRandomizedCryptoProperties. 如何配置此属性? |
· cas.ticket.registry.ignite.crypto.signing.key= 签名密钥是一个 JWT,其长度由签名密钥大小设置定义。 此设置支持 Spring 表达式语言。 org.apereo.cas.configuration.model.core.util.SigningJwtCryptoProperties. 如何配置此属性? |
· cas.ticket.registry.ignite.ignite-address= 如果 port 为 0 或未提供,则将使用 default port (取决于发现 SPI 配置)。如果提供了端口范围(例如 host:port1..port2) 应考虑以下因素: port1 < port2 应为 true; port1 和 port2 都应大于 0。 org.apereo.cas.configuration.model.support.ignite.IgniteProperties. 如何配置此属性? |
· cas.ticket.registry.ignite.local-port=-1 设置要侦听的本地端口。 org.apereo.cas.configuration.model.support.ignite.IgniteProperties. 如何配置此属性? |
显示 1 到 4 的 4 个条目
上一页1下一页
-
-
-
- 故障排除
-
-
您需要确保允许跨 CAS 节点进行网络通信,并且没有防火墙或其他组件阻止流量。
如果使用 CAS 实例外部的节点,请确保每个缓存管理器指定与 Ignite 配置本身匹配的名称。
您可能还需要调整过期策略以允许更长的时间跨度,特别是对于服务票证,具体取决于网络流量和 CAS 节点之间的通信延迟,尤其是在节点尝试加入集群的情况下。
通过在 WAR 覆盖中包含以下依赖项来启用 CosmosDb 支持:
Apache Maven
Gradle
BOM - Spring
BOM - Gradle
资源
1 2 3 4 5 6 7 8 9 10 | dependencies { /* The following platform references should be included automatically and are listed here for reference only. implementation enforcedPlatform("org.apereo.cas:cas-server-support-bom:${project.'cas.version'}") implementation platform(org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES)
*/ implementation "org.apereo.cas:cas-server-support-cosmosdb-ticket-registry"} |
CAS 配置目录中提供了以下设置和属性:
必填
自选
签名和加密
笔记
下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。
Show entries
· cas.ticket.registry.cosmos-db.crypto.encryption.key= 加密密钥。默认情况下,除非另有指定,否则加密密钥必须是随机生成的字符串,其长度由加密密钥大小设置定义。 org.apereo.cas.configuration.model.core.util.EncryptionRandomizedCryptoProperties. 如何配置此属性? |
· cas.ticket.registry.cosmos-db.crypto.signing.key= 签名密钥是一个 JWT,其长度由签名密钥大小设置定义。 此设置支持 Spring 表达式语言。 org.apereo.cas.configuration.model.core.util.SigningJwtCryptoProperties. 如何配置此属性? |
· cas.ticket.registry.cosmos-db.database= 数据库名称。 org.apereo.cas.configuration.model.support.cosmosdb.CosmosDbTicketRegistryProperties. 如何配置此属性? |
· cas.ticket.registry.cosmos-db.key= 文档数据库主密钥。 此设置支持 Spring 表达式语言。 org.apereo.cas.configuration.model.support.cosmosdb.CosmosDbTicketRegistryProperties. 如何配置此属性? |
· cas.ticket.registry.cosmos-db.uri= 记录 Db 主机地址(即 https://localhost:8081)。 此设置支持 Spring 表达式语言。 org.apereo.cas.configuration.model.support.cosmosdb.CosmosDbTicketRegistryProperties. 如何配置此属性? |
搜索:
显示 1 到 5 个条目中的 5 个
上一页1下一页
通过在 WAR 覆盖中包含以下依赖项来启用 Redis 集成:
Apache Maven
Gradle
BOM - Spring
BOM - Gradle
资源
1 2 3 4 5 6 7 8 9 10 | dependencies { /* The following platform references should be included automatically and are listed here for reference only. implementation enforcedPlatform("org.apereo.cas:cas-server-support-bom:${project.'cas.version'}") implementation platform(org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES)
*/ implementation "org.apereo.cas:cas-server-support-redis-ticket-registry"} |
此注册表将票证存储在一个或多个 Redis 实例中。CAS 提供并使用 Redis 作为键/值存储,它接受String键和 CAS 票证文档作为值。该键以 CAS_TICKET: 开头。
Redis 票据注册表支持 Redis Sentinel,它为 Redis 提供了高可用性。实际上,这意味着使用 Sentinel,您可以创建一个 Redis 部署,无需人工干预即可抵御某些类型的故障。Redis Sentinel 还提供其他附带任务,例如监控、通知,并充当客户端的配置提供程序。
-
-
-
- 配置
-
-
CAS 配置目录中提供了以下设置和属性:
必填
自选
签名和加密
笔记
下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。
Show entries
搜索:
· cas.ticket.registry.redis.cluster.nodes[0].host= 服务器的主机地址。 org.apereo.cas.configuration.model.support.redis.RedisClusterNodeProperties. 如何配置此属性? |
· cas.ticket.registry.redis.cluster.nodes[0].port= 服务器的端口号。 org.apereo.cas.configuration.model.support.redis.RedisClusterNodeProperties. 如何配置此属性? |
· cas.ticket.registry.redis.cluster.nodes[0].replica-of= 设置 master 节点的 id。 org.apereo.cas.configuration.model.support.redis.RedisClusterNodeProperties. 如何配置此属性? |
· cas.ticket.registry.redis.cluster.nodes[0].type= 指示此节点的类型/角色。接受的值为 MASTER, REPLICA 。 org.apereo.cas.configuration.model.support.redis.RedisClusterNodeProperties. 如何配置此属性? |
· cas.ticket.registry.redis.cluster.password= 集群连接的密码。 org.apereo.cas.configuration.model.support.redis.RedisClusterProperties. 如何配置此属性? |
显示 1 到 5 的 16 个条目
上一页1234下一页
-
-
-
- 索引和搜索
-
-
有关更多信息,请参阅本指南。
-
-
-
- 缓存和消息
-
-
Redis 票据注册表在 Redis 之上分层内存缓存以提高性能,尤其是在使用执行模式匹配的 SCAN 或 KEYS 操作从 Redis 获取票据对象时。此缓存是特定的,并与 CAS 服务器节点的内存隔离,并且能够使用基于票证的过期策略构建的 dedicatedexpiration 策略自行清理。单个 CAS 服务器节点中的每个缓存都将尝试通过 Redis 本身支持的基于消息的机制将票据更改和更新与其他 CAS 服务器节点同步。请注意,您始终可以通过专用 CAS 设置强制其最大容量为零来完全禁用缓存机制。
CAS 配置目录中提供了以下设置和属性:
自选
笔记
下面列出的配置设置在 CAS 配置元数据中标记为 Optional(可选)。This标志表示在最终用户 CAS 配置中不需要立即存在该设置,因为分配了默认值,或者该功能的激活不受设置值有条件地控制。换句话说,仅当需要修改默认值或需要打开由设置控制的功能时,才应在配置中包含此字段。
Show entries
搜索:
· cas.ticket.registry.redis.cache.cache-size=10000 此缓存大小指定缓存可以包含的最大条目数。请注意,缓存可能会在超过此限制之前逐出条目,或者在逐出时暂时超过阈值。当缓存大小增长到接近最大值时,缓存会移出不太可能再次使用的条目。例如,缓存可能会逐出某个条目,因为它最近没有使用或非常频繁地使用。请注意: 要禁用缓存,您可以选择缓存大小 0。 org.apereo.cas.configuration.model.core.cache.SimpleCacheProperties. 如何配置此属性? |
· cas.ticket.registry.redis.cache.initial-capacity=1000 此缓存容量设置内部数据结构的最小总大小。在构造时提供足够大的估计值可以避免以后进行昂贵的大小调整操作,但将此值设置得不必要地高会浪费内存。 org.apereo.cas.configuration.model.core.cache.SimpleCacheProperties. 如何配置此属性? |
显示 1 到 2 的 2 个条目
上一页1下一页
-
-
-
-
- 执行器端点
-
-
-
CAS 提供以下端点:
DELETE | /cas/actuator/redisTicketsCache/{ticketId} |
使提供的票证失效并从 Redis 第一级内存中 CAS 缓存中删除。票证实体不会从 Redis 实例本身中删除。使票据实体失效将强制 CAS 从 Redis 重新获取票据,并忽略/丢弃其自己的缓存副本(如果有)。
GET | /cas/actuator/redisTicketsCache/{ticketId} |
-
-
-
- 驱逐策略
-
-
Redis 通过其 time-alive 设置管理缓存对象的内部驱逐策略。超时是票证的 timeToLive 值。因此,您需要确保缓存处于活动状态足够长的时间以支持票证的单个过期策略,并在必要时让 CAS 将清理票证作为其自己的清理程序的一部分。
-
-
-
- 工单注册表锁定
-
-
此票据注册表实现自动支持分布式锁定。跟踪锁定操作的模式和结构应由 CAS 使用Spring Integration Redis 支持自动创建。
通过在 WAR 覆盖中包含以下依赖项来启用 Cassandra 集成:
Apache Maven
Gradle
BOM - Spring
BOM - Gradle
资源
1 2 3 4 5 6 7 8 9 10 | dependencies { /* The following platform references should be included automatically and are listed here for reference only. implementation enforcedPlatform("org.apereo.cas:cas-server-support-bom:${project.'cas.version'}") implementation platform(org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES)
*/ implementation "org.apereo.cas:cas-server-support-cassandra-ticket-registry"} |
此注册表将票据存储在 Apache Cassandra 实例中。票证应在 castickets 表中查找/存储,默认写入一致性为 LOCAL_QUORUM,读取一致性为 ONE。
-
-
-
- 执行器端点
-
-
CAS 提供以下端点:
GET | /cas/actuator/health |
报告由各种监视器生成的系统的一般运行状况。
GET | /cas/actuator/health/{path} |
-
-
-
- 故障排除
-
-
要启用其他日志记录,请配置 log4j 配置文件以添加以下级别:
1 2 3 4 5 6 | ...<Logger name="com.datastax.driver" level="debug" additivity="false"> <AppenderRef ref="casConsole"/> <AppenderRef ref="casFile"/></Logger> ... |
-
-
-
- 配置
-
-
CAS 配置目录中提供了以下设置和属性:
必填
自选
签名和加密
笔记
下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。
Show entries
搜索:
· cas.ticket.registry.cassandra.contact-points= 用于新集群的联系点列表。每个联系点都应使用语法 address:port 进行定义。 org.apereo.cas.configuration.model.support.cassandra.ticketregistry.CassandraTicketRegistryProperties. 如何配置此属性? |
· cas.ticket.registry.cassandra.crypto.encryption.key= 加密密钥。默认情况下,除非另有指定,否则加密密钥必须是随机生成的字符串,其长度由加密密钥大小设置定义。 org.apereo.cas.configuration.model.core.util.EncryptionRandomizedCryptoProperties. 如何配置此属性? |
· cas.ticket.registry.cassandra.crypto.signing.key= 签名密钥是一个 JWT,其长度由签名密钥大小设置定义。 此设置支持 Spring 表达式语言。 org.apereo.cas.configuration.model.core.util.SigningJwtCryptoProperties. 如何配置此属性? |
· cas.ticket.registry.cassandra.keyspace= Keyspace 地址来使用集群将连接的位置。 org.apereo.cas.configuration.model.support.cassandra.ticketregistry.CassandraTicketRegistryProperties. 如何配置此属性? |
· cas.ticket.registry.cassandra.password= 用于绑定和建立与 Cassandra 连接的密码。 org.apereo.cas.configuration.model.support.cassandra.ticketregistry.CassandraTicketRegistryProperties. 如何配置此属性? |
显示 1 到 5 的 6 个条目
上一页12下一页
通过在 WAR 覆盖中包含以下依赖项来启用 MongoDb 票证注册表集成:
Apache Maven
Gradle
BOM - Spring
BOM - Gradle
资源
1 2 3 4 5 6 7 8 9 10 | dependencies { /* The following platform references should be included automatically and are listed here for reference only. implementation enforcedPlatform("org.apereo.cas:cas-server-support-bom:${project.'cas.version'}") implementation platform(org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES)
*/ implementation "org.apereo.cas:cas-server-support-mongo-ticket-registry"} |
此注册表将票证存储在一个或多个 MongoDb 实例中。票证会自动转换,并作为 JSON 包装到文档对象中。创建特殊索引是为了让 MongoDb 处理每个文档和清理任务的过期时间。请注意,CAS 通常会尝试自动创建相关集合以管理不同的票据类型。
-
-
-
- 配置
-
-
CAS 配置目录中提供了以下设置和属性:
必填
自选
签名和加密
笔记
下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。
Show entries
搜索:
· cas.ticket.registry.mongo.client-uri= mongodb 实例的连接 URI。这通常采用 mongodb://user:psw@ds135522.somewhere.com:35522/db 的形式。如果未指定,将回退到其他单个设置。如果指定,则接管所有其他设置(如果适用)。 org.apereo.cas.configuration.model.support.mongo.ticketregistry.MongoDbTicketRegistryProperties. 如何配置此属性? |
· cas.ticket.registry.mongo.crypto.encryption.key= 加密密钥。默认情况下,除非另有指定,否则加密密钥必须是随机生成的字符串,其长度由加密密钥大小设置定义。 org.apereo.cas.configuration.model.core.util.EncryptionRandomizedCryptoProperties. 如何配置此属性? |
· cas.ticket.registry.mongo.crypto.signing.key= 签名密钥是一个 JWT,其长度由签名密钥大小设置定义。 此设置支持 Spring 表达式语言。 org.apereo.cas.configuration.model.core.util.SigningJwtCryptoProperties. 如何配置此属性? |
· cas.ticket.registry.mongo.database-name= MongoDb 数据库实例名称。 org.apereo.cas.configuration.model.support.mongo.ticketregistry.MongoDbTicketRegistryProperties. 如何配置此属性? |
· cas.ticket.registry.mongo.host=localhost 用于身份验证的 MongoDb 数据库主机。可以定义多个主机地址,用逗号分隔。如果定义了多个主机,则假定每个主机也包含端口(如果有)。否则,配置可能会回退到定义的端口。 org.apereo.cas.configuration.model.support.mongo.ticketregistry.MongoDbTicketRegistryProperties. 如何配置此属性? |
显示 1 到 5 的 8 个条目
上一页12下一页
-
-
-
- 故障排除
-
-
要启用其他日志记录,请配置 log4j 配置文件以添加以下级别:
1 2 3 4 5 6 | ...<Logger name="com.mongo" level="debug" additivity="false"> <AppenderRef ref="casConsole"/> <AppenderRef ref="casFile"/></Logger> ... |
通过在 WAR 覆盖中包含以下依赖项来启用 DynamoDb 票证注册表集成:
Apache Maven
Gradle
BOM - Spring
BOM - Gradle
资源
1 2 3 4 5 6 7 8 9 10 | dependencies { /* The following platform references should be included automatically and are listed here for reference only. implementation enforcedPlatform("org.apereo.cas:cas-server-support-bom:${project.'cas.version'}") implementation platform(org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES)
*/ implementation "org.apereo.cas:cas-server-support-dynamodb-ticket-registry"} |
此注册表将票证存储在 DynamoDb 实例中。每个工单类型都链接到一个不同的表。
-
-
-
- 配置
-
-
您需要向 CAS 提供您的 AWS 凭证。此外,为了更好地了解 DynamoDb 的核心组件和概念,请先从本指南开始。
CAS 配置目录中提供了以下设置和属性:
必填
自选
签名和加密
笔记
下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。
Show entries
搜索:
· cas.ticket.registry.dynamo-db.credential-access-key= 使用 AWS 提供的访问密钥进行身份验证。 此设置支持 Spring 表达式语言。 org.apereo.cas.configuration.model.support.dynamodb.DynamoDbTicketRegistryProperties. 如何配置此属性? |
· cas.ticket.registry.dynamo-db.credential-secret-key= 使用 AWS 提供的密钥进行身份验证。 此设置支持 Spring 表达式语言。 org.apereo.cas.configuration.model.support.dynamodb.DynamoDbTicketRegistryProperties. 如何配置此属性? |
· cas.ticket.registry.dynamo-db.crypto.encryption.key= 加密密钥。默认情况下,除非另有指定,否则加密密钥必须是随机生成的字符串,其长度由加密密钥大小设置定义。 org.apereo.cas.configuration.model.core.util.EncryptionRandomizedCryptoProperties. 如何配置此属性? |
· cas.ticket.registry.dynamo-db.crypto.signing.key= 签名密钥是一个 JWT,其长度由签名密钥大小设置定义。 此设置支持 Spring 表达式语言。 org.apereo.cas.configuration.model.core.util.SigningJwtCryptoProperties. 如何配置此属性? |
· cas.ticket.registry.dynamo-db.dax.url= Cluster url 的 URL 中。例如,dax://my-cluster.l6fzcv.dax-clusters.us-east-1.amazonaws.com。 org.apereo.cas.configuration.model.support.dynamodb.DynamoDbDaxProperties. 如何配置此属性? |
显示 1 到 5 的 7 个条目
上一页12下一页
-
-
-
- 故障排除
-
-
要启用其他日志记录,请配置 log4j 配置文件以添加以下级别:
1 2 3 4 5 6 | ...<Logger name="com.amazonaws" level="debug" additivity="false"> <AppenderRef ref="casConsole"/> <AppenderRef ref="casFile"/></Logger> ... |
相关文章:
CAS单点登录(第7版)13.票务
如有疑问,请看视频:CAS单点登录(第7版) 票务 概述 票务 有两个核心的可配置工单组件: TicketRegistry - 提供持久票证存储。ExpirationPolicy - 提供票证过期语义的策略框架。 工单注册 部署环境和技术专业知识…...
大语言模型入门
大语言模型入门 1 大语言模型步骤1.1 pre-training 预训练1.1.1 从网上爬数据1.1.2 tokenization1.1.2.1 tokenization using byte pair encoding 1.3 预训练1.3.1 context1.3.2 training1.3.3 输出 1.2 post-training1.2.1 token 1.2 SFT监督微调1.3 人类反馈强化学习1.3.1 人…...
从ARM官方获取自己想要的gcc交叉编译工具链接(Arm GNU Toolchain),并在Ubuntu系统中进行配置
前言 本文是博文 https://blog.csdn.net/wenhao_ir/article/details/145547974 的分支博文。 在本博文中我们完成gcc交叉编译工具gcc-arm-9.2-2019.12-x86_64-arm-none-linux-gnueabihf.tar.xz的下载、配置、测试。 下载自己想要的gcc交叉编译工具的源码 目标文件的名字及说…...
LDR6500:重塑充电与数据传输的新篇章
在当今快速发展的数字时代,电子设备对充电速度、数据传输效率和兼容性提出了更高要求。LDR6500,作为一款专为USB Type-C Bridge设备设计的USB-C DRP(Dual Role Port,双角色端口)接口USB PD(Power Delivery&…...
Matlab 机器人 雅可比矩阵
工业机器人运动学与Matlab正逆解算法学习笔记(用心总结一文全会)(四)——雅可比矩阵_staubli机器人正逆向运动学实例验证matlab-CSDN博客 matlab求雅可比矩阵_六轴机械臂 矢量积法求解雅可比矩阵-CSDN博客 (63 封私信 / 80 条消息…...
网络安全防护:开源WAF雷池SafeLine本地部署与配置全流程
文章目录 前言1.关于SafeLine2.安装Docker3.本地部署SafeLine4.使用SafeLine5.cpolar内网穿透工具安装6.创建远程连接公网地址7.固定Uptime Kuma公网地址 前言 对于建站新手来说,无论你选择创建的是个人博客、企业官网还是各类应用平台来推广自己的内容或是产品&am…...
vue框架生命周期详细解析
Vue.js 的生命周期钩子函数是理解 Vue 组件行为的关键。每个 Vue 实例在创建、更新和销毁过程中都会经历一系列的生命周期阶段,每个阶段都有对应的钩子函数,开发者可以在这些钩子函数中执行特定的操作。 Vue 生命周期概述 Vue 的生命周期可以分为以下几…...
Ollama 安装使用指南
rootdeepseek-1:/home/zgq/.ollama# lsof -i :11434 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME ollama 29005 root 3u IPv4 47359 0t0 TCP localhost:11434 (LISTEN) 从以上提供的 lsof 输出来看,Ollama 服务正在监听 localhost:11434…...
力扣 38. 外观数列 打表 迭代 阅读理解
Problem: 38. 外观数列 🧑🏫 参考题目补充说明 🧑🏫 参考题解 迭代法 class Solution {public String countAndSay(int n) {String str "1";for (int i 2; i < n; i) {StringBuilder sb new StringBuild…...
文心一言4月起全面免费,6月底开源新模型:AI竞争进入新阶段?
名人说:莫听穿林打叶声,何妨吟啸且徐行。—— 苏轼 Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 目录 一、文心一言免费化的背后:AI成本与应用的双重驱动1️⃣成本下降,推动文心一言普及2…...
基于LSTM+前向均值滤波后处理的癫痫发作检测(包含数据集)
引言 癫痫是一种常见的神经系统疾病,患者会经历反复的癫痫发作。早期检测和预警对于改善患者的生活质量至关重要。近年来,深度学习技术,尤其是长短期记忆网络(LSTM),在时间序列数据分析中表现出色…...
Window下Redis的安装和部署详细图文教程(Redis的安装和可视化工具的使用)
文章目录 Redis下载地址:一、zip压缩包方式下载安装 1、下载Redis压缩包2、解压到文件夹3、启动Redis服务4、打开Redis客户端进行连接5、使用一些基础操作来测试 二、msi安装包方式下载安装 1、下载Redis安装包2、进行安装3、进行配置4、启动服务5、测试能否正常工…...
什么是交叉熵
交叉熵 定义公式 针对离散变量x的概率分布 p ( x ) p(x) p(x) , q ( x ) q(x) q(x) x 1 x_1 x1 x 2 x_2 x2 x 3 x_3 x3 x 4 x_4 x4… x n x_n xnp( x 1 x_1 x1)p( x 2 x_2 x2)p( x 3 x_3 x3)p( x 4 x_4 x4)…p( x n x_n xn)q( x 1 x_1 x1)q( x 2 x_2 …...
虚拟机安装k8s集群
环境准备 - 主节点(Master Node): IP地址: 192.168.40.100主机名: k8s-master - 工作节点(Worker Node): IP地址: 192.168.40.101主机名: k8s-node1 步骤 1: 配置虚拟机环境 1.1 设置主机名 在每台虚拟机上设置唯一的主机名…...
【mysql部署】在ubuntu22.04上安装和配置mysql教程
一.安装mysql 1. 更新软件包列表: sudo apt-get update2.安装 MySQL 服务器: sudo apt-get install mysql-server3.设置 MySQL 安全性: sudo mysql_secure_installation按照提示输入相关问题的回答,例如删除匿名用户、禁止 root 远程登录…...
机器学习实战(3):线性回归——预测连续变量
第3集:线性回归——预测连续变量 在机器学习的世界中,线性回归是最基础、最直观的算法之一。它用于解决回归问题,即预测连续变量(如房价、销售额等)。尽管简单,但线性回归却是许多复杂模型的基石。今天我们…...
烧结银在 DeepSeek 中的关键作用与应用前景
烧结银在 DeepSeek 中的关键作用与应用前景 在科技飞速发展的当下,DeepSeek 作为前沿科技领域的重要参与者,正以其独特的技术和创新的应用,在众多行业掀起变革的浪潮。而在 DeepSeek 的核心技术体系中,烧结银这一材料的应用&#…...
C++效率掌握之STL库:string底层剖析
文章目录 1.学习string底层的必要性2.string类对象基本函数实现3.string类对象的遍历4.string类对象的扩容追加5.string类对象的插入、删除6.string类对象的查找、提取、大小调整7.string类对象的流输出、流提取希望读者们多多三连支持小编会继续更新你们的鼓励就是我前进的动力…...
计算机组成原理—— 总线系统(十一)
在追求梦想的旅途中,我们常常会遇到崎岖的道路和难以预料的风暴。然而,正是这些挑战塑造了我们的坚韧和毅力,使我们能够超越自我,触及那些看似遥不可及的目标。不要因为一时的困境而气馁,也不要因为他人的质疑而动摇自…...
电子制造企业数字化转型实战:基于Odoo构建MES平台的深度解决方案
作者背景 拥有8年乙方项目经理经验、8年甲方信息化管理经验,主导过12个Odoo制造业项目落地,服务客户涵盖消费电子、汽车电子、工业设备等领域。本文基于华东某电子企业(以下简称"A公司")的实战案例,解析行业…...
【Python爬虫(4)】揭开Python爬虫的神秘面纱:基础概念全解析
【Python爬虫】专栏简介:本专栏是 Python 爬虫领域的集大成之作,共 100 章节。从 Python 基础语法、爬虫入门知识讲起,深入探讨反爬虫、多线程、分布式等进阶技术。以大量实例为支撑,覆盖网页、图片、音频等各类数据爬取ÿ…...
kafka为什么这么快?
前言 Kafka的高效有几个关键点,首先是顺序读写。磁盘的顺序访问速度其实很快,甚至比内存的随机访问还要快。Kafka在设计上利用了这一点,将消息顺序写入日志文件,这样减少了磁盘寻道的时间,提高了吞吐量。与传统数据库的…...
书籍推荐:《书法课》林曦
记得樊登老师说过,如果你想了解一个事物,就去读5本相关的书,你会比大部分人都更了解它。这是我读的第4本和“书法”有关的书,作为一个零基础的成年人,林曦这本《书法课》非常值得一读。(无论你是否写字&…...
位图(C语言版)
文章目录 位图模型基本操作实现代码运行结果 应用存储只有两种状态的数据排序并去重 位图 模型 位图是“位”的数组。 为什么需要构建一个专门的数据结构来表示位的数组?:因为计算机最小的寻址单位是字节,而不是位。 位图是一种内存紧凑的…...
使用C#元组实现列表分组汇总拼接字段
文章目录 使用C#元组实现列表分组汇总拼接字段代码运行结果 使用C#元组实现列表分组汇总拼接字段 代码 string message string.empty; var tupleList new List<Tuple<string, string, string>>(); tupleList.Add(new Tuple<string, string, string>("…...
淘宝API数据采集接口||调用步骤详解
### 一、注册与认证 1. **注册淘宝开发者账号**: * 访问淘宝开放平台官网,点击“立即入驻”按钮,按照提示完成注册流程。注册过程中需要提供企业名称、联系人信息等基本信息。 2. **创建应用**: * 注册成功后,登录淘…...
C# 调用 C++ 动态库接口
在 C# 中调用 C 动态库接口,通常需要通过 P/Invoke (Platform Invocation Services) 来与 C 代码交互 1. 准备 C 动态库 假设你有一个 C 动态库,其中包含如下函数: extern "C" char* getLocationURL(const char* package_name, …...
fastadmin 接口请求提示跨域
问题描述 小程序项目,内嵌h5页面,在h5页面调用后端php接口,提示跨域。网上查找解决方案如下: 1,设置header // 在入口文件index.php直接写入直接写入 header("Access-Control-Allow-Origin:*"); header(&q…...
C#_文件写入读取操作
文件写入操作:--------------------------------------------------------------------------- 读取文件:---------------------------------------------------------------------------...
redis的哨兵模式和集群模式
Redis 的 哨兵模式(Sentinel Mode) 和 集群模式(Cluster Mode) 是两种常见的高可用部署方式,它们各有优缺点,适用于不同的场景。以下是它们的比较: 1. 哨兵模式(Sentinel Mode&#…...
《open3d +pyqt》凸包计算
《open3d +pyqt》凸包计算 一、效果展示二、qt设置2.1界面设置2.2 py文件生成三、核心代码一、效果展示 二、qt设置 2.1界面设置 添加动作Qhull: 布局参数: 2.2 py文件生成 更新Mainwindow.py 生成py文件 三、核心代码 代码如下: main.py文件...
数据库报错1045-Access denied for user ‘root‘@‘localhost‘ (using password: YES)解决方式
MySQL 报错 1045 表示用户root从localhost连接时被拒绝访问,通常是因为密码错误、权限问题或配置问题。以下是解决该问题的常见方法: 方法一:检查用户名和密码 • 确认用户名和密码是否正确: 确保输入的用户名和密码完全正确&am…...
ThreadLocal为什么会内存溢出
每个线程(Thread 对象)内部维护一个 ThreadLocalMap,用于存储该线程的所有 ThreadLocal 变量的键值对: ThreadLocalMap虽然是ThreadLocal的静态内部类,但是Thread 对象的属性,当线程存活时ThreadLocalMap不会被回收。 Key:ThreadLocal 实例的 弱引用(WeakReference)。…...
数据结构------单向链表。
一.实现单向链表的头插,头删,尾插,尾删,按位置插,按位置删,按位置修改,按元素查找,按元素修改,按元素删除,单链表的逆置,查找倒数第几个元素&…...
Python的那些事第二十二篇:基于 Python 的 Django 框架在 Web 开发中的应用研究
基于 Python 的 Django 框架在 Web 开发中的应用研究 摘要 Django 是一个基于 Python 的高级 Web 框架,以其开发效率高、安全性和可扩展性强等特点被广泛应用于现代 Web 开发。本文首先介绍了 Django 的基本架构和核心特性,然后通过一个实际的 Web 开发项目案例,展示了 Dj…...
在 PyCharm 中接入deepseek的API的各种方法
在 PyCharm 中接入 DeepSeek 的 API,通常需要以下步骤: 1. 获取 DeepSeek API 密钥 首先,确保你已经在 DeepSeek 平台上注册并获取了 API 密钥(API Key)。如果没有,请访问 DeepSeek 的官方网站注册并申请 …...
当扩展屏显示【输入不支持】怎么解决?!
1、why? 当你遇到这个问题的时候,那就表示您的扩展屏偏老旧,这时候需要进行一些参数设置 2、直接改变桌面模式解决不了问题 你是不是尝试过直接在缩放和布局这里设置?在这里直接设置的话,设置的是桌面模式,屏幕大小是会变化但…...
深入剖析 Python 类属性与对象的底层创建与内存分析
各类资料学习下载合集 https://pan.quark.cn/s/8c91ccb5a474 在 Python 中,类和对象是面向对象编程(OOP)的核心组成部分。类属性与实例属性的存储和管理方式,以及类和对象在内存中的分布和结构,对于深入理解 Python 的底层机制至关重要。 本文将带你详细解析 P…...
pdf文件的读取,基于深度学习的方法
需要安装一些依赖解析 PDF 文件的详细指南_unstructured.partition.pdf-CSDN博客文章浏览阅读1.3k次,点赞13次,收藏9次。通过 unstructured.partition.pdf 函数,可以方便地解析 PDF 文件并提取其中的文本和表格内容。尽管在使用过程中可能会遇…...
【指令集】Nginx
本文作者: slience_me 【指令集】Nginx 1. 目录结构 Nginx 的基础目录结构通常包括以下几个主要目录: Nginx的目录结构大致如下(以Linux系统为例): /etc/nginx/ # Nginx的配置文件目录 ├── ngin…...
蓝耘云智算|使用 Deepseek R1 模型优化 BERT 在 NLP 任务中的表现
在自然语言处理(NLP)领域,BERT(Bidirectional Encoder Representations from Transformers)已成为许多文本分类任务的基准模型。然而,随着新模型的出现和技术的不断进步,BERT在某些情况下可能不…...
LINUX常用命令学习
查看系统版本 使用hostnamectl命令检查。hostnamectl显示了CentOS的版本以及操作系统的相关信息,非常方便 设置linux机器别名称 hostnamectl set-hostname 机器别名 --static 华为云 centos 命令:lsb_release -a linux:cat /proc/version 查看进程路…...
【java面向对象的三大特性】封装、继承和多态
目录标题 一、封装(Encapsulation):二、继承(Inheritance):三、多态(Polymorphism):1. 多态的三个必要条件:2.多态的具体实现:3.多态的使用场景&a…...
【开源免费】基于SpringBoot+Vue.JS校园商铺管理系统(JAVA毕业设计)
本文项目编号 T 191 ,文末自助获取源码 \color{red}{T191,文末自助获取源码} T191,文末自助获取源码 目录 一、系统介绍二、数据库设计三、配套教程3.1 启动教程3.2 讲解视频3.3 二次开发教程 四、功能截图五、文案资料5.1 选题背景5.2 国内…...
日常故障排查 - Java程序故障排查
Java程序故障 无论对于任何的故障而言,恢复可用性都是首要目标。但作为一个技术匠人,不能让同一个问题导致多次故障,因此故障的根因剖析以及解决也是很重要的。但是故障根因剖析是需要现场数据来进行分析,因此在故障恢复之前要尽…...
ai数字人分身系统开发源码saas化
#数字人分身系统# #数字人系统源码# #ai数字人123 123# 云罗抖去推数字人分身系统是一款融合了形象克隆、声音克隆、AI数字人分身、AI智能剪辑、智能文案等各种AI技术一体化的短视频营销工具,其核心功能优势主要体现在以下几方面: 真实度高…...
DeepSeek免费部署到WPS或Office
部署到WPS - 通过OfficeAI插件接入: - 准备工作:安装最新版本的WPS Office软件;访问DeepSeek官网,点击右上角的“API开放平台”,登录账号(若无账号需先注册),登录成功后,…...
vue2和vue3插槽slot最通俗易懂的区别理解
在 Vue 的组件通信中,slot(插槽)的编译优化是一个重要的性能提升点。以下是 Vue2 和 Vue3 在 slot 处理上的差异及优化原理,用更直观的方式解释: Vue2 的 Slot 更新机制 想象一个父子组件场景: 父组件&am…...
生成式人工智能:技术革命与应用图景
(这文章有些地方看不懂很正常,因为有太多生词,需要对 计算机/人工智能 研究至深的人才能看懂,遇到不会的地方用浏览器搜索或跳过) 引言 2023年被称我们为"生成式AI元年",以GPT-4、DALL-E 3、Stable Diffusi…...
关于Dest1ny:我的创作纪念日
Dest1ny 因为这是csdn任务,我就稍微“写”了一下! 如果大家真的有什么想聊的或者想一起学习的,欢迎在评论区或者私信中与我讨论! 2025想说的话 我就把我想说的写在前面! 不用对未来焦虑,不要觉得自己走…...