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
Tout d'abord, Casdoor doit être déployé.
Vous pouvez vous référer à la documentation officielle de Casdoor pour l'Installation du Serveur. Veuillez déployer votre instance Casdoor en mode production.
Après un déploiement réussi, assurez-vous de ce qui suit :
- Ouvrez votre navigateur préféré et visitez http://localhost:8000. Vous verrez la page de connexion de Casdoor.
- Testez la fonctionnalité de connexion en entrant
admin
comme nom d'utilisateur et123
comme mot de passe.
Maintenant, vous pouvez rapidement implémenter une page de connexion basée sur Casdoor dans votre propre application en suivant les étapes suivantes.
É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
Lorsque vous avez besoin d'authentifier les utilisateurs qui accèdent à votre application, vous pouvez envoyer l'URL cible et rediriger vers la page de connexion fournie par Casdoor. 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 :