Passer au contenu principal

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.

<!-- 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>

Étape 3 : Initialiser la Configuration​

L'initialisation nécessite 6 paramètres de type chaîne de caractères dans l'ordre suivant :

NomRequisDescription
endpointOuiURL du serveur Casdoor, comme http://localhost:8000
clientIdOuiID client de l'application
clientSecretOuiSecret client de l'application
certificateOuiCertificat de l'application
organizationNameOuiOrganisation de l'application
applicationNameNonNom de l'application
Vous pouvez utiliser des propriétés Java ou des fichiers YAML pour l'initialisation.
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
prudence

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). Assurez-vous d'avoir ajouté l'URL de rappel (par exemple http://localhost:8080/login) dans la configuration de l'application au préalable.

@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 :