CAS单点登录(第7版)21.可接受的使用政策
如有疑问,请看视频:CAS单点登录(第7版)
CAS 也称为使用条款或 EULA,它允许用户在继续应用程序之前接受使用策略。此功能的生产级部署需要修改流,以便通过外部存储机制(如 LDAP 或 JDBC)处理策略的检索和/或接受。
通过在 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-aup-webflow"} |
通过修改 casAcceptableUsagePolicyView.html 来自定义策略。请参阅本指南以了解有关用户界面自定义的更多信息。请注意,如果您希望动态更改页面以呈现不同的文本等,则此处的视图应该具有对已解析的主体和属性的完全访问权限。
Webflow 序列
请记住,可接受使用策略在 CAS 已建立身份验证委托人的成功身份验证事件后执行,因为策略记录与已识别的用户记录紧密相关。在身份验证事件之前实现此功能需要对 CAS webflow 进行相当多的修改,以及存储和记住决策的替代方法,例如 cookie 或浏览器存储等。
CAS 配置目录中提供了以下设置和属性:
必填
自选
笔记
下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。
Show entries
搜索:
· cas.acceptable-usage-policy.core.aup-attribute-name=aupAccepted AUP 属性来确定是否已接受策略。该属性应包含一个布尔值,其中 true 表示已接受策略,false 表示不接受策略。从配置的源中获取委托人的该属性,并比较正确的匹配项以确定策略状态。如果未找到该属性,则策略状态将被视为 denied。 org.apereo.cas.configuration.model.support.aup.AcceptableUsagePolicyCoreProperties. 如何配置此属性? |
· cas.acceptable-usage-policy.core.enabled=true 允许在启动时关闭 AUP。 org.apereo.cas.configuration.model.support.aup.AcceptableUsagePolicyCoreProperties. 如何配置此属性? |
显示 1 到 2 的 2 个条目
上一页1下一页
可以按服务禁用和跳过 acceptable usage policy:
1 2 3 4 5 6 7 8 9 10 11 12 | { "@class": "org.apereo.cas.services.CasRegisteredService", "serviceId": "https://app.example.org", "name": "Example", "id": 1, "acceptableUsagePolicy": { "@class": "org.apereo.cas.services.DefaultRegisteredServiceAcceptableUsagePolicy", "enabled": true, "messageCode": "example.code", "text": "example text" }} |
分配给每个服务的策略包括以下功能:
田 | 描述 |
enabled | 控制此服务的策略是活动/非活动。默认值为 true。 |
messageCode | 链接到包含实际策略文本的 CAS 语言包的策略语言代码。 |
text | 应为此应用程序显示的策略文本。 |
使用策略用户决策通过以下方式存储和记住。
在几乎所有存储策略中,CAS 都允许部署者通过 CAS 单值boolean属性检测当前用户的策略选择。必须使用 CAS 属性解析策略解析该属性。如果该属性包含值 false,则 CAS 将尝试请求接受策略。接受策略后,结果将存储回存储中。
存储 | 描述 |
Default | 请参阅本指南。 |
Groovy | 请参阅本指南。 |
LDAP 协议 | 请参阅本指南。 |
MongoDb 数据库 | 请参阅本指南。 |
Redis | 请参阅本指南。 |
JDBC | 请参阅本指南。 |
REST | 请参阅本指南。 |
自定义 | 请参阅本指南。 |
上述存储选项也可用于获取可接受的使用策略,并将其传递给相应的视图,以便在属性 aupPolicy 下显示和接受。策略术语可以引用在 CAS 语言包中找到的特定消息代码,也可以包含将用于逐字显示的默认策略文本。
除非存储选项覆盖并专门化此功能,否则获取策略术语的默认行为基于 CAS 属性中定义的单值属性,该属性通常可能指示用户状态或成员身份。该属性值将附加到语言代码 screen.aup.policyterms 中,以允许 CAS 从语言包中查找特定策略文本。如果 CAS 语言捆绑包中没有此类密钥,则将显示在同一语言密钥下找到的默认策略文本。
当然,定义的属性必须可用于来自相关来源的已解析的已验证主体。
例如,如果将 policy terms 属性定义为值为 developer 的状态status,则包含策略文本的预期语言代码将为 screen.aup.policyterms.developer=<p>Policy for developers</p>
默认情况下,记住用户选择的任务默认保存在内存中,并且在容器重启和/或集群部署中会丢失。此选项仅在开发、测试和演示期间有用,根本不适合生产。
CAS 配置目录中提供了以下设置和属性:
自选
笔记
下面列出的配置设置在 CAS 配置元数据中标记为 Optional(可选)。This标志表示在最终用户 CAS 配置中不需要立即存在该设置,因为分配了默认值,或者该功能的激活不受设置值有条件地控制。换句话说,仅当需要修改默认值或需要打开由设置控制的功能时,才应在配置中包含此字段。
Show entries
搜索:
· cas.acceptable-usage-policy.in-memory.scope=GLOBAL 存储 aup 选择的映射范围。可用值如下: GLOBAL存储在全局内存映射中(在服务器的生命周期内)。 AUTHENTICATION存储 aup acceptance,以便在用户通过凭证进行身份验证时提示用户。 org.apereo.cas.configuration.model.support.aup.InMemoryAcceptableUsagePolicyProperties. 如何配置此属性? |
显示 1 到 1 的 1 个条目
上一页1下一页
默认存储机制的范围可以从默认的 GLOBAL(如上所述)调整为 AUTHENTICATION,这将导致用户必须在每个身份验证事件期间同意该策略。当 CAS 根据现有票证 grantingticket cookie 授予访问权限时,用户将不必同意该策略。
或者,可以将 CAS 配置为使用 Groovy 脚本来验证策略的状态并存储结果。
CAS 配置目录中提供了以下设置和属性:
必填
Groovy 脚本
笔记
下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。
Show entries
搜索:
· cas.acceptable-usage-policy.groovy.location= 在 CAS 能够自动监视底层资源的更改并动态检测更新和修改的情况和场景中,您可以将以下设置指定为环境变量或系统属性,其值为 false,以禁用资源观察程序:org.apereo.cas.util.io.PathWatcherService。 org.apereo.cas.configuration.model.support.aup.GroovyAcceptableUsagePolicyProperties. 如何配置此属性? |
显示 1 到 1 的 1 个条目
上一页1下一页
要准备 CAS 以支持 Apache Groovy 并与之集成,请查看本指南。
该脚本应与以下内容匹配:
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 34 35 | import org.apereo.cas.authentication.principal.* import org.apereo.cas.authentication.* import org.apereo.cas.util.* import org.apereo.cas.aup.* import org.springframework.webflow.execution.* def verify(Object[] args) { def (requestContext,applicationContext,principal,logger) = args ... if (policyAccepted()) { return AcceptableUsagePolicyStatus.accepted(principal) } return AcceptableUsagePolicyStatus.denied(principal)} def submit(Object[] args) { def (requestContext,applicationContext,principal,logger) = args ... return true} /* A special callback function is implemented as an override to return an `AcceptableUsagePolicyTerms` object back to CAS to be re-purposed for acceptable usage policy flows. */def fetch(Object[] args) { def (requestContext,applicationContext,principal,logger) = args ... return AcceptableUsagePolicyTerms.builder() .defaultText("Hello, World") .code(AcceptableUsagePolicyTerms.CODE) .build()} |
传递的参数如下:
参数 | 描述 |
requestContext | 表示 Spring Webflow RequestContext 的对象。 |
applicationContext | 表示 Spring ApplicationContext 的对象。 |
principal | 表示经过身份验证的 Principal 的对象。 |
logger | 负责发出日志消息的对象,例如 logger.info(...) |
或者,可以将 CAS 配置为使用 LDAP 作为存储机制。接受策略后,结果将存储回 LDAP 并通过相同的属性记住。通过在 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-aup-ldap"} |
CAS 配置目录中提供了以下设置和属性:
必填
自选
LDAP & Active Directory
笔记
下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。
Show entries
搜索:
· cas.acceptable-usage-policy.ldap[0].base-dn= 要使用的基本 DN。在某些情况下,单个 LDAP 树的不同部分可能被视为 base-dns。可以使用特殊的分隔符指定每个条目并将其连接在一起,而不是为每个单独的 base-dn 复制 LDAP 配置块。用户 DN 按定义的顺序使用所有 base-dn 和 DNresolver 的组合进行检索。如果找到多个 DN,则 DN 解析应失败。否则,将返回找到的第一个 DN。通常的语法是:subtreeA,dc=example,dc=net|subtreeC,dc=example,dc=net。 org.apereo.cas.configuration.model.support.aup.LdapAcceptableUsagePolicyProperties. 如何配置此属性? |
· cas.acceptable-usage-policy.ldap[0].bind-credential= 连接到 LDAP 时要使用的绑定凭证。 org.apereo.cas.configuration.model.support.aup.LdapAcceptableUsagePolicyProperties. 如何配置此属性? |
· cas.acceptable-usage-policy.ldap[0].bind-dn= 连接到 LDAP 时要使用的绑定 DN。注入 LDAP 连接池的 LDAP 连接配置可以使用以下参数进行初始化: bindDn/bindCredential provided - 在初始化连接时使用提供的凭证进行绑定。 bindDn/bindCredential 设置为 * - 使用快速绑定策略初始化池。 bindDn/bindCredential 设置为空白 - 跳过连接初始化;匿名执行操作。 提供的 SASL 机制 - 初始化连接时使用给定的 SASL 机制进行绑定。 org.apereo.cas.configuration.model.support.aup.LdapAcceptableUsagePolicyProperties. 如何配置此属性? |
· cas.acceptable-usage-policy.ldap[0].ldap-url= 服务器的 LDAP URL。可以指定多个,用空格和/或逗号分隔。 org.apereo.cas.configuration.model.support.aup.LdapAcceptableUsagePolicyProperties. 如何配置此属性? |
· cas.acceptable-usage-policy.ldap[0].search-filter= 您还可以在 file:/path/to/GroovyScript.groovy的语法中提供外部 groovy 脚本,以动态地完全构建最终的过滤器模板。 org.apereo.cas.configuration.model.support.aup.LdapAcceptableUsagePolicyProperties. 如何配置此属性? |
显示 1 到 5 个条目中的 5 个
上一页1下一页
可以将 CAS 配置为使用 MongoDb 实例作为存储机制。接受策略后,采用者应提供一个集合名称,用于保存决策,并假定文档包含username列以及与定义的 AUP 属性名称匹配的列。
通过在 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-aup-mongo"} |
CAS 配置目录中提供了以下设置和属性:
必填
自选
笔记
下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。
Show entries
搜索:
· cas.acceptable-usage-policy.mongo.client-uri= mongodb 实例的连接 URI。这通常采用 mongodb://user:psw@ds135522.somewhere.com:35522/db 的形式。如果未指定,将回退到其他单个设置。如果指定,则接管所有其他设置(如果适用)。 org.apereo.cas.configuration.model.support.aup.MongoDbAcceptableUsagePolicyProperties. 如何配置此属性? |
· cas.acceptable-usage-policy.mongo.collection= 要获取和/或创建的 MongoDb 数据库集合名称。 org.apereo.cas.configuration.model.support.aup.MongoDbAcceptableUsagePolicyProperties. 如何配置此属性? |
· cas.acceptable-usage-policy.mongo.database-name= MongoDb 数据库实例名称。 org.apereo.cas.configuration.model.support.aup.MongoDbAcceptableUsagePolicyProperties. 如何配置此属性? |
· cas.acceptable-usage-policy.mongo.host=localhost 用于身份验证的 MongoDb 数据库主机。可以定义多个主机地址,用逗号分隔。如果定义了多个主机,则假定每个主机也包含端口(如果有)。否则,配置可能会回退到定义的端口。 org.apereo.cas.configuration.model.support.aup.MongoDbAcceptableUsagePolicyProperties. 如何配置此属性? |
· cas.acceptable-usage-policy.mongo.password= 用于身份验证的 MongoDb 数据库密码。 org.apereo.cas.configuration.model.support.aup.MongoDbAcceptableUsagePolicyProperties. 如何配置此属性? |
显示 1 到 5 的 7 个条目
上一页12下一页
CAS 可以配置为使用 Redis 实例作为存储机制。决策映射到 CAS 用户名和指定的 AUP 属性名称的组合。
通过在 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-aup-redis"} |
CAS 配置目录中提供了以下设置和属性:
必填
自选
笔记
下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。
Show entries
搜索:
· cas.acceptable-usage-policy.redis.cluster.nodes[0].host= 服务器的主机地址。 org.apereo.cas.configuration.model.support.redis.RedisClusterNodeProperties. 如何配置此属性? |
· cas.acceptable-usage-policy.redis.cluster.nodes[0].port= 服务器的端口号。 org.apereo.cas.configuration.model.support.redis.RedisClusterNodeProperties. 如何配置此属性? |
· cas.acceptable-usage-policy.redis.cluster.nodes[0].replica-of= 设置 master 节点的 id。 org.apereo.cas.configuration.model.support.redis.RedisClusterNodeProperties. 如何配置此属性? |
· cas.acceptable-usage-policy.redis.cluster.nodes[0].type= 指示此节点的类型/角色。接受的值为 MASTER, REPLICA 。 org.apereo.cas.configuration.model.support.redis.RedisClusterNodeProperties. 如何配置此属性? |
· cas.acceptable-usage-policy.redis.cluster.password= 集群连接的密码。 org.apereo.cas.configuration.model.support.redis.RedisClusterProperties. 如何配置此属性? |
显示 1 到 5 个条目,共 14 个条目
上一页123下一页
可以将 CAS 配置为使用数据库作为存储机制。接受策略后,采用者应提供一个表名,用于保存决策,并假定该表包含一个 username 列以及与定义的 AUP 属性名称匹配的列。
通过在 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-aup-jdbc"} |
CAS 配置目录中提供了以下设置和属性:
必填
自选
Hibernate 和 JDBC
笔记
下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。
Show entries
搜索:
· cas.acceptable-usage-policy.jdbc.driver-class=org.hsqldb.jdbcDriver 用于连接到数据库的 JDBC 驱动程序。 org.apereo.cas.configuration.model.support.aup.JdbcAcceptableUsagePolicyProperties. 如何配置此属性? |
· cas.acceptable-usage-policy.jdbc.password= 数据库连接密码。 org.apereo.cas.configuration.model.support.aup.JdbcAcceptableUsagePolicyProperties. 如何配置此属性? |
· cas.acceptable-usage-policy.jdbc.url=jdbc:hsqldb:mem:cas-hsql-database 数据库连接 URL。 此设置支持 Spring 表达式语言。 org.apereo.cas.configuration.model.support.aup.JdbcAcceptableUsagePolicyProperties. 如何配置此属性? |
· cas.acceptable-usage-policy.jdbc.user=sa 数据库用户必须具有足够的权限,才能在需要时处理架构更改和更新。 org.apereo.cas.configuration.model.support.aup.JdbcAcceptableUsagePolicyProperties. 如何配置此属性? |
显示 1 到 4 的 4 个条目
上一页1下一页
可以将 CAS 配置为使用 REST API 作为存储机制。接受策略后,API 将通过 POST 向 username 参数传递,该 POST 已接受策略以及活动locale。service参数也作为目标应用程序的指示符(如果可用)传递。预期的响应状态代码为 200。
确定用户是否接受策略的条件通常通过 configurable 属性进行控制。如果此属性不存在,或者 CAS 确定没有足够的证据来确定此属性的接受状态,则通过 GET 请求联系位于 ${REST_ENDPOINT}/status 的 API 终端节点,以确定策略接受状态。与以前一样,此 API 将传递 username、locale 和 service (如果可用) 参数,预期的响应状态代码(表示已接受状态)为 200。
通过在 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-aup-rest"} |
CAS 配置目录中提供了以下设置和属性:
必填
自选
笔记
下面列出的配置设置在 CAS 配置元数据中标记为 Required。此标志表示可能需要该设置的存在才能激活或影响 CAS 功能的行为,并且通常应进行审查、可能拥有和调整。如果为该设置分配了默认值,则无需严格将该设置放在配置副本中,但仍应对其进行检查以确保它符合您的部署预期。
Show entries
搜索:
· cas.acceptable-usage-policy.rest.url= 用于联系和检索属性的终端节点 URL。 此设置支持 Spring 表达式语言。 org.apereo.cas.configuration.model.support.aup.RestAcceptableUsagePolicyProperties. 如何配置此属性? |
显示 1 到 1 的 1 个条目
上一页1下一页
保单条款
CAS 将通过 GET 调用位于 ${REST_ENDPOINT}/policy 的 API 端点,以获取相应的策略术语。向 API 传递username、localeservice,预期的响应状态代码为 200。responseoutput body 应为 AcceptableUsagePolicyTerms 的实例,如下所示:
1 2 3 4 5 | { "@class": "org.apereo.cas.aup.AcceptableUsagePolicyTerms", "code": "screen.aup.policyterms.some.key", "defaultText": "Default policy text"} |
提供code可能指向 CAS 消息包中的语言键。附加到相关捆绑包中此密钥的文本最终会提取并由 CAS UI 进行处理。
如果您想设计自己的存储机制,您可以遵循以下方法:
1 2 3 4 5 6 7 8 9 10 11 12 | package org.apereo.cas.custom; @AutoConfiguration@EnableConfigurationProperties(CasConfigurationProperties.class)public class MyUsagePolicyConfiguration { @Bean public AcceptableUsagePolicyRepository acceptableUsagePolicyRepository() { ... } } |
请参阅本指南,了解有关如何将配置注册到 CAS 运行时的更多信息。
相关文章:

CAS单点登录(第7版)21.可接受的使用政策
如有疑问,请看视频:CAS单点登录(第7版) 可接受的使用政策 概述 可接受的使用政策 CAS 也称为使用条款或 EULA,它允许用户在继续应用程序之前接受使用策略。此功能的生产级部署需要修改流,以便通过外部存…...

53倍性能提升!TiDB 全局索引如何优化分区表查询?
作者: Defined2014 原文来源: https://tidb.net/blog/7077577f 什么是 TiDB 全局索引 在 TiDB 中,全局索引是一种定义在分区表上的索引类型,它允许索引分区与表分区之间建立一对多的映射关系,即一个索引分区可以对…...

Pythong 解决Pycharm 运行太慢
Pythong 解决Pycharm 运行太慢 官方给Pycharm自身占用的最大内存设低估了限制,我的Pycharm刚开始默认是256mb。 首先找到自己的Pycharm安装目录 根据合适自己的改 保存,重启Pycharm...

库里存储的数据有大量回车时,该如何进行存取
如图,打印模板存了很多坐标性的字段数据: 大量带换行的文本数据存到库里之后取出,前端需要做非空、合法校验, 然后在循环中,使用eval 函数接收每一句字符串,去执行这句 JavaScript 代码。 let arrStr tem…...

【devops】Github Actions Secrets | 如何在Github中设置CI的Secret供CI的yaml使用
一、Github Actions 1、ci.yml name: CIon: [ push ]jobs:build:runs-on: ubuntu-lateststeps:- name: Checkout codeuses: actions/checkoutv3- name: Set up Gouses: actions/setup-gov4with:go-version: 1.23.0- name: Cache Go modulesuses: actions/cachev3with:path: |…...

体验 DeepSeek-R1:解密 1.5B、7B、8B 版本的强大性能与应用
文章目录 🍋引言🍋DeepSeek 模型简介🍋版本更新:1.5B、7B、8B 的区别与特点🍋模型评估🍋体验 DeepSeek 的过程🍋总结 🍋引言 随着大规模语言模型的持续发展,许多模型在性…...
一文说清楚什么是Token以及项目中使用Token延伸的问题
首先可以参考我的往期文章,我这里说清楚了Cookie,Seesion,Token以及JWT是什么 其实Token你就可以理解成这是一个认证令牌就好了 详细分清Session,Cookie和Token之间的区别,以及JWT是什么东西_还分不清 cookie、sessi…...
大模型-Tool call、检索增强
大模型 Tool call 心知天气:https://www.seniverse.com/ 例子:调用天气接口 API from openai import OpenAI import requests import json """ ##### 天气接口 API 密钥获取:https://www.free-api.com/doc/558 ##### &quo…...
【算法】【区间和】acwing算法基础 802. 区间和 【有点复杂,但思路简单】
题目 假定有一个无限长的数轴,数轴上每个坐标上的数都是 0。 现在,我们首先进行 n 次操作,每次操作将某一位置 x 上的数加 c。 接下来,进行 m 次询问,每个询问包含两个整数 l 和 r,你需要求出在区间 [l,r] …...

Ubuntu22.04通过Docker部署Jeecgboot
程序发布环境包括docker、mysql、redis、maven、nodejs、npm等。 一、安装docker 1、用如下命令卸载旧Docker: for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done 2、安装APT环境依赖包…...

HTML4
HTML 初体验 1.鼠标右键 > 新建 > 文本文档 > 输入以下内容,并保存 2.修改后缀为 .html ,然后双击打开即可 这里的后缀名,使用 .htm 也可以,但推荐使用更标准的 .html <marquee>尚硅谷,让天下没有难…...

STM32F10X 启动文件完整分析
最近在准备面试相关 顺便复盘总结一下之前的内容 启动文件在基于ARM的芯片是很重要的组成部分,它主要负责完成芯片上电启动时的一系列初始化工作和各种异常及中断的入口地址。 也是理解bootloader自举的关键点,所以需要理解一下 1. 向量表定义 启动文件…...
typescript快速入门之安装与运行
安装 安装ts环境,最好全局安装,这样就不需要开一个项目又安装 npm i -g typescript初始化 可以运行初始化配置文件,也可以手动生成;不生成的话会运行默认配置 使用默认配置 把ts文件转成js文件使用的是es3语言,语…...
React源码解读
配置React源码本地调试环境 本次环境构建采用了node版本为16、react-scripts 版本号为 3.4.4,源码下载地址 react源码调试: react源码调试环境 使用 create-react-app 脚手架创建项目 npx create-react-app react-test 进入刚刚下载的目录,弹射 crea…...

【DeepSeek-R1】 API申请(火山方舟联网版)
DeepSeek-R1 API申请(火山方舟联网版) 1、新建联网版应用2、开通信息增强服务3、开启联网内容插件4、创建接入点5、获取模型名称6、获取API Key 如果第一次注册账号,请先按照文章《【Deepseek-R1】 API申请(火山方舟)》…...

负载均衡集群——LVS-DR配置
一、简介 1.1 什么是集群? 两台及以上的计算机完成一个任务的模式称为集群。 常见的集群类型包括: LB(负载均衡)集群:按照不同的算法将前端的访问转发给后端计算点,使节点负载相对平衡。提高并发能力 缺…...

数据结构篇
链表 用数组模拟链表,看该链表结构,有几个域则用几个数组分别存储 单链表是只知道下一个元素位置,双链表还知道上一个链表位置 单链表 双向链表 左移右移 栈 模拟栈 判断括号序列 队列 模拟队列 递归 集合和哈希 集合就是哈希表 哈希表的实现…...

「软件设计模式」建造者模式(Builder)
深入解析建造者模式:用C打造灵活对象构建流水线 引言:当对象构建遇上排列组合 在开发复杂业务系统时,你是否经常面对这样的类:它有20个成员变量,其中5个是必填项,15个是可选项。当用户需要创建豪华套餐A&…...
Matlab 机器人 雅可比矩阵
工业机器人运动学与Matlab正逆解算法学习笔记(用心总结一文全会)(四)——雅可比矩阵_staubli机器人正逆向运动学实例验证matlab-CSDN博客 matlab求雅可比矩阵_六轴机械臂 矢量积法求解雅可比矩阵-CSDN博客 (63 封私信 / 80 条消息…...

DeepSeek 助力 Vue 开发:打造丝滑的面包屑导航(Breadcrumbs)
前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 目录 Deep…...

大型活动交通拥堵治理的视觉算法应用
大型活动下智慧交通的视觉分析应用 一、背景与挑战 大型活动(如演唱会、马拉松赛事、高考中考等)期间,城市交通面临瞬时人流车流激增、传统摄像头模糊、交通拥堵识别滞后等问题。以演唱会为例,暖城商圈曾因观众集中离场导致周边…...

基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容
基于 UniApp + WebSocket实现多端兼容的实时通讯系统,涵盖WebSocket连接建立、消息收发机制、多端兼容性配置、消息实时监听等功能,适配微信小程序、H5、Android、iOS等终端 目录 技术选型分析WebSocket协议优势UniApp跨平台特性WebSocket 基础实现连接管理消息收发连接…...

LeetCode - 394. 字符串解码
题目 394. 字符串解码 - 力扣(LeetCode) 思路 使用两个栈:一个存储重复次数,一个存储字符串 遍历输入字符串: 数字处理:遇到数字时,累积计算重复次数左括号处理:保存当前状态&a…...
MySQL用户和授权
开放MySQL白名单 可以通过iptables-save命令确认对应客户端ip是否可以访问MySQL服务: test: # iptables-save | grep 3306 -A mp_srv_whitelist -s 172.16.14.102/32 -p tcp -m tcp --dport 3306 -j ACCEPT -A mp_srv_whitelist -s 172.16.4.16/32 -p tcp -m tcp -…...
高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数
高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数 在软件开发中,单例模式(Singleton Pattern)是一种常见的设计模式,确保一个类仅有一个实例,并提供一个全局访问点。在多线程环境下,实现单例模式时需要注意线程安全问题,以防止多个线程同时创建实例,导致…...
tomcat指定使用的jdk版本
说明 有时候需要对tomcat配置指定的jdk版本号,此时,我们可以通过以下方式进行配置 设置方式 找到tomcat的bin目录中的setclasspath.bat。如果是linux系统则是setclasspath.sh set JAVA_HOMEC:\Program Files\Java\jdk8 set JRE_HOMEC:\Program Files…...
深度剖析 DeepSeek 开源模型部署与应用:策略、权衡与未来走向
在人工智能技术呈指数级发展的当下,大模型已然成为推动各行业变革的核心驱动力。DeepSeek 开源模型以其卓越的性能和灵活的开源特性,吸引了众多企业与开发者的目光。如何高效且合理地部署与运用 DeepSeek 模型,成为释放其巨大潜力的关键所在&…...

沙箱虚拟化技术虚拟机容器之间的关系详解
问题 沙箱、虚拟化、容器三者分开一一介绍的话我知道他们各自都是什么东西,但是如果把三者放在一起,它们之间到底什么关系?又有什么联系呢?我不是很明白!!! 就比如说: 沙箱&#…...

【iOS】 Block再学习
iOS Block再学习 文章目录 iOS Block再学习前言Block的三种类型__ NSGlobalBlock____ NSMallocBlock____ NSStackBlock__小结 Block底层分析Block的结构捕获自由变量捕获全局(静态)变量捕获静态变量__block修饰符forwarding指针 Block的copy时机block作为函数返回值将block赋给…...
js 设置3秒后执行
如何在JavaScript中延迟3秒执行操作 在JavaScript中,要设置一个操作在指定延迟后(例如3秒)执行,可以使用 setTimeout 函数。setTimeout 是JavaScript的核心计时器方法,它接受两个参数: 要执行的函数&…...