44import static org .junit .jupiter .api .Assertions .assertFalse ;
55import static org .junit .jupiter .api .Assertions .assertNotNull ;
66import static org .junit .jupiter .api .Assertions .assertTrue ;
7- import static org .mockito .Mockito .when ;
87import static org .springframework .security .oauth2 .client .registration .ClientRegistration .withRegistrationId ;
98
10- import com .fasterxml .jackson .dataformat .yaml .YAMLMapper ;
119import io .kafbat .ui .config .auth .OAuthProperties ;
12- import io .kafbat .ui .model . rbac . Role ;
10+ import io .kafbat .ui .config . auth . RoleBasedAccessControlProperties ;
1311import io .kafbat .ui .service .rbac .AccessControlService ;
1412import io .kafbat .ui .service .rbac .extractor .CognitoAuthorityExtractor ;
1513import io .kafbat .ui .service .rbac .extractor .GithubAuthorityExtractor ;
1614import io .kafbat .ui .service .rbac .extractor .GoogleAuthorityExtractor ;
1715import io .kafbat .ui .service .rbac .extractor .OauthAuthorityExtractor ;
1816import io .kafbat .ui .service .rbac .extractor .ProviderAuthorityExtractor ;
1917import io .kafbat .ui .util .AccessControlServiceMock ;
20- import java .io .IOException ;
21- import java .io .InputStream ;
2218import java .time .Instant ;
2319import java .time .temporal .ChronoUnit ;
2420import java .util .HashMap ;
2824import lombok .SneakyThrows ;
2925import org .junit .jupiter .api .BeforeEach ;
3026import org .junit .jupiter .api .Test ;
27+ import org .junit .jupiter .api .extension .ExtendWith ;
28+ import org .springframework .beans .factory .annotation .Autowired ;
29+ import org .springframework .boot .context .properties .EnableConfigurationProperties ;
3130import org .springframework .security .core .authority .AuthorityUtils ;
3231import org .springframework .security .oauth2 .client .userinfo .OAuth2UserRequest ;
3332import org .springframework .security .oauth2 .core .AuthorizationGrantType ;
3433import org .springframework .security .oauth2 .core .OAuth2AccessToken ;
3534import org .springframework .security .oauth2 .core .user .DefaultOAuth2User ;
3635import org .springframework .security .oauth2 .core .user .OAuth2User ;
37-
36+ import org .springframework .test .context .TestPropertySource ;
37+ import org .springframework .test .context .junit .jupiter .SpringExtension ;
38+
39+ @ ExtendWith (SpringExtension .class )
40+ @ EnableConfigurationProperties (RoleBasedAccessControlProperties .class )
41+ @ TestPropertySource (
42+ locations = "classpath:application-roles-definition.yml" ,
43+ factory = YamlPropertySourceFactory .class
44+ )
3845public class RegexBasedProviderAuthorityExtractorTest {
3946
40-
41- private final AccessControlService accessControlService = new AccessControlServiceMock (). getMock () ;
42- ProviderAuthorityExtractor extractor ;
47+ @ Autowired
48+ private RoleBasedAccessControlProperties properties ;
49+ private AccessControlService accessControlService ;
4350
4451 @ BeforeEach
45- void setUp () throws IOException {
46-
47- YAMLMapper mapper = new YAMLMapper ();
48-
49- InputStream rolesFile = this .getClass ()
50- .getClassLoader ()
51- .getResourceAsStream ("roles_definition.yaml" );
52-
53- Role [] roles = mapper .readValue (rolesFile , Role [].class );
54-
55- when (accessControlService .getRoles ()).thenReturn (List .of (roles ));
56-
52+ public void configure () {
53+ this .accessControlService = new AccessControlServiceMock (properties .getRoles ()).getMock ();
5754 }
5855
5956 @ SneakyThrows
6057 @ Test
6158 void extractOauth2Authorities () {
6259
63- extractor = new OauthAuthorityExtractor ();
60+ ProviderAuthorityExtractor extractor = new OauthAuthorityExtractor ();
6461
6562 OAuth2User oauth2User = new DefaultOAuth2User (
6663 AuthorityUtils .createAuthorityList ("SCOPE_message:read" ),
@@ -84,7 +81,7 @@ void extractOauth2Authorities() {
8481 @ Test ()
8582 void extractOauth2Authorities_blankEmail () {
8683
87- extractor = new OauthAuthorityExtractor ();
84+ ProviderAuthorityExtractor extractor = new OauthAuthorityExtractor ();
8885
8986 OAuth2User oauth2User = new DefaultOAuth2User (
9087 AuthorityUtils .createAuthorityList ("SCOPE_message:read" ),
@@ -108,7 +105,7 @@ void extractOauth2Authorities_blankEmail() {
108105 @ Test
109106 void extractCognitoAuthorities () {
110107
111- extractor = new CognitoAuthorityExtractor ();
108+ ProviderAuthorityExtractor extractor = new CognitoAuthorityExtractor ();
112109
113110 OAuth2User oauth2User = new DefaultOAuth2User (
114111 AuthorityUtils .createAuthorityList ("SCOPE_message:read" ),
@@ -133,7 +130,7 @@ void extractCognitoAuthorities() {
133130 @ Test
134131 void extractGithubAuthorities () {
135132
136- extractor = new GithubAuthorityExtractor ();
133+ ProviderAuthorityExtractor extractor = new GithubAuthorityExtractor ();
137134
138135 OAuth2User oauth2User = new DefaultOAuth2User (
139136 AuthorityUtils .createAuthorityList ("SCOPE_message:read" ),
@@ -170,7 +167,7 @@ void extractGithubAuthorities() {
170167 @ Test
171168 void extractGoogleAuthorities () {
172169
173- extractor = new GoogleAuthorityExtractor ();
170+ ProviderAuthorityExtractor extractor = new GoogleAuthorityExtractor ();
174171
175172 OAuth2User oauth2User = new DefaultOAuth2User (
176173 AuthorityUtils .createAuthorityList ("SCOPE_message:read" ),
0 commit comments