|
1
|
|
|
package org.apereo.cas; |
|
2
|
|
|
|
|
3
|
|
|
import com.fasterxml.jackson.databind.ObjectMapper; |
|
4
|
|
|
import org.apache.commons.io.FileUtils; |
|
5
|
|
|
import org.apereo.cas.authentication.principal.DefaultPrincipalAttributesRepository; |
|
6
|
|
|
import org.apereo.cas.authentication.principal.Principal; |
|
7
|
|
|
import org.apereo.cas.authentication.principal.PrincipalAttributesRepository; |
|
8
|
|
|
import org.apereo.cas.authentication.principal.PrincipalFactory; |
|
9
|
|
|
import org.apereo.cas.config.CasAuthenticationEventExecutionPlanTestConfiguration; |
|
10
|
|
|
import org.apereo.cas.config.CasCoreAuthenticationPrincipalConfiguration; |
|
11
|
|
|
import org.apereo.cas.config.CasCoreAuthenticationServiceSelectionStrategyConfiguration; |
|
12
|
|
|
import org.apereo.cas.config.CasCoreConfiguration; |
|
13
|
|
|
import org.apereo.cas.config.CasCoreHttpConfiguration; |
|
14
|
|
|
import org.apereo.cas.config.CasCoreServicesConfiguration; |
|
15
|
|
|
import org.apereo.cas.config.CasCoreTicketCatalogConfiguration; |
|
16
|
|
|
import org.apereo.cas.config.CasCoreTicketIdGeneratorsConfiguration; |
|
17
|
|
|
import org.apereo.cas.config.CasCoreTicketsConfiguration; |
|
18
|
|
|
import org.apereo.cas.config.CasCoreUtilConfiguration; |
|
19
|
|
|
import org.apereo.cas.config.CasCoreWebConfiguration; |
|
20
|
|
|
import org.apereo.cas.config.CasDefaultServiceTicketIdGeneratorsConfiguration; |
|
21
|
|
|
import org.apereo.cas.config.CasPersonDirectoryTestConfiguration; |
|
22
|
|
|
import org.apereo.cas.config.CasRegisteredServicesTestConfiguration; |
|
23
|
|
|
import org.apereo.cas.config.support.CasWebApplicationServiceFactoryConfiguration; |
|
24
|
|
|
import org.apereo.cas.logout.config.CasCoreLogoutConfiguration; |
|
25
|
|
|
import org.junit.Test; |
|
26
|
|
|
import org.junit.runner.RunWith; |
|
27
|
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
28
|
|
|
import org.springframework.beans.factory.annotation.Qualifier; |
|
29
|
|
|
import org.springframework.boot.test.context.SpringBootTest; |
|
30
|
|
|
import org.springframework.cloud.autoconfigure.RefreshAutoConfiguration; |
|
31
|
|
|
import org.springframework.test.context.junit4.SpringRunner; |
|
32
|
|
|
|
|
33
|
|
|
import java.io.File; |
|
34
|
|
|
import java.io.IOException; |
|
35
|
|
|
import java.util.Collections; |
|
36
|
|
|
|
|
37
|
|
|
import static org.junit.Assert.*; |
|
38
|
|
|
|
|
39
|
|
|
/** |
|
40
|
|
|
* Handles tests for {@link DefaultPrincipalAttributesRepository}. |
|
41
|
|
|
* |
|
42
|
|
|
* @author Misagh Moayyed |
|
43
|
|
|
* @since 4.1 |
|
44
|
|
|
*/ |
|
45
|
|
|
@RunWith(SpringRunner.class) |
|
46
|
|
|
@SpringBootTest(classes = { |
|
47
|
|
|
RefreshAutoConfiguration.class, |
|
48
|
|
|
CasCoreConfiguration.class, |
|
49
|
|
|
CasCoreTicketsConfiguration.class, |
|
50
|
|
|
CasCoreLogoutConfiguration.class, |
|
51
|
|
|
CasCoreServicesConfiguration.class, |
|
52
|
|
|
CasCoreTicketIdGeneratorsConfiguration.class, |
|
53
|
|
|
CasCoreTicketCatalogConfiguration.class, |
|
54
|
|
|
CasCoreAuthenticationServiceSelectionStrategyConfiguration.class, |
|
55
|
|
|
CasCoreHttpConfiguration.class, |
|
56
|
|
|
CasCoreWebConfiguration.class, |
|
57
|
|
|
CasPersonDirectoryTestConfiguration.class, |
|
58
|
|
|
CasCoreUtilConfiguration.class, |
|
59
|
|
|
CasRegisteredServicesTestConfiguration.class, |
|
60
|
|
|
CasWebApplicationServiceFactoryConfiguration.class, |
|
61
|
|
|
CasAuthenticationEventExecutionPlanTestConfiguration.class, |
|
62
|
|
|
CasDefaultServiceTicketIdGeneratorsConfiguration.class, |
|
63
|
|
|
CasCoreAuthenticationPrincipalConfiguration.class |
|
64
|
|
|
}) |
|
65
|
|
|
public class DefaultPrincipalAttributesRepositoryTests { |
|
66
|
|
|
|
|
67
|
|
|
private static final File JSON_FILE = new File(FileUtils.getTempDirectoryPath(), "defaultPrincipalAttributesRepository.json"); |
|
68
|
|
|
private static final ObjectMapper MAPPER = new ObjectMapper(); |
|
69
|
|
|
|
|
70
|
|
|
@Autowired |
|
71
|
|
|
@Qualifier("principalFactory") |
|
72
|
|
|
private PrincipalFactory principalFactory; |
|
73
|
|
|
|
|
74
|
|
|
@Test |
|
75
|
|
|
public void checkDefaultAttributes() { |
|
76
|
|
|
final PrincipalAttributesRepository rep = new DefaultPrincipalAttributesRepository(); |
|
77
|
|
|
assertEquals(rep.getAttributes(this.principalFactory.createPrincipal("uid")).size(), 3); |
|
78
|
|
|
} |
|
79
|
|
|
|
|
80
|
|
|
@Test |
|
81
|
|
|
public void checkInitialAttributes() { |
|
82
|
|
|
final Principal p = this.principalFactory.createPrincipal("uid", Collections.singletonMap("mail", "[email protected]")); |
|
83
|
|
|
final PrincipalAttributesRepository rep = new DefaultPrincipalAttributesRepository(); |
|
84
|
|
|
assertEquals(rep.getAttributes(p).size(), 1); |
|
85
|
|
|
assertTrue(rep.getAttributes(p).containsKey("mail")); |
|
86
|
|
|
} |
|
87
|
|
|
|
|
88
|
|
|
@Test |
|
89
|
|
|
public void verifySerializeADefaultPrincipalAttributesRepositoryToJson() throws IOException { |
|
90
|
|
|
final PrincipalAttributesRepository repositoryWritten = new DefaultPrincipalAttributesRepository(); |
|
91
|
|
|
MAPPER.writeValue(JSON_FILE, repositoryWritten); |
|
92
|
|
|
final PrincipalAttributesRepository repositoryRead = MAPPER.readValue(JSON_FILE, DefaultPrincipalAttributesRepository.class); |
|
93
|
|
|
assertEquals(repositoryWritten, repositoryRead); |
|
94
|
|
|
} |
|
95
|
|
|
} |
|
96
|
|
|
|