Spring Boot
casdoor-spring-boot-example est un exemple de comment utiliser casdoor-spring-boot-starter dans un projet Spring Boot. Nous allons vous guider à travers les étapes ci-dessous.
Étape 1 : Déployer Casdoor
Deploy Casdoor in production mode. See Server installation. Ensure the server is reachable and you can sign in (e.g. admin / 123).
Étape 2 : Importer casdoor-spring-boot-starter
Vous pouvez importer le casdoor-spring-boot-starter en utilisant Maven ou Gradle.
- 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'
Étape 3 : Initialiser la Configuration
L'initialisation nécessite 6 paramètres de type chaîne de caractères dans l'ordre suivant :
| Nom | Requis | Description |
|---|---|---|
| endpoint | Oui | URL du serveur Casdoor, comme http://localhost:8000 |
| clientId | Oui | ID client de l'application |
| clientSecret | Oui | Secret client de l'application |
| certificate | Oui | Certificat de l'application |
| organizationName | Oui | Organisation de l'application |
| applicationName | Non | Nom de l'application |
| Vous pouvez utiliser des propriétés Java ou des fichiers YAML pour l'initialisation. |
- 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
Remplacez les valeurs de configuration par celles de votre propre instance Casdoor, en particulier le clientId, clientSecret, et jwtPublicKey.
Étape 4 : Rediriger vers la Page de Connexion
To authenticate users, redirect them to Casdoor’s login page (with the target URL as needed).
Make sure you have added the callback URL (e.g. http://localhost:8080/login) in the application configuration beforehand.
@Resource
private CasdoorAuthService casdoorAuthService;
@RequestMapping("toLogin")
public String toLogin() {
return "redirect:" + casdoorAuthService.getSigninUrl("http://localhost:8080/login");
}
Étape 5 : Obtenir le Token et l'Analyser
Après que la vérification Casdoor soit passée, elle redirigera vers votre application avec le code et l'état.
Vous pouvez obtenir le code et appeler la méthode getOAuthToken, puis analyser le token JWT.
CasdoorUser contient les informations de base sur l'utilisateur fournies par Casdoor. Vous pouvez l'utiliser pour définir la session dans votre application.
@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:/";
}
Services
Des exemples d'API sont montrés ci-dessous :
- 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());
Plus de Ressources
Vous pouvez explorer les projets/docs suivants pour en savoir plus sur l'intégration de Java avec Casdoor :