Skip to content

Commit e851ead

Browse files
committed
Refactor WebSecurityConfig for improved readability and efficiency
1 parent 1336559 commit e851ead

2 files changed

Lines changed: 7 additions & 170 deletions

File tree

FIXES.md

Lines changed: 0 additions & 153 deletions
This file was deleted.

src/main/java/com/digitalsanctuary/spring/user/security/WebSecurityConfig.java

Lines changed: 7 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,9 @@
11
package com.digitalsanctuary.spring.user.security;
22

3-
import static org.springframework.security.config.Customizer.withDefaults;
43
import java.util.ArrayList;
54
import java.util.Arrays;
65
import java.util.Collections;
76
import java.util.List;
8-
import java.util.stream.Collectors;
9-
10-
import com.digitalsanctuary.spring.user.service.DSOidcUserService;
117
import org.springframework.beans.factory.annotation.Value;
128
import org.springframework.context.ApplicationEventPublisher;
139
import org.springframework.context.annotation.Bean;
@@ -33,6 +29,7 @@
3329
import org.springframework.security.web.session.HttpSessionEventPublisher;
3430
import com.digitalsanctuary.spring.user.roles.RolesAndPrivilegesConfig;
3531
import com.digitalsanctuary.spring.user.service.DSOAuth2UserService;
32+
import com.digitalsanctuary.spring.user.service.DSOidcUserService;
3633
import com.digitalsanctuary.spring.user.service.LoginSuccessService;
3734
import com.digitalsanctuary.spring.user.service.LogoutSuccessService;
3835
import lombok.Data;
@@ -145,9 +142,7 @@ public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Excepti
145142

146143
// Configure remember-me only if explicitly enabled and key is provided
147144
if (rememberMeEnabled && rememberMeKey != null && !rememberMeKey.trim().isEmpty()) {
148-
http.rememberMe(rememberMe -> rememberMe
149-
.key(rememberMeKey)
150-
.userDetailsService(userDetailsService));
145+
http.rememberMe(rememberMe -> rememberMe.key(rememberMeKey).userDetailsService(userDetailsService));
151146
}
152147

153148
http.logout(logout -> logout.logoutUrl(logoutActionURI).logoutSuccessUrl(logoutSuccessURI).invalidateHttpSession(true)
@@ -239,8 +234,7 @@ private List<String> getUnprotectedURIsList() {
239234
*/
240235
@Bean
241236
public DaoAuthenticationProvider authProvider() {
242-
final DaoAuthenticationProvider authProvider = new DaoAuthenticationProvider();
243-
authProvider.setUserDetailsService(userDetailsService);
237+
DaoAuthenticationProvider authProvider = new DaoAuthenticationProvider(userDetailsService);
244238
authProvider.setPasswordEncoder(encoder());
245239
return authProvider;
246240
}
@@ -280,8 +274,7 @@ public RoleHierarchy roleHierarchy() {
280274
log.error("WebSecurityConfig.roleHierarchy: rolesAndPrivilegesConfig.getRoleHierarchyString() is null!");
281275
return null;
282276
}
283-
RoleHierarchyImpl roleHierarchy = new RoleHierarchyImpl();
284-
roleHierarchy.setHierarchy(rolesAndPrivilegesConfig.getRoleHierarchyString());
277+
RoleHierarchyImpl roleHierarchy = RoleHierarchyImpl.fromHierarchy(rolesAndPrivilegesConfig.getRoleHierarchyString());
285278
log.debug("WebSecurityConfig.roleHierarchy: roleHierarchy: {}", roleHierarchy.toString());
286279
return roleHierarchy;
287280
}
@@ -299,8 +292,8 @@ public SecurityExpressionHandler<FilterInvocation> webExpressionHandler() {
299292
}
300293

301294
/**
302-
* The methodSecurityExpressionHandler method creates a MethodSecurityExpressionHandler object and sets the roleHierarchy for the handler.
303-
* This ensures that method security annotations like @PreAuthorize use the configured role hierarchy.
295+
* The methodSecurityExpressionHandler method creates a MethodSecurityExpressionHandler object and sets the roleHierarchy for the handler. This
296+
* ensures that method security annotations like @PreAuthorize use the configured role hierarchy.
304297
*
305298
* @return the MethodSecurityExpressionHandler object
306299
*/
@@ -343,10 +336,7 @@ private String[] splitAndFilterProperty(String property) {
343336
if (property == null || property.trim().isEmpty()) {
344337
return new String[0];
345338
}
346-
return Arrays.stream(property.split(","))
347-
.map(String::trim)
348-
.filter(s -> !s.isEmpty())
349-
.toArray(String[]::new);
339+
return Arrays.stream(property.split(",")).map(String::trim).filter(s -> !s.isEmpty()).toArray(String[]::new);
350340
}
351341

352342
/**

0 commit comments

Comments
 (0)