二、记一次失败的 CAS 搭建 之 证书配置
=========================================================================================================
Setp2:SSL证书生成::参考:http://www.open-open.com/lib/view/open1392018954614.html
=========================================================================================================
1、生成keypair
keytool -genkeypair -alias cas -keyalg RSA -storepass changeit
默认情况下,生成的 keystore 就是用户目录下的 .keystore 文件。对于 Win8 而言,默认的用户目录为 C:\Users\用户名。
生成keypair的时候,信息随便输入即可,最后选择“y”,然后直接回车,不要输入密码
2、从 keystore 中导出证书
keytool -exportcert -alias cas -file cas.crt -storepass changeit
3、导入证书
keytool -importcert -alias cas -file cas.crt -keystore "%JAVA_HOME%\jre\lib\security\cacerts" -storepass changeit -noprompt
4、双击执行运行证书!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



PHP-Sicherheitsüberprüfung durch CAS (CentralAuthenticationService) Mit der rasanten Entwicklung des Internets werden Benutzerrechteverwaltung und Identitätsüberprüfung immer wichtiger. Bei der Entwicklung von Webanwendungen ist es von entscheidender Bedeutung, Benutzerdaten zu schützen und unbefugten Zugriff zu verhindern. Um dieses Ziel zu erreichen, können wir CAS (CentralAuthenticationService) zur PHP-Sicherheitsüberprüfung verwenden. CAS

1. Erklären Sie, dass, wenn mehrere Threads gleichzeitig CAS-Operationen für eine Ressource ausführen, nur ein Thread erfolgreich ist, andere Threads jedoch nicht blockiert werden und andere Threads nur ein Signal erhalten, dass die Operation fehlgeschlagen ist. Es ist ersichtlich, dass CAS tatsächlich eine optimistische Sperre ist. 2. Wenn wir dem AtomInteger-Code folgen, können wir feststellen, dass letztendlich sum.misc.Unsafe aufgerufen wird. Schauen Sie sich den Namen „Unsafe“ an. Dabei handelt es sich um eine unsichere Klasse, die genau die richtigen Lücken in den Klassen- und Sichtbarkeitsregeln von Java ausnutzt. Aus Gründen der Geschwindigkeit geht Unsafe einige Kompromisse bei den Sicherheitsstandards von Java ein. publicfinalnativebooleancompareAndSwapInt(Objec

CAS-Erklärung: CAS (compareandswap), vergleichen und austauschen. Ein Mechanismus, der den durch die Verwendung von Sperren in Situationen mit mehreren Threads verursachten Leistungsverlust beheben kann. Die CAS-Operation enthält drei Operanden: Speicherort (V), erwarteter Originalwert (A) und neuer Wert (B). Wenn der Wert eines Speicherorts mit dem erwarteten Originalwert übereinstimmt, aktualisiert der Prozessor den Ort automatisch auf den neuen Wert. Ansonsten macht der Prozessor nichts. Ein Thread ruft den Num-Wert aus dem Hauptspeicher ab und verarbeitet Num. Beim Schreiben des Werts vergleicht der Thread den ersten Num-Wert mit dem Num-Wert im Hauptspeicher. Wenn sie gleich sind, ist der geänderte Wert Num Wenn sie nicht gleich sind, wird der Vergleich wiederholt, bis er erfolgreich ist. Hergestellt von CAS

Gesperrte Parallelität Für die meisten Programmierer (natürlich bin ich im Grunde einer von ihnen) ist gleichzeitiges Programmieren fast gleichbedeutend mit dem Hinzufügen einer Sperre (Mutex) zur relevanten Datenstruktur. Wenn wir beispielsweise einen Stapel benötigen, der Parallelität unterstützt, besteht die einfachste Möglichkeit darin, eine Sperre std::sync::Mutex zu einem Single-Threaded-Stack hinzuzufügen. (Arc wird hinzugefügt, um mehreren Threads den Besitz des Stapels zu ermöglichen) usestd::sync::{Mutex,Arc};#[derive(Clone)]structConcurrentStack{inner:Arc,}implConcurrentStack{pubfnnew()-> Self{

Was CASCAS ist, ist CompareAndSwap, also Vergleichen und Tauschen. Warum verwendet CAS keine Sperren, gewährleistet aber dennoch den sicheren Betrieb von Daten unter gleichzeitigen Bedingungen? Daten und der zu ändernde Wert werden an die Methode übergeben, um zu vergleichen, ob der aktuelle Zielvariablenwert mit dem ursprünglich übergebenen Wert übereinstimmt. Wenn sie identisch sind, bedeutet dies, dass die Zielvariable nicht von anderen Threads geändert wurde . Ändern Sie einfach den Zielvariablenwert direkt, dann beweisen Sie, dass die Zielvariable von anderen Threads geändert wurde. Aus dem obigen Prozess können wir ersehen garantiert tatsächlich eine sichere Änderung der Daten, es gibt jedoch Fälle, in denen die Änderung fehlschlägt.

Im Programm habe ich 100 Threads erstellt und jeder Thread hat 10.000 Operationen für die gemeinsam genutzte Variable inc gesammelt. Wenn es synchron ausgeführt wird, sollte der Endwert von inc 1.000.000 sein, aber wir wissen, dass das Programm beim Multithreading gleichzeitig ausgeführt wird Das heißt, verschiedene Threads können gleichzeitig denselben Wert aus dem Hauptspeicher lesen.

1. Erstellen Sie ein neues Springboot-Projekt und führen Sie die Abhängigkeit org.jasig.cas.clientcas-client-support-springboot3.6.22 ein. Konfigurieren Sie das @EnableCasClient-Annotationspaketcom.codetiler.demo;importorg.jasig.cas.client.boot.configuration. EnableCasClient;importorg.springframework.boot.SpringApplication;importorg.spring

In dieser Ausgabe geht es um die Analyse eines klassischen ABA-Problems im CAS-Bereich. Ich weiß nicht, ob Sie in der tatsächlichen Arbeit darauf gestoßen sind, aber dies ist der Schwerpunkt des Parallelitätswissenstests im Interview. Wenn Sie noch nicht auf ein solches Problem gestoßen sind, empfehle ich Ihnen, den obigen Code selbst auszuführen.
