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
adminals Benutzernamen und123als 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.
- Maven
- Gradle
<!-- 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>
// https://mvnrepository.com/artifact/org.casbin/casdoor-spring-boot-starter
implementation group: 'org.casbin', name: 'casdoor-spring-boot-starter', version: '1.x.y'
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.
- Properties
- YML
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
casdoor:
endpoint: http://localhost:8000
client-id: <client-id>
client-secret: <client-secret>
certificate: <certificate>
organization-name: built-in
application-name: app-built-in
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: