Créé le: 2022-12-31 ; Révisé le: 2022-12-31
Dans build.gradle
ajouter:
// ...
dependencies {
// ...
// Login
implementation 'com.azure.spring:spring-cloud-azure-starter-active-directory'
implementation 'org.springframework.boot:spring-boot-starter-oauth2-client'
// ...
}
dependencyManagement {
imports {
mavenBom "com.azure.spring:spring-cloud-azure-dependencies:${springCloudAzureVersion}"
}
}
Puis dans gradle.properties
ajouter:
springCloudAzureVersion=4.5.0
ou plus récent.
Exemple:
@Configuration
@Profile("!JUNIT")
public class SecuritySpringConfig {
@Bean
public CookieCsrfTokenRepository cookieCsrfTokenRepository() {
var csrfTokenRepository = new CookieCsrfTokenRepository();
csrfTokenRepository.setCookieHttpOnly(false);
return csrfTokenRepository;
}
@Bean
public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
http.csrf().csrfTokenRepository(cookieCsrfTokenRepository());
http.authorizeRequests(requests -> requests.anyRequest().authenticated());
http.oauth2Login(Customizer.withDefaults());
http.oauth2Client();
return http.build();
}
}
Dans application.properties
ajouter:
spring.security.oauth2.client.registration.azure.client-name: Azure
spring.security.oauth2.client.registration.azure.client-authentication-method: basic
spring.security.oauth2.client.registration.azure.provider: azure-oauth-provider
spring.security.oauth2.client.registration.azure.scope: openid,email
spring.security.oauth2.client.registration.azure.authorization-grant-type: authorization_code
spring.security.oauth2.client.provider.azure-oauth-provider.authorization-uri: https://login.microsoftonline.com/common/oauth2/v2.0/authorize
spring.security.oauth2.client.provider.azure-oauth-provider.user-info-uri: https://graph.microsoft.com/oidc/userinfo
spring.security.oauth2.client.provider.azure-oauth-provider.token-uri: https://login.microsoftonline.com/common/oauth2/v2.0/token
spring.security.oauth2.client.provider.azure-oauth-provider.jwk-set-uri: https://login.microsoftonline.com/common/discovery/v2.0/keys
spring.security.oauth2.client.provider.azure-oauth-provider.user-name-attribute: sub
Vous aurez aussi à configurer les propriétés suivantes avec les informations spécifiques à votre application et vous pouvez les mettre dans le fichier application.properties
ou dans des variables d’environnement:
spring.security.oauth2.client.registration.azure.client-id=
spring.security.oauth2.client.registration.azure.client-secret=
spring.security.oauth2.client.registration.azure.redirect-uri=
useJUnitPlatform
dans build.gradle
parce que c’est pour jUnit 5; pas 4 (01:48:12)Il ne faut pas le laisser dans Git parce qu’il y a des secrets dedans.