Zum Hauptinhalt springen

Spring Boot

casdoor-spring-boot-example ist ein Beispiel dafür, wie man casdoor-spring-boot-starter in einem Spring Boot-Projekt verwendet. Wir werden Sie durch die folgenden Schritte führen.

Schritt 1: Casdoor einsetzen

Zuerst sollte Casdoor eingesetzt werden.

Sie können sich auf die offizielle Dokumentation von Casdoor für die Serverinstallation beziehen. Bitte setzen Sie Ihre Casdoor-Instanz im Produktionsmodus ein.

Nach einer erfolgreichen Einsetzung stellen Sie sicher, dass Folgendes:

  • Öffnen Sie Ihren bevorzugten Browser und besuchen Sie http://localhost:8000. Sie werden die Anmeldeseite von Casdoor sehen.
  • Testen Sie die Anmeldefunktionalität, indem Sie admin als Benutzernamen und 123 als Passwort eingeben.

Jetzt können Sie schnell eine auf Casdoor basierende Anmeldeseite in Ihrer eigenen App mit den folgenden Schritten implementieren.

Schritt 2: casdoor-spring-boot-starter importieren

Sie können den casdoor-spring-boot-starter mit Maven oder Gradle importieren.

<!-- https://mvnrepository.com/artifact/org.casbin/casdoor-spring-boot-starter -->
<dependency>
<groupId>org.casbin</groupId>
<artifactId>casdoor-spring-boot-starter</artifactId>
<version>1.x.y</version>
</dependency>

Schritt 3: Konfiguration initialisieren

Die Initialisierung erfordert 6 Zeichenketten-Typ-Parameter in der folgenden Reihenfolge: | Name | Erforderlich | Beschreibung | | ---------------- | ------------ | ----------------------------------------------- | | endpoint | Ja | Casdoor Server-URL, wie http://localhost:8000 | | clientId | Ja | Anwendungskunden-ID | | clientSecret | Ja | Anwendungskunden-Geheimnis | | certificate | Ja | Anwendungszertifikat | | organizationName | Ja | Anwendungsorganisation | | applicationName | Nein | Anwendungsname | Sie können Java-Eigenschaften oder YAML-Dateien für die Initialisierung verwenden.

casdoor.endpoint = http://localhost:8000
casdoor.clientId = <client-id>
casdoor.clientSecret = <client-secret>
casdoor.certificate = <certificate>
casdoor.organizationName = built-in
casdoor.applicationName = app-built-in
Vorsicht

Ersetzen Sie die Konfigurationswerte durch Ihre eigene Casdoor-Instanz, insbesondere den clientId, clientSecret und jwtPublicKey.

Schritt 4: Zur Anmeldeseite umleiten

Wenn Sie Benutzer authentifizieren müssen, die auf Ihre App zugreifen, können Sie die Ziel-URL senden und zur Anmeldeseite umleiten, die von Casdoor bereitgestellt wird. Stellen Sie sicher, dass Sie die Rückruf-URL (z.B. http://localhost:8080/login) vorher in der Anwendungskonfiguration hinzugefügt haben.

@Resource
private CasdoorAuthService casdoorAuthService;

@RequestMapping("toLogin")
public String toLogin() {
return "redirect:" + casdoorAuthService.getSigninUrl("http://localhost:8080/login");
}

Schritt 5: Token erhalten und parsen

Nachdem die Casdoor-Überprüfung bestanden ist, wird es mit dem Code und dem Zustand zurück zu Ihrer Anwendung umgeleitet.

Sie können den Code erhalten und die Methode getOAuthToken aufrufen, dann das JWT-Token parsen.

CasdoorUser enthält die grundlegenden Informationen über den Benutzer, die von Casdoor bereitgestellt werden. Sie können es verwenden, um die Sitzung in Ihrer Anwendung zu setzen.

@RequestMapping("login")
public String login(String code, String state, HttpServletRequest request) {
String token = "";
CasdoorUser user = null;
try {
token = casdoorAuthService.getOAuthToken(code, state);
user = casdoorAuthService.parseJwtToken(token);
} catch (CasdoorAuthException e) {
e.printStackTrace();
}
HttpSession session = request.getSession();
session.setAttribute("casdoorUser", user);
return "redirect:/";
}

Dienstleistungen

Beispiele für APIs werden unten gezeigt:

  • CasdoorAuthService
    • String token = casdoorAuthService.getOAuthToken(code, "app-built-in");
    • CasdoorUser casdoorUser = casdoorAuthService.parseJwtToken(token);
  • CasdoorUserService
    • CasdoorUser casdoorUser = casdoorUserService.getUser("admin");
    • CasdoorUser casdoorUser = casdoorUserService.getUserByEmail("admin@example.com");
    • CasdoorUser[] casdoorUsers = casdoorUserService.getUsers();
    • CasdoorUser[] casdoorUsers = casdoorUserService.getSortedUsers("created_time", 5);
    • int count = casdoorUserService.getUserCount("0");
    • CasdoorResponse response = casdoorUserService.addUser(user);
    • CasdoorResponse response = casdoorUserService.updateUser(user);
    • CasdoorResponse response = casdoorUserService.deleteUser(user);
  • CasdoorEmailService
    • CasdoorResponse response = casdoorEmailService.sendEmail(title, content, sender, receiver);
  • CasdoorSmsService
    • CasdoorResponse response = casdoorSmsService.sendSms(randomCode(), receiver);
  • CasdoorResourceService
    • CasdoorResponse response = casdoorResourceService.uploadResource(user, tag, parent, fullFilePath, file);
    • CasdoorResponse response = casdoorResourceService.deleteResource(file.getName());

Weitere Ressourcen

Sie können die folgenden Projekte/Dokumentationen erkunden, um mehr über die Integration von Java mit Casdoor zu erfahren: