CAS單點登錄(第7版)7.授權

如有疑問,請看視頻:CAS單點登錄(第7版)

  1. 授權
    1. 概述
      1. 授權和訪問管理

可以使用以下策略實施授權策略以保護 CAS 中的應用程序和依賴方。

        1. 服務訪問策略

服務訪問策略允許您定義授權和訪問策略,以控制對向 CAS 注冊的應用程序的入口訪問。此策略通常最適合基于 Web 的應用程序,而不管身份驗證協議如何,并強制執行 Course-grained 訪問策略來描述誰有權訪問給定應用程序。一旦訪問被授予,授權策略以及擴展后的 CAS 本身就完全不再干預,接下來由應用程序自身決定經過身份驗證的主體在應用程序中被允許做什么或訪問什么,這通常基于用戶權限、組成員身份和其他屬性。

在此處(服務與應用)閱讀有關此主題的更多信息。

        1. 細粒度授權

細粒度授權將允許您使用專用語言模型構建細粒度權限改造。該策略超越了控制向CAS注冊的應用程序的入口訪問,并允許您定義和開發詳細的授權規則,以確定是否允許訪問給定的API請求、資源或操作。此類API請求通常由API網關代理,該網關將充當PEP(授權執行),將請求路由到CAS,然后充當PDP(策略定義點)。

在此處閱讀有關此主題的更多信息。

    1. Heimdall
      1. Heimdall 授權

Heimdall 是一個簡單的基于規則的授權引擎,其主要職責是接受 HTTP 有效負載形式的授權請求,并以 HTTP 響應代碼的形式返回是允許還是拒絕請求的決定。您可以將此授權引擎放在 API 網關和反向代理后面,以保護您的 API 和服務,并允許它們制定對 CAS 的授權請求,接收響應并將其轉換回調用方。

在北歐神話中,Heimdall是守護入侵者的神和守門人,并被證明擁有先見之明和敏銳的感官。作為看門人,他負責彩虹橋 Bifrost 并密切關注乘客。

一般流程可使用以下步驟進行總結:

  1. 可授權資源已向 CAS 注冊
  1. …使用適當的方法、URI、命名空間和上下文
  2. …使用適當的授權策略
  1. 授權請求已提交給 CAS
  1. …與適當的校長/科目
  2. …使用適當的方法、URI、命名空間和上下文
  1. CAS 根據請求查找匹配的可授權資源
  1. …然后根據請求確定主體/主題
  1. 然后,CAS 會咨詢授權引擎,以根據資源、委托人和請求做出決策
  2. CAS 向調用方返回響應,接受或拒絕請求

?用法

請注意,CAS 只是充當策略定義點 (PDP) 和策略信息點 (PIP)。授權執行 (PEP) 必須由調用方在其他地方進行,這通常發生在 bean API 網關或 nginx 反向代理等上。

        1. 配置

通過在覆蓋中包含以下依賴項來啟用 Heimdall 授權支持:

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-heimdall"}

CAS 配置目錄中提供了以下設置和屬性:

必填

筆記

下面列出的配置設置在 CAS 配置元數據中標記為 Required。此標志表示可能需要該設置的存在才能激活或影響 CAS 功能的行為,并且通常應進行審查、可能擁有和調整。如果為該設置分配了默認值,則無需嚴格將該設置放在配置副本中,但仍應對其進行檢查以確保它符合您的部署預期。

Show??entries

搜索:

·??cas.heimdall.json.location=

在 CAS 能夠自動監視底層資源的更改并動態檢測更新和修改的情況和場景中,您可以將以下設置指定為環境變量或系統屬性,其值為?false,以禁用資源觀察程序:org.apereo.cas.util.io.PathWatcherService。

?org.apereo.cas.configuration.model.SpringResourceProperties.

如何配置此屬性?

顯示 1 到 1 的 1 個條目

上一頁1下一頁

        1. 授權請求

授權請求是一個簡單的負載,它使用終端節點?/heimdall/authorize?通過?POST?發送到 Heimdall 授權引擎。有效負載具有以下結構:

1

2

3

4

5

6

7

8

{

??"method" : "POST",

??"uri" : "/api/example?hello=world",

??"namespace" : "API_EXAMPLE",

??"context" : {

????"key" : "value"

??}}

…它試圖詢問 CAS:

是否允許使用 HTTP 方法?POST?對?API_EXAMPLE?擁有的?/api/example?hello=world?的請求?

支持以下元素:

描述

method

請求的 HTTP 方法以允許或拒絕。

uri

供調用方訪問和調用的請求 URI。

namespace

相關 API 或資源的所有者的邏輯名稱。

context

自由格式的鍵值對,用于基于任意上下文數據的更高級決策。

典型響應包括?200、401?或?403。

        1. 授權委托人

授權請求應使用?Bearer?或?Basic?方案 (Authorization: Bearer/Basic ...) 提供?Authorization?標頭。標頭中的令牌必須指示要使用請求中指定的詳細信息訪問資源的人員、使用者或授權委托人。

authorization 標頭值可以是以下值之一:

  1. 一個 OpenID Connect?ID 令牌,作為Bearer名令牌傳遞,由 CAS 在充當?OpenID Connect 提供商時生成。
  2. 一個 JWT 訪問令牌,作為Bearer名令牌傳遞,由 CAS 在充當?OAuth?或?OpenID Connect?身份提供者時生成。
  3. 不透明的訪問令牌(即?AT-1-...),作為Bearer記名令牌傳遞,由 CAS 在充當?OAuth?或?OpenID Connect?身份提供商時生成。
  4. 一個有效的 Base64 編碼的?username:password,作為?Basic?令牌傳遞,可被 CAS 身份驗證引擎接受。

提取所有令牌類型的聲明或屬性并將其附加到最終委托人,然后將其傳遞給授權策略引擎以做出決策。

        1. 授權資源

Heimdall 支持和保護的可授權資源和 API 應在 CAS 中注冊。這是通過平面 JSON 文件定義和配置資源及其關聯所有者的列表來完成的。為了便于發現,文件按 API 所有者或組(即?API_EXAMPLE.json)進行命名和分類,這些 API 所有者或組描述了該命名空間中的 API 集合:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

{

??"@class": "org.apereo.cas.heimdall.authorizer.resource.AuthorizableResources",

??"resources": [

????"java.util.ArrayList",

????[

??????{

????????"@class": "org.apereo.cas.heimdall.authorizer.resource.AuthorizableResource",

????????"id": 1,

????????"pattern": "/api/example.*",

????????"method": "PUT",

????????"enforceAllPolicies": false,

????????"policies": [ "java.util.ArrayList", [

????????????{}

????????]],

????????"properties" : {

????????????"@class" : "java.util.HashMap",

????????????"key" : "value"

????????}

??????}

????]

??],

??"namespace": "API_EXAMPLE"}

請注意,策略的加載、排序和評估是按照它們在文件中定義的順序進行的。如果您的策略對模式進行操作,則可能需要確保首先列出最具體的策略。

?用法

請記住,文件名大多無關緊要。雖然我們建議使用合理的命名約定,但策略中的?namespace?字段實際上是確定其所有者的部分。

指定命名空間和資源擁有的授權策略支持以下元素:

描述

id

此資源的唯一數字標識符。

pattern

描述資源或 API 終端節點的 URI 正則表達式模式。

method

允許訪問資源的 HTTP 方法(作為正則表達式模式,或?*?表示所有)。

policies

附加到資源以允許或拒絕訪問的策略列表。

enforceAllPolicies

是否必須查閱所有策略才能授權請求。默認值為?false。

properties

附加到資源的任意鍵值對,用于高級決策。

          1. 自定義

您還可以構建自己的存儲庫實現來注冊和加載可授權資源。這可以通過提供?AuthorizableResourceRepository的專用實現并將其注冊到運行時來完成:

1

2

3

4

@Beanpublic AuthorizableResourceRepository authorizableResourceRepository(

????return new MyResourceRepository();}

請參閱本指南,了解有關如何將配置注冊到 CAS 運行時的更多信息。

        1. 授權策略

策略是附加到資源以允許或拒絕訪問的規則。每個可授權資源都可以分配有一個或多個策略。策略按照為資源定義策略的順序進行評估。CAS 支持以下策略:

Groovy

GROUPER 組

組權限

必需屬性

被拒絕的屬性

必需的 ACR

所需的 AMR

所需受眾

必需的頒發者

必需的范圍

REST API

OPENFGA

一個授權策略,可以接受內聯或外部?Groovy 腳本來做出決策:

1

2

3

4

5

6

7

8

9

10

11

12

{

??"@class": "org.apereo.cas.heimdall.authorizer.resource.policy.GroovyAuthorizationPolicy",

??"script" :

????'''

??????groovy {

??????????def iAllowThis = true

??????????return iAllowThis

????????????? AuthorizationResult.granted("OK")

????????????: AuthorizationResult.denied("NOPE")

??????}

????'''}

以下參數將傳遞給腳本:

參數

描述

resource

匹配的?AuthorizableResource?對象。

request

提供的?AuthorizationRequest?對象。

applicationContext

對 Spring?ApplicationContext?引用的引用。

logger

負責發出日志消息的對象,例如?logger.info(...)

        1. 執行器端點

CAS 提供以下端點:

? GET

/cas/actuator/heimdall/resources?

獲取所有可授權資源。

? GET

/cas/actuator/heimdall/resources/{namespace}?

? GET

/cas/actuator/heimdall/resources/{namespace}/{id}?

? POST

/cas/actuator/heimdall/resource?

    1. OpenFGA
      1. 服務訪問策略 - OpenFGA

OpenFGA?是一種快速、靈活的細粒度授權系統,旨在實現大規模的可靠性和低延遲。它由 Okta/Auth0 設計、構建和贊助。

此訪問策略構建授權請求并將其提交到 OpenFGA 的check?API 終端節點。授權請求的細節使用訪問策略本身中通常定義的設置傳授給 CAS:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

{

??"@class" : "org.apereo.cas.services.CasRegisteredService",

??"serviceId" : "^https://.+",

??"name" : "test",

??"id" : 1,

??"accessStrategy" : {

????"@class": "org.apereo.cas.services.OpenFGARegisteredServiceAccessStrategy",

????"apiUrl": "http://localhost:8080",

????"object": "my-document",

????"relation": "owner",

????"storeId": "Y75hgyt75mhp",

????"token": "92d4a401-86b4-4636-b742-a7c8034756a0"

??}}

以下字段可用于此訪問策略:

目的

relation

[1] 授權元組中的訪問關系或類型;默認為?owner。

object

[1] 授權元組的對象;如果未定義,則默認為服務 URL。

storeId

[1] 授權存儲標識符。

apiUrl

[1] OpenFGA 端點 URL。

token

[1] 如果需要,要在?Authorization?標頭中使用的不記名令牌。

  1. 此字段支持?Spring 表達式語言語法。
    1. Cerbos
      1. 服務訪問策略 - Cerbos

Cerbos?是一種與語言無關的開放核心可擴展授權解決方案,通過為應用程序資源編寫上下文感知訪問控制策略,使用戶權限和授權易于實施和管理。

此訪問策略構建授權請求并將其提交到 Cerbos 的?check/resources?API 端點。有關授權請求的要點:

資源 ID 分配給 CAS 注冊服務的數字標識符。

所有 principal 屬性都打包并包含在授權請求中。

授權請求中包含有關 CAS 注冊服務的以下詳細信息:

serviceUrl:應用程序 URL。

serviceName:已注冊的服務名稱。

serviceId:已注冊的服務 ID。

serviceFriendlyName:已注冊的服務友好名稱。

serviceType:已注冊的服務類型。

授權請求的細節使用通常在訪問策略本身中定義的設置教給 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

{

??"@class" : "org.apereo.cas.services.CasRegisteredService",

??"serviceId" : "^https://.+",

??"name" : "test",

??"id" : 1,

??"accessStrategy" : {

????"@class": "org.apereo.cas.services.CerbosRegisteredServiceAccessStrategy",

????"apiUrl": "http://localhost:3592",

????"token": "...",

????"scope": "scope1",

????"requestId": "...",

????"rolesAttribute": "memberOf",

????"kind": "kind1",

????"actions": [ "java.util.ArrayList", [ "read", "write", "view"] ],

????"auxData": {

????????"@class": "java.util.HashMap"

????????"jwt": {

????????????"@class": "java.util.HashMap",

????????????"token": "...",

????????????"keySetId": "..."

????????}

????}

??}}

以下字段可用于此訪問策略:

目的

apiUrl

[1] Cerbos 端點 URL 默認為?http://localhost:3592。

token

[1] 如果需要,要在?Authorization?標頭中使用的不記名令牌。

requestId

[1] 請求 ID 可以是唯一標識請求的任何內容。

kind

[1] 資源類型。必填。此值用于確定要評估的資源策略。

scope

[1] 資源范圍。自選。

rolesAttribute

[1] 屬性名稱,默認為?memberOf,表示分配給 CAS 主體的角色列表。

actions

對資源執行的操作列表。

auxData

自選。用于提供輔助數據的 block。有關更多信息,請參閱?Cerbos。

  1. 此字段支持?Spring 表達式語言語法。
    1. Permit.io
      1. 服務訪問策略 - Permit.io

Permit.io?以服務形式提供權限,使開發人員能夠快速將權限和訪問控制融入到應用程序中。它提供了一個集中式控制面板、SDK、API 和微服務,開發人員需要添加這些微服務來創建決策和執行點。

此訪問策略嘗試將用戶與 Permit.io 同步,然后構建授權請求并將其提交給 Permit.io。授權請求的細節使用訪問策略本身中通常定義的設置傳授給 CAS:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

{

??"@class" : "org.apereo.cas.services.CasRegisteredService",

??"serviceId" : "^https://.+",

??"name" : "test",

??"id" : 1,

??"accessStrategy" : {

????"@class": "org.apereo.cas.services.PermitRegisteredServiceAccessStrategy",

????"action": "...",

????"resource": "...",

????"apiKey": "...",

????"tenant": "default",

????"pdpAddress": "https://cloudpdp.api.permit.io",

????"emailAttributeName": "email",

????"firstNameAttributeName": "firstname",

????"lastNameAttributeName": "lastname",

????"context" : {

??????"@class" : "java.util.TreeMap",

??????"param1" : "value1"

????}

??}}

以下字段可用于此訪問策略:

目的

apiKey

[1] Permit.io API SDK 密鑰,允許 SDK 進行身份驗證、同步帳戶等。

action

需要執行或評估的操作或權限。

resource

正在請求訪問的資源。

tenant

自選。租戶 ID 或密鑰在 Permit.io 中定義,并在您可能擁有多個租戶的情況下使用。

pdpAddress

[1] 可選。Permit.io API 終端節點。

emailAttributeName

自選。同步賬戶時用于標識委托人電子郵件的屬性名稱。

firstNameAttributeName

自選。在同步賬戶時用于標識委托人名字的屬性名稱。

lastNameAttributeName

自選。同步賬戶時用于標識委托人的姓氏的屬性名稱。

  1. 此字段支持?Spring 表達式語言語法。
    1. Open Policy 代理
      1. 服務訪問策略 - 開放策略代理 (OPA)

Open Policy Agent?是一個開源的通用策略引擎,可在整個堆棧中實現統一、精細和上下文感知的策略實施。策略以高級聲明性語言表示,具有給定的上下文,可促進安全、高性能、精細的控制。

此訪問策略構建授權請求并通過?POST?將其提交給 OPA。授權請求的細節使用訪問策略本身中通常定義的設置傳授給 CAS:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

{

??"@class" : "org.apereo.cas.services.CasRegisteredService",

??"serviceId" : "^https://.+.example.org",

??"name" : "test",

??"id" : 1,

??"accessStrategy" : {

????"@class": "org.apereo.cas.services.OpenPolicyAgentRegisteredServiceAccessStrategy",

????"apiUrl": "http://localhost:8080",

????"decision": "example/authz/allow",

????"token": "92d4a401q26o0",

????"context" : {

??????"@class" : "java.util.TreeMap",

??????"param1" : "value1"

????}

??}}

以下字段可用于此訪問策略:

目的

apiUrl

[1] OPA 端點 URL。

decision

在 OPA 中定義的策略決策的名稱。

token

[1] 如果需要,要在?Authorization?標頭中使用的不記名令牌。

context

自定義上下文,用于攜帶數據以協助策略決策。

[1] 此字段支持?Spring 表達式語言語法。

input?參數下的授權請求正文與以下結構匹配:

1

2

3

4

5

6

7

8

9

10

{

??"input": {

????"principal": "casuser",

????"service": "https://myapp.example.com",

????"attributes": {

??????"email": ["user@example.org"]

????},

????"context": { "parameter1": "value1" }

??}}

如果策略評估成功,OPA 將返回 HTTP?200?響應代碼。非 HTTP?200?響應代碼指示配置或運行時錯誤。策略決策結果包含在響應消息正文的?result?key 中:

1

2

3

{

??"result": true}

    1. AWS 驗證權限
      1. 服務訪問策略 - AWS Verified Permissions

Amazon Verified Permissions?是一種可擴展的權限管理和細粒度授權服務,適用于您構建的應用程序。

此訪問策略會構建授權請求并將其提交給 Amazon Verified Permissions。授權請求的細節使用訪問策略本身中通常定義的設置傳授給 CAS:

1

2

3

4

5

6

7

8

9

10

11

12

{

??"@class": "org.apereo.cas.aws.authz.AmazonVerifiedPermissionsRegisteredServiceAccessStrategy",

??"credentialAccessKey": "...",

??"credentialSecretKey": "...",

??"region": "us-east-1",

??"policyStoreId": "...",

??"actionId": "read",

??"context": {

????"@class": "java.util.LinkedHashMap",

????"key": "value"

??}}

以下字段可用于此訪問策略:

目的

credentialAccessKey

[1](可選)用于驗證請求的訪問密鑰。

credentialSecretKey

[1](可選)用于驗證請求的密鑰。

region

[1](可選)用于授權 API 請求的 AWS 區域。

policyStoreId

[1](可選)此策略存儲中用于使用授權的策略

context

(可選)用于精細授權決策的其他上下文。

actionId

[1] 指定要授權的請求操作。

[1] 此字段支持?Spring 表達式語言語法。

        1. 自定義
          1. 自定義無密碼身份驗證令牌

您還可以使用以下 bean 定義并通過實現?PasswordlessTokenRepository?來定義自己的令牌 Management 存儲:

1

2

3

4

@Beanpublic PasswordlessTokenRepository passwordlessTokenRepository() {

????...}

請參閱本指南,了解有關如何將配置注冊到 CAS 運行時的更多信息。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/895563.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/895563.shtml
英文地址,請注明出處:http://en.pswp.cn/news/895563.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

53倍性能提升!TiDB 全局索引如何優化分區表查詢?

作者: Defined2014 原文來源: https://tidb.net/blog/7077577f 什么是 TiDB 全局索引 在 TiDB 中,全局索引是一種定義在分區表上的索引類型,它允許索引分區與表分區之間建立一對多的映射關系,即一個索引分區可以對…

排序(Sortable)

排序(Sortable) 引言 在計算機科學和數據管理領域,排序算法是一項基本且重要的技能。排序算法能夠將一組無序的數據轉換為有序的數據,從而便于后續的數據處理和分析。本文將深入探討排序算法的基本概念、常用排序方法、以及它們…

紫光展銳蜂窩物聯網芯片V8850榮獲國密一級安全認證

近日,紫光展銳蜂窩物聯網芯片V8850榮獲國密一級認證,標志著展銳V8850在安全能力方面獲得權威認可,位居行業領先水平。這是紫光展銳繼短距物聯網芯片V5663在2020獲得ARM PSA Level 2認證,蜂窩物聯網芯片V8811在2021年獲得ARM PSA L…

I.MX6ull-I2C

一,I2C總線介紹 I2C(Inter-Integrated Circuit 集成電路)總線是Philips公司在八十年代初推出的一種串行、半雙工的總 線,主要用于近距離、低速的芯片之間的通信;I2C總線有兩根雙向的信號線,一根數據線SDA用于收 發數據,一根時鐘線…

書籍推薦:《書法課》林曦

記得樊登老師說過,如果你想了解一個事物,就去讀5本相關的書,你會比大部分人都更了解它。這是我讀的第4本和“書法”有關的書,作為一個零基礎的成年人,林曦這本《書法課》非常值得一讀。(無論你是否寫字&…

【大疆無人機地圖測繪技術學習:高精度、高效率的全流程解決方案】

文章目錄 大疆無人機地圖測繪算法詳解一、數據采集(一)飛行平臺與傳感器(二)航線規劃(三)數據類型 二、數據處理與建模(一)數據導入與預處理(二)空三計算&…

【刪除tomcat默認管理控制臺】

停止Tomcat: ./catalina.sh stop 刪除管理控制臺應用: 進入Tomcat的webapps目錄: cd /path/to/tomcat/webapps List item 刪除manager和host-manager文件夾: rm -rf manager host-manager 啟動Tomcat: ./catali…

工具資料+H3C 交換機常見故障分析排查+高危操作

當我們從客戶那里接到一個故障時,我們根據現象讓客戶收集一堆信息,然后集成商、代理商、設備廠家一級一級的反復咨詢與確認,天天經歷這樣的場景。幾乎每個故障我們都要經過多個層級的人處理,信息的交流占據了每個人大部分的時間,反復的收集信息與確認問題現象也會讓客戶不厭其煩…

STM32:USB 虛擬串口以及使用usb->dfu進行iap

本文介紹stm32上usb的常用功能虛擬串口和DFU(Download Firmware Update) 文章目錄 前言一、usb二、虛擬串口1.cubemx配置1.我們選用高速usb,然后選擇內部低速的phy,這樣使用的usb,最高速度為12Mbit每秒。2.USB_DEVICE cdc類配置3.時鐘配置&am…

HCIA項目實踐--靜態路由的綜合實驗

八 靜態路由綜合實驗 (1)劃分網段 # 192.168.1.0 24#分析:每個路由器存在兩個環回接口,可以把兩個環回接口分配一個環回地址,所以是四個環回,一個骨干,這樣分配,不會出現路由黑洞#19…

C++基礎知識(三)之結構體、共同體、枚舉、引用、函數重載

九、結構體、共同體和枚舉 1、結構體的基本概念 結構體是用戶自定義的類型,可以將多種數據的表示合并到一起,描述一個完整的對象。 使用結構體有兩個步驟:1)定義結構體描述(類型);2&#xff…

通過內網穿透ssh實現遠程對家里的linux進行終端操作和編程

內網穿透就是將自己的地址當穿透到公網ip,這一就可以在外網訪問了(因為大部分人ip都是動態分配的),以適用ssh遠程連接,我這里用的是極點云cpolar,反正也是黑框編程,免費就行了。我是ubuntu虛擬機,在虛擬機上…

Redis 數據類型 Zset 有序集合

有序集合相對于字符串、列表、哈希、集合來說會有?些陌?。它保留了集合不能有重復成員的特點,但與集合不同的是,有序集合中的每個元素都有?個唯?的浮點類型的分數(score)與之關 聯,著使得有序集合中的元素是可以維…

PHP 中的除以零錯誤

除以零錯誤(Division by zero)是指數字除以零的情況, 這在數學上是未定義的。在 PHP 中,處理這種錯誤的方式取決于 PHP 版本: PHP 7: 使用 / 運算符會產生一個警告 (E_WARNING) 并返回 false。 使用 intd…

基于springboot軌道交通安全評估系統(源碼+lw+部署文檔+講解),源碼可白嫖!

摘要 時代在飛速進步,每個行業都在努力發展現在先進技術,通過這些先進的技術來提高自己的水平和優勢,軌道交通安全評估管理當然不能排除在外。軌道交通安全評估系統是在實際應用和軟件工程的開發原理之上,運用Java語言以及Spring…

前端面試題目---頁面抖動的原因、如何避免、如何解決

前端頁面抖動是一個常見且影響用戶體驗的問題,下面將從抖動發生的場景、解決辦法以及預防措施三個方面進行詳細闡述。 頁面抖動發生的場景 1. 元素尺寸動態變化 圖片加載:當頁面中圖片的寬高沒有預先設定,在圖片加載完成后,其實…

vue知識點3

1.使用componenent的好處 符合高內聚,低耦合。一個組件出問題了,不會影響其他組件。 2.vue版本決定了一些使用框架的版本 vue2使用的路由版本只能到3 3.路由的配置介紹一下 a.安裝路由的插件 npm install vue-router3 b.整理文件路徑 將路徑整理…

如何測試和驗證CVE-2024-1430:Netgear R7000 路由器信息泄露漏洞分析

CVE-2024-1430 是一個影響 Netgear R7000 路由器的安全漏洞,漏洞來源于該路由器 Web 管理界面的信息泄露問題。攻擊者通過訪問 /currentsetting.htm 文件,可能泄露敏感信息,如 Wi-Fi 密碼等。 在測試和驗證 CVE-2024-1430 時,您需…

數據結構:哈夫曼樹

1.概念 哈夫曼樹(Huffman Tree)是一種用于數據壓縮的二叉樹,由大衛哈夫曼(David A. Huffman)于1952年提出。它通過構建最優二叉樹來實現數據的高效壓縮,廣泛應用于文件壓縮、圖像壓縮等領域。 哈夫曼樹的…

UE5.2后 Bake Out Materials失效

這個問題出現在5.3,5.4,5.5沒有測試 烘焙貼圖后會找不到貼圖位置, 這個是5.2的正常狀態 默認是生成在模型當前目錄里,包括新的材質 但是這個bug會讓材質和貼圖都消失,無法定位 暫時沒有辦法解決,等官方 …