* Copyright (C) 2019 AT&T Intellectual Property. All rights
* reserved.
* ================================================================================
+ * Modifications Copyright (c) 2019 Samsung
+ * ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
-import com.att.eelf.configuration.EELFLogger;
-import com.att.eelf.configuration.EELFManager;
-
-import java.io.IOException;
-import java.util.LinkedList;
import java.util.List;
+import org.apache.camel.Exchange;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
+import org.mockito.InjectMocks;
import org.mockito.Mockito;
+import org.mockito.Spy;
import org.onap.clamp.authorization.AuthorizationController;
+import org.onap.clamp.clds.config.ClampProperties;
+import org.onap.clamp.clds.exception.NotAuthorizedException;
import org.onap.clamp.clds.service.SecureServicePermission;
import org.onap.clamp.util.PrincipalUtils;
import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.mock.env.MockEnvironment;
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
-import org.springframework.security.core.Authentication;
import org.springframework.security.core.GrantedAuthority;
-import org.springframework.security.core.authority.SimpleGrantedAuthority;
import org.springframework.security.core.context.SecurityContext;
import org.springframework.security.core.userdetails.User;
import org.springframework.test.context.junit4.SpringRunner;
@SpringBootTest
public class AuthorizationControllerItCase {
- protected static final EELFLogger logger = EELFManager.getInstance().getLogger(AuthorizationControllerItCase.class);
- private Authentication authentication;
- private List<GrantedAuthority> authList = new LinkedList<GrantedAuthority>();
+ private PermissionTestDefaultHelper permissionTestHelper = new PermissionTestDefaultHelper();
+
+ @Spy
+ MockEnvironment env;
+
+ @Spy
+ @InjectMocks
+ private ClampProperties clampProp = new ClampProperties();
+
+ @InjectMocks
+ private AuthorizationController auth;
/**
* Setup the variable before the tests execution.
- *
- * @throws IOException
- * In case of issues when opening the files
*/
@Before
- public void setupBefore() throws IOException {
- authList.add(new SimpleGrantedAuthority("permission-type-cl-manage|dev|*"));
- authList.add(new SimpleGrantedAuthority("permission-type-cl|dev|read"));
- authList.add(new SimpleGrantedAuthority("permission-type-cl|dev|update"));
- authList.add(new SimpleGrantedAuthority("permission-type-template|dev|read"));
- authList.add(new SimpleGrantedAuthority("permission-type-template|dev|update"));
- authList.add(new SimpleGrantedAuthority("permission-type-filter-vf|dev|*"));
- authList.add(new SimpleGrantedAuthority("permission-type-cl-event|dev|*"));
-
- authentication = new UsernamePasswordAuthenticationToken(new User("admin", "", authList), "", authList);
- }
+ public void setupBefore() {
+ permissionTestHelper.setupMockEnv(env);
+ List<GrantedAuthority> authList = permissionTestHelper.getAuthList();
- @Test
- public void testIsUserPermittedNoException() {
SecurityContext securityContext = Mockito.mock(SecurityContext.class);
- Mockito.when(securityContext.getAuthentication()).thenReturn(authentication);
+ Mockito.when(securityContext.getAuthentication()).thenReturn(
+ new UsernamePasswordAuthenticationToken(new User("admin", "", authList),
+ "", authList)
+ );
PrincipalUtils.setSecurityContext(securityContext);
+ }
- AuthorizationController auth = new AuthorizationController();
+ @Test
+ public void testIsUserPermitted() {
assertTrue(auth.isUserPermitted(new SecureServicePermission("permission-type-cl","dev","read")));
assertTrue(auth.isUserPermitted(new SecureServicePermission("permission-type-cl-manage","dev","DEPLOY")));
- assertTrue(auth.isUserPermitted(new SecureServicePermission("permission-type-filter-vf","dev","12345-55555-55555-5555")));
+ assertTrue(auth.isUserPermitted(new SecureServicePermission("permission-type-filter-vf","dev",
+ "12345-55555-55555-5555")));
assertFalse(auth.isUserPermitted(new SecureServicePermission("permission-type-cl","test","read")));
}
+
+ @Test
+ public void testIfUserAuthorize() {
+ Exchange ex = Mockito.mock(Exchange.class);
+ try {
+ permissionTestHelper.doActionOnAllPermissions(((type, instance, action) ->
+ auth.authorize(ex, type, instance, action)
+ )
+ );
+ } catch (NotAuthorizedException e) {
+ fail(e.getMessage());
+ }
+ }
+
+ @Test(expected = NotAuthorizedException.class)
+ public void testIfAuthorizeThrowException() {
+ Exchange ex = Mockito.mock(Exchange.class);
+ auth.authorize(ex,"permission-type-cl","test","read");
+ }
}