From 344d47ed6421d1f4f64f386f982d31a9a743e721 Mon Sep 17 00:00:00 2001 From: Hiroki Terashima Date: Tue, 9 Sep 2025 13:08:17 -0700 Subject: [PATCH 1/3] Specify spring security 5.8 (was: 5.7) --- pom.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/pom.xml b/pom.xml index 314cf5200..c26fbc3ac 100644 --- a/pom.xml +++ b/pom.xml @@ -560,6 +560,7 @@ UTF-8 + 5.8.16 2.2.5.RELEASE 1.0.9.RELEASE 0.3.0 From 7c051933929d63928cb107867becd64bf56172de Mon Sep 17 00:00:00 2001 From: Hiroki Terashima Date: Wed, 17 Sep 2025 14:46:46 -0700 Subject: [PATCH 2/3] Remove dependency on EhCache and use Spring's AclCache instead. --- pom.xml | 4 --- .../wise/portal/spring/impl/ACLContext.java | 36 ++++++++----------- 2 files changed, 14 insertions(+), 26 deletions(-) diff --git a/pom.xml b/pom.xml index c26fbc3ac..5ab62c717 100644 --- a/pom.xml +++ b/pom.xml @@ -428,10 +428,6 @@ mysql-connector-java 8.0.30 - - net.sf.ehcache - ehcache - com.zaxxer HikariCP diff --git a/src/main/java/org/wise/portal/spring/impl/ACLContext.java b/src/main/java/org/wise/portal/spring/impl/ACLContext.java index 9974b6145..14d2deeeb 100644 --- a/src/main/java/org/wise/portal/spring/impl/ACLContext.java +++ b/src/main/java/org/wise/portal/spring/impl/ACLContext.java @@ -23,13 +23,10 @@ */ package org.wise.portal.spring.impl; -import java.util.Properties; - import javax.sql.DataSource; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.cache.ehcache.EhCacheFactoryBean; -import org.springframework.cache.ehcache.EhCacheManagerFactoryBean; +import org.springframework.cache.CacheManager; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.core.env.Environment; @@ -37,10 +34,11 @@ import org.springframework.security.acls.domain.AclAuthorizationStrategyImpl; import org.springframework.security.acls.domain.ConsoleAuditLogger; import org.springframework.security.acls.domain.DefaultPermissionGrantingStrategy; -import org.springframework.security.acls.domain.EhCacheBasedAclCache; +import org.springframework.security.acls.domain.SpringCacheBasedAclCache; import org.springframework.security.acls.jdbc.BasicLookupStrategy; import org.springframework.security.acls.jdbc.JdbcMutableAclService; import org.springframework.security.acls.jdbc.LookupStrategy; +import org.springframework.security.acls.model.AclCache; import org.springframework.security.acls.model.MutableAclService; import org.springframework.security.acls.model.PermissionGrantingStrategy; import org.wise.portal.domain.authentication.MutableAclSid; @@ -60,22 +58,13 @@ public class ACLContext { @Autowired Environment appProperties; - @Bean - public EhCacheBasedAclCache aclCache() { - return new EhCacheBasedAclCache(aclEhCacheFactoryBean().getObject(), permissionGrantingStrategy(), aclAuthorizationStrategy()); - } - - @Bean - public EhCacheFactoryBean aclEhCacheFactoryBean() { - EhCacheFactoryBean ehCacheFactoryBean = new EhCacheFactoryBean(); - ehCacheFactoryBean.setCacheManager(aclCacheManager().getObject()); - ehCacheFactoryBean.setCacheName("aclCache"); - return ehCacheFactoryBean; - } + @Autowired + CacheManager cacheManager; @Bean - public EhCacheManagerFactoryBean aclCacheManager() { - return new EhCacheManagerFactoryBean(); + public AclCache aclCache() { + return new SpringCacheBasedAclCache(cacheManager.getCache("aclCache"), + permissionGrantingStrategy(), aclAuthorizationStrategy()); } @Bean @@ -90,14 +79,17 @@ public AclAuthorizationStrategy aclAuthorizationStrategy() { @Bean public LookupStrategy lookupStrategy() { - return new BasicLookupStrategy(dataSource, aclCache(), aclAuthorizationStrategy(), new ConsoleAuditLogger()); + return new BasicLookupStrategy(dataSource, aclCache(), aclAuthorizationStrategy(), + new ConsoleAuditLogger()); } @Bean public MutableAclService aclservice() { - JdbcMutableAclService aclService = new JdbcMutableAclService(dataSource, lookupStrategy(), aclCache()); + JdbcMutableAclService aclService = new JdbcMutableAclService(dataSource, lookupStrategy(), + aclCache()); if (appProperties.containsProperty("spring.datasource.driver-class-name")) { - String driverClass = (String) appProperties.getProperty("spring.datasource.driver-class-name"); + String driverClass = (String) appProperties + .getProperty("spring.datasource.driver-class-name"); if ("com.mysql.cj.jdbc.Driver".equals(driverClass)) { aclService.setClassIdentityQuery("SELECT @@IDENTITY"); aclService.setSidIdentityQuery("SELECT @@IDENTITY"); From b83ea8369778ce7a026a44b71adc0e520b81a0fd Mon Sep 17 00:00:00 2001 From: Hiroki Terashima Date: Wed, 17 Sep 2025 14:48:07 -0700 Subject: [PATCH 3/3] Remove unused method from Application.java --- src/main/java/org/wise/Application.java | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/src/main/java/org/wise/Application.java b/src/main/java/org/wise/Application.java index 41602332b..06ee87c15 100644 --- a/src/main/java/org/wise/Application.java +++ b/src/main/java/org/wise/Application.java @@ -24,13 +24,11 @@ package org.wise; import org.springframework.beans.factory.config.PropertiesFactoryBean; -import org.springframework.boot.CommandLineRunner; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; import org.springframework.cache.annotation.EnableCaching; -import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.Bean; import org.springframework.core.env.Environment; import org.springframework.core.io.ClassPathResource; @@ -58,18 +56,4 @@ public PropertiesFactoryBean i18nProperties() { bean.setLocation(new ClassPathResource("i18n/i18n.properties")); return bean; } - - @Bean - public CommandLineRunner commandLineRunner(ApplicationContext ctx) { - return args -> { - /* - System.out.println("Beans provided by Spring Boot:"); - String[] beanNames = ctx.getBeanDefinitionNames(); - Arrays.sort(beanNames); - for (String beanName : beanNames) { - System.out.println(beanName); - } - */ - }; - } }