Skip to content

Commit 724194a

Browse files
Update Spring Boot 3 version to Spring Boot 3.4.7
1 parent e66f2e3 commit 724194a

File tree

10 files changed

+47
-25
lines changed

10 files changed

+47
-25
lines changed

apps/backend-api-springboot3/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<parent>
66
<groupId>org.springframework.boot</groupId>
77
<artifactId>spring-boot-starter-parent</artifactId>
8-
<version>3.3.13</version>
8+
<version>3.4.7</version>
99
<relativePath/> <!-- lookup parent from repository -->
1010
</parent>
1111
<groupId>com.example</groupId>

apps/backend-api-springboot3/src/main/java/com/acme/backend/springboot/users/web/UsersController.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
import java.util.HashMap;
1212
import java.util.Map;
1313

14-
1514
@Slf4j
1615
@RestController
1716
@RequestMapping("/api/users")

apps/bff-springboot3/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<parent>
66
<groupId>org.springframework.boot</groupId>
77
<artifactId>spring-boot-starter-parent</artifactId>
8-
<version>3.3.13</version>
8+
<version>3.4.7</version>
99
<relativePath/> <!-- lookup parent from repository -->
1010
</parent>
1111
<groupId>com.github.thomasdarimont.training</groupId>

apps/frontend-webapp-springboot3/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<parent>
66
<groupId>org.springframework.boot</groupId>
77
<artifactId>spring-boot-starter-parent</artifactId>
8-
<version>3.3.13</version>
8+
<version>3.4.7</version>
99
<relativePath/> <!-- lookup parent from repository -->
1010
</parent>
1111
<modelVersion>4.0.0</modelVersion>

apps/frontend-webapp-springboot3/src/main/java/com/github/thomasdarimont/keycloak/webapp/config/KeycloakWebClientConfig.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,8 @@ public RestClient keycloakWebClient(OAuth2AuthorizedClientManager authorizedClie
3131

3232
var clientRegistration = clientRegistrations.findByRegistrationId("keycloak");
3333

34-
ClientHttpRequestInterceptor oauthInterceptor = new OAuth2ClientInterceptor(authorizedClientManager, clientRegistration);
34+
var oauthInterceptor = new OAuth2ClientInterceptor(authorizedClientManager, clientRegistration);
35+
3536
return RestClient.builder() //
3637
.requestInterceptor(oauthInterceptor) //
3738
.defaultHeaders(headers -> {

apps/frontend-webapp-springboot3/src/main/java/com/github/thomasdarimont/keycloak/webapp/config/WebSecurityConfig.java

Lines changed: 38 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,10 @@
22

33
import com.github.thomasdarimont.keycloak.webapp.support.HttpSessionOAuth2AuthorizedClientService;
44
import com.github.thomasdarimont.keycloak.webapp.support.security.KeycloakLogoutHandler;
5+
import jakarta.servlet.http.HttpServletRequest;
6+
import jakarta.servlet.http.HttpServletResponse;
57
import lombok.RequiredArgsConstructor;
8+
import lombok.extern.slf4j.Slf4j;
69
import org.springframework.boot.actuate.autoconfigure.endpoint.web.CorsEndpointProperties;
710
import org.springframework.context.annotation.Bean;
811
import org.springframework.context.annotation.Configuration;
@@ -12,8 +15,10 @@
1215
import org.springframework.security.core.authority.mapping.GrantedAuthoritiesMapper;
1316
import org.springframework.security.oauth2.client.OAuth2AuthorizedClientService;
1417
import org.springframework.security.oauth2.client.endpoint.DefaultAuthorizationCodeTokenResponseClient;
18+
import org.springframework.security.oauth2.client.endpoint.OAuth2AccessTokenResponseClient;
1519
import org.springframework.security.oauth2.client.endpoint.OAuth2AuthorizationCodeGrantRequest;
1620
import org.springframework.security.oauth2.client.endpoint.OAuth2AuthorizationCodeGrantRequestEntityConverter;
21+
import org.springframework.security.oauth2.client.endpoint.RestClientAuthorizationCodeTokenResponseClient;
1722
import org.springframework.security.oauth2.client.registration.ClientRegistrationRepository;
1823
import org.springframework.security.oauth2.client.web.AuthorizationRequestRepository;
1924
import org.springframework.security.oauth2.client.web.DefaultOAuth2AuthorizationRequestResolver;
@@ -28,8 +33,8 @@
2833
import org.springframework.util.MultiValueMap;
2934

3035
import java.util.HashSet;
31-
import java.util.List;
3236

37+
@Slf4j
3338
@Configuration
3439
@RequiredArgsConstructor
3540
class WebSecurityConfig {
@@ -76,20 +81,37 @@ public SecurityFilterChain filterChain(HttpSecurity http, ClientRegistrationRepo
7681
private static void customizeTokenEndpointRequest(OAuth2LoginConfigurer<HttpSecurity> o2lc) {
7782
// customize the token endpoint request parameters
7883
o2lc.tokenEndpoint(tec -> {
79-
DefaultAuthorizationCodeTokenResponseClient accessTokenResponseClient = new DefaultAuthorizationCodeTokenResponseClient();
80-
accessTokenResponseClient.setRequestEntityConverter(new OAuth2AuthorizationCodeGrantRequestEntityConverter(){
81-
@Override
82-
protected MultiValueMap<String, String> createParameters(OAuth2AuthorizationCodeGrantRequest authorizationCodeGrantRequest) {
83-
84-
// if used with instance specific backchannel logout url: https://${application.session.host}:4633/webapp/logout
85-
MultiValueMap<String, String> parameters = super.createParameters(authorizationCodeGrantRequest);
86-
parameters.add("client_session_state", "bubu123");
87-
parameters.add("client_session_host", "apps.acme.test");
88-
return parameters;
89-
}
90-
});
91-
tec.accessTokenResponseClient(accessTokenResponseClient);
84+
85+
tec.accessTokenResponseClient(
86+
createCustomAccessTokenResponseClientNew()
87+
// createCustomAccessTokenResponseClientOld()
88+
);
89+
});
90+
}
91+
92+
private static OAuth2AccessTokenResponseClient<OAuth2AuthorizationCodeGrantRequest> createCustomAccessTokenResponseClientNew() {
93+
var accessTokenResponseClient = new RestClientAuthorizationCodeTokenResponseClient();
94+
accessTokenResponseClient.setParametersCustomizer(parameters -> {
95+
parameters.add("client_session_state", "bubu123");
96+
parameters.add("client_session_host", "apps.acme.test");
97+
});
98+
return accessTokenResponseClient;
99+
}
100+
101+
private static OAuth2AccessTokenResponseClient<OAuth2AuthorizationCodeGrantRequest> createCustomAccessTokenResponseClientOld() {
102+
var accessTokenResponseClient = new DefaultAuthorizationCodeTokenResponseClient();
103+
accessTokenResponseClient.setRequestEntityConverter(new OAuth2AuthorizationCodeGrantRequestEntityConverter(){
104+
@Override
105+
protected MultiValueMap<String, String> createParameters(OAuth2AuthorizationCodeGrantRequest authorizationCodeGrantRequest) {
106+
107+
// if used with instance specific backchannel logout url: https://${application.session.host}:4633/webapp/logout
108+
MultiValueMap<String, String> parameters = super.createParameters(authorizationCodeGrantRequest);
109+
parameters.add("client_session_state", "bubu123");
110+
parameters.add("client_session_host", "apps.acme.test");
111+
return parameters;
112+
}
92113
});
114+
return accessTokenResponseClient;
93115
}
94116

95117
/**
@@ -112,8 +134,7 @@ public OAuth2AuthorizedClientRepository authorizedClientRepository() {
112134
@Bean
113135
public OAuth2AuthorizedClientService oAuth2AuthorizedClientService(OAuth2AuthorizedClientRepository clientRegistrationRepository) {
114136
// var oauthAuthorizedClientService = new InMemoryOAuth2AuthorizedClientService(clientRegistrationRepository);
115-
var oauthAuthorizedClientService = new HttpSessionOAuth2AuthorizedClientService(clientRegistrationRepository);
116-
return oauthAuthorizedClientService;
137+
return new HttpSessionOAuth2AuthorizedClientService(clientRegistrationRepository);
117138
}
118139

119140
private GrantedAuthoritiesMapper userAuthoritiesMapper() {
@@ -129,6 +150,7 @@ private GrantedAuthoritiesMapper userAuthoritiesMapper() {
129150
// TODO extract roles from userInfo response
130151
// List<SimpleGrantedAuthority> groupAuthorities = userInfo.getClaimAsStringList("groups").stream().map(g -> new SimpleGrantedAuthority("ROLE_" + g.toUpperCase())).collect(Collectors.toList());
131152
// mappedAuthorities.addAll(groupAuthorities);
153+
log.info("Got userinfo. userinfo={}", userInfo);
132154
}
133155
});
134156

apps/frontend-webapp-springboot3/src/main/java/com/github/thomasdarimont/keycloak/webapp/support/security/KeycloakLogoutHandler.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ public void logout(HttpServletRequest request, HttpServletResponse response, Aut
3333
try {
3434
response.sendRedirect(logoutUrl);
3535
} catch (IOException e) {
36-
e.printStackTrace();
36+
log.error("Could not send redirect to logoutUrl", e);
3737
}
3838

3939
}

apps/jwt-client-authentication/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<parent>
66
<groupId>org.springframework.boot</groupId>
77
<artifactId>spring-boot-starter-parent</artifactId>
8-
<version>3.3.13</version>
8+
<version>3.4.7</version>
99
<relativePath/> <!-- lookup parent from repository -->
1010
</parent>
1111
<groupId>com.github.thomasdarimont.keycloak</groupId>

apps/offline-session-client/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
<parent>
88
<groupId>org.springframework.boot</groupId>
99
<artifactId>spring-boot-starter-parent</artifactId>
10-
<version>3.3.13</version>
10+
<version>3.4.7</version>
1111
<relativePath/> <!-- lookup parent from repository -->
1212
</parent>
1313

apps/spring-boot-device-flow-client/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<parent>
66
<groupId>org.springframework.boot</groupId>
77
<artifactId>spring-boot-starter-parent</artifactId>
8-
<version>3.3.13</version>
8+
<version>3.4.7</version>
99
<relativePath/> <!-- lookup parent from repository -->
1010
</parent>
1111
<groupId>com.github.thomasdarimont.keycloak</groupId>

0 commit comments

Comments
 (0)