JAVA-29285 Upgrade spring-security-acl (#15821)
Co-authored-by: timis1 <noreplay@yahoo.com>
This commit is contained in:
parent
97f6735499
commit
10f477e635
|
@ -11,7 +11,8 @@
|
||||||
|
|
||||||
<parent>
|
<parent>
|
||||||
<groupId>com.baeldung</groupId>
|
<groupId>com.baeldung</groupId>
|
||||||
<artifactId>spring-security-modules</artifactId>
|
<artifactId>parent-boot-3</artifactId>
|
||||||
|
<relativePath>../../parent-boot-3</relativePath>
|
||||||
<version>0.0.1-SNAPSHOT</version>
|
<version>0.0.1-SNAPSHOT</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
|
@ -46,16 +47,6 @@
|
||||||
<groupId>org.springframework</groupId>
|
<groupId>org.springframework</groupId>
|
||||||
<artifactId>spring-context-support</artifactId>
|
<artifactId>spring-context-support</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
|
||||||
<groupId>net.sf.ehcache</groupId>
|
|
||||||
<artifactId>ehcache-core</artifactId>
|
|
||||||
<version>${ehcache-core.version}</version>
|
|
||||||
<type>jar</type>
|
|
||||||
</dependency>
|
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
<properties>
|
|
||||||
<ehcache-core.version>2.6.11</ehcache-core.version>
|
|
||||||
</properties>
|
|
||||||
|
|
||||||
</project>
|
</project>
|
|
@ -4,8 +4,7 @@ import javax.sql.DataSource;
|
||||||
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
|
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
|
||||||
import org.springframework.cache.ehcache.EhCacheFactoryBean;
|
import org.springframework.cache.concurrent.ConcurrentMapCache;
|
||||||
import org.springframework.cache.ehcache.EhCacheManagerFactoryBean;
|
|
||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
import org.springframework.security.access.expression.method.DefaultMethodSecurityExpressionHandler;
|
import org.springframework.security.access.expression.method.DefaultMethodSecurityExpressionHandler;
|
||||||
|
@ -16,7 +15,7 @@ import org.springframework.security.acls.domain.AclAuthorizationStrategy;
|
||||||
import org.springframework.security.acls.domain.AclAuthorizationStrategyImpl;
|
import org.springframework.security.acls.domain.AclAuthorizationStrategyImpl;
|
||||||
import org.springframework.security.acls.domain.ConsoleAuditLogger;
|
import org.springframework.security.acls.domain.ConsoleAuditLogger;
|
||||||
import org.springframework.security.acls.domain.DefaultPermissionGrantingStrategy;
|
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.BasicLookupStrategy;
|
||||||
import org.springframework.security.acls.jdbc.JdbcMutableAclService;
|
import org.springframework.security.acls.jdbc.JdbcMutableAclService;
|
||||||
import org.springframework.security.acls.jdbc.LookupStrategy;
|
import org.springframework.security.acls.jdbc.LookupStrategy;
|
||||||
|
@ -31,21 +30,9 @@ public class ACLContext {
|
||||||
DataSource dataSource;
|
DataSource dataSource;
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
public EhCacheBasedAclCache aclCache() {
|
public SpringCacheBasedAclCache aclCache() {
|
||||||
return new EhCacheBasedAclCache(aclEhCacheFactoryBean().getObject(), permissionGrantingStrategy(), aclAuthorizationStrategy());
|
final ConcurrentMapCache aclCache = new ConcurrentMapCache("acl_cache");
|
||||||
}
|
return new SpringCacheBasedAclCache(aclCache, permissionGrantingStrategy(), aclAuthorizationStrategy());
|
||||||
|
|
||||||
@Bean
|
|
||||||
public EhCacheFactoryBean aclEhCacheFactoryBean() {
|
|
||||||
EhCacheFactoryBean ehCacheFactoryBean = new EhCacheFactoryBean();
|
|
||||||
ehCacheFactoryBean.setCacheManager(aclCacheManager().getObject());
|
|
||||||
ehCacheFactoryBean.setCacheName("aclCache");
|
|
||||||
return ehCacheFactoryBean;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Bean
|
|
||||||
public EhCacheManagerFactoryBean aclCacheManager() {
|
|
||||||
return new EhCacheManagerFactoryBean();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
package com.baeldung.acl.persistence.entity;
|
package com.baeldung.acl.persistence.entity;
|
||||||
|
|
||||||
import javax.persistence.Column;
|
import jakarta.persistence.Column;
|
||||||
import javax.persistence.Entity;
|
import jakarta.persistence.Entity;
|
||||||
import javax.persistence.Id;
|
import jakarta.persistence.Id;
|
||||||
import javax.persistence.Table;
|
import jakarta.persistence.Table;
|
||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
@Table(name="system_message")
|
@Table(name="system_message")
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
INSERT INTO acl_sid (id, principal, sid) VALUES
|
INSERT INTO acl_sid (principal, sid) VALUES
|
||||||
(1, 1, 'manager'),
|
(1, 'manager'),
|
||||||
(2, 1, 'hr'),
|
(1, 'hr'),
|
||||||
(3, 0, 'ROLE_EDITOR');
|
(0, 'ROLE_EDITOR');
|
||||||
|
|
||||||
INSERT INTO acl_class (id, class) VALUES
|
INSERT INTO acl_class (id, class) VALUES
|
||||||
(1, 'com.baeldung.acl.persistence.entity.NoticeMessage');
|
(1, 'com.baeldung.acl.persistence.entity.NoticeMessage');
|
||||||
|
@ -11,16 +11,16 @@ INSERT INTO system_message(id,content) VALUES
|
||||||
(2,'Second Level Message'),
|
(2,'Second Level Message'),
|
||||||
(3,'Third Level Message');
|
(3,'Third Level Message');
|
||||||
|
|
||||||
INSERT INTO acl_object_identity (id, object_id_class, object_id_identity, parent_object, owner_sid, entries_inheriting) VALUES
|
INSERT INTO acl_object_identity (object_id_class, object_id_identity, parent_object, owner_sid, entries_inheriting) VALUES
|
||||||
(1, 1, 1, NULL, 3, 0),
|
(1, 1, NULL, 3, 0),
|
||||||
(2, 1, 2, NULL, 3, 0),
|
(1, 2, NULL, 3, 0),
|
||||||
(3, 1, 3, NULL, 3, 0);
|
(1, 3, NULL, 3, 0);
|
||||||
|
|
||||||
INSERT INTO acl_entry (id, acl_object_identity, ace_order, sid, mask, granting, audit_success, audit_failure) VALUES
|
INSERT INTO acl_entry (acl_object_identity, ace_order, sid, mask, granting, audit_success, audit_failure) VALUES
|
||||||
(1, 1, 1, 1, 1, 1, 1, 1),
|
(1, 1, 1, 1, 1, 1, 1),
|
||||||
(2, 1, 2, 1, 2, 1, 1, 1),
|
(1, 2, 1, 2, 1, 1, 1),
|
||||||
(3, 1, 3, 3, 1, 1, 1, 1),
|
(1, 3, 3, 1, 1, 1, 1),
|
||||||
(4, 2, 1, 2, 1, 1, 1, 1),
|
(2, 1, 2, 1, 1, 1, 1),
|
||||||
(5, 2, 2, 3, 1, 1, 1, 1),
|
(2, 2, 3, 1, 1, 1, 1),
|
||||||
(6, 3, 1, 3, 1, 1, 1, 1),
|
(3, 1, 3, 1, 1, 1, 1),
|
||||||
(7, 3, 2, 3, 2, 1, 1, 1);
|
(3, 2, 3, 2, 1, 1, 1);
|
|
@ -4,10 +4,12 @@ import com.baeldung.acl.Application;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
import org.springframework.boot.test.context.SpringBootTest;
|
import org.springframework.boot.test.context.SpringBootTest;
|
||||||
|
import org.springframework.test.annotation.DirtiesContext;
|
||||||
import org.springframework.test.context.junit4.SpringRunner;
|
import org.springframework.test.context.junit4.SpringRunner;
|
||||||
|
|
||||||
@RunWith(SpringRunner.class)
|
@RunWith(SpringRunner.class)
|
||||||
@SpringBootTest(classes = Application.class)
|
@SpringBootTest(classes = Application.class)
|
||||||
|
@DirtiesContext
|
||||||
public class SpringContextTest {
|
public class SpringContextTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
Loading…
Reference in New Issue