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 und123
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.
- 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: