Il est pertinent de s’assurer au démarrage de l’application que les clients et les rôles sont présents et de les créer si nécessaire.
La librairie sso-utils permet de rendre cette tâche très simple à mettre en oeuvre:
Configuration du pom.xml
... <dependency> <groupId>fr.sedoo</groupId> <artifactId>sedoo-sso-utils</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency> ... <repositories> <repository> <id>sso-snapshots</id> <url>https://sourcesup.renater.fr/nexus/repository/sdossoutils-snapshots</url> <snapshots><enabled>true</enabled></snapshots> </repository> </repositories> ...
Exemple de code
L’exemple suivant, crée un client utilisable par un backend et y associe plusieurs rôles. Typiquement, il peut être mis dans la méthode @PostConstruct d’un @Component.
String token = TokenProvider.getToken(config.getSsoLogin(), config.getSsoPassword());
ClientProvider.createBackendClient(config.getSsoBackendClientName(), token);
List<String> catalogueAdminRoles = config.getCatalogueAdminRoles();
for (String role : catalogueAdminRoles) {
RoleProvider.createRole(role, config.getSsoBackendClientName(), token);
}