Tests improvements
This commit is contained in:
parent
bf83eff749
commit
26b1d09cbd
@ -106,7 +106,8 @@ public class Oauth2AuthenticationSuccessHandler extends SimpleUrlAuthenticationS
|
|||||||
|
|
||||||
clearAuthenticationAttributes(request, response);
|
clearAuthenticationAttributes(request, response);
|
||||||
|
|
||||||
getRedirectStrategy().sendRedirect(request, response, getRedirectUrl(baseUrl, securityUser));
|
JwtPair tokenPair = tokenFactory.createTokenPair(securityUser);
|
||||||
|
getRedirectStrategy().sendRedirect(request, response, getRedirectUrl(baseUrl, tokenPair));
|
||||||
systemSecurityService.logLoginAction(securityUser, new RestAuthenticationDetails(request), ActionType.LOGIN, registration.getName(), null);
|
systemSecurityService.logLoginAction(securityUser, new RestAuthenticationDetails(request), ActionType.LOGIN, registration.getName(), null);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.debug("Error occurred during processing authentication success result. " +
|
log.debug("Error occurred during processing authentication success result. " +
|
||||||
@ -128,8 +129,7 @@ public class Oauth2AuthenticationSuccessHandler extends SimpleUrlAuthenticationS
|
|||||||
httpCookieOAuth2AuthorizationRequestRepository.removeAuthorizationRequestCookies(request, response);
|
httpCookieOAuth2AuthorizationRequestRepository.removeAuthorizationRequestCookies(request, response);
|
||||||
}
|
}
|
||||||
|
|
||||||
String getRedirectUrl(String baseUrl, SecurityUser securityUser) {
|
String getRedirectUrl(String baseUrl, JwtPair tokenPair) {
|
||||||
JwtPair tokenPair = tokenFactory.createTokenPair(securityUser);
|
|
||||||
if (baseUrl.indexOf("?") > 0) {
|
if (baseUrl.indexOf("?") > 0) {
|
||||||
baseUrl += "&";
|
baseUrl += "&";
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@ -17,69 +17,52 @@ package org.thingsboard.server.service.security.auth.oauth2;
|
|||||||
|
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
import org.mockito.Mock;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.thingsboard.server.common.data.User;
|
|
||||||
import org.thingsboard.server.common.data.id.UserId;
|
import org.thingsboard.server.common.data.id.UserId;
|
||||||
import org.thingsboard.server.common.data.security.Authority;
|
import org.thingsboard.server.common.data.security.model.JwtPair;
|
||||||
import org.thingsboard.server.common.data.security.UserCredentials;
|
|
||||||
import org.thingsboard.server.controller.AbstractControllerTest;
|
import org.thingsboard.server.controller.AbstractControllerTest;
|
||||||
import org.thingsboard.server.dao.service.DaoSqlTest;
|
import org.thingsboard.server.dao.service.DaoSqlTest;
|
||||||
import org.thingsboard.server.dao.user.UserService;
|
|
||||||
import org.thingsboard.server.service.security.model.SecurityUser;
|
import org.thingsboard.server.service.security.model.SecurityUser;
|
||||||
import org.thingsboard.server.service.security.model.UserPrincipal;
|
import org.thingsboard.server.service.security.model.token.JwtTokenFactory;
|
||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
import static org.junit.Assert.assertTrue;
|
import static org.junit.Assert.assertEquals;
|
||||||
import static org.mockito.ArgumentMatchers.any;
|
|
||||||
import static org.mockito.ArgumentMatchers.eq;
|
import static org.mockito.ArgumentMatchers.eq;
|
||||||
import static org.mockito.Mockito.mock;
|
|
||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
@DaoSqlTest
|
@DaoSqlTest
|
||||||
public class Oauth2AuthenticationSuccessHandlerTest extends AbstractControllerTest {
|
public class Oauth2AuthenticationSuccessHandlerTest extends AbstractControllerTest {
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
protected Oauth2AuthenticationSuccessHandler oauth2AuthenticationSuccessHandler;
|
private Oauth2AuthenticationSuccessHandler oauth2AuthenticationSuccessHandler;
|
||||||
|
|
||||||
|
@Mock
|
||||||
|
private JwtTokenFactory jwtTokenFactory;
|
||||||
|
|
||||||
private SecurityUser securityUser;
|
private SecurityUser securityUser;
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void before() {
|
public void before() {
|
||||||
UserId userId = new UserId(UUID.randomUUID());
|
UserId userId = new UserId(UUID.randomUUID());
|
||||||
securityUser = createMockSecurityUser(userId);
|
securityUser = new SecurityUser(userId);
|
||||||
|
when(jwtTokenFactory.createTokenPair(eq(securityUser))).thenReturn(new JwtPair("testAccessToken", "testRefreshToken"));
|
||||||
UserService userService = mock(UserService.class);
|
|
||||||
User user = new User();
|
|
||||||
user.setId(userId);
|
|
||||||
user.setEmail("email");
|
|
||||||
user.setAuthority(Authority.TENANT_ADMIN);
|
|
||||||
when(userService.findUserById(any(), eq(userId))).thenReturn(user);
|
|
||||||
|
|
||||||
UserCredentials userCredentials = new UserCredentials();
|
|
||||||
userCredentials.setEnabled(true);
|
|
||||||
when(userService.findUserCredentialsByUserId(any(), eq(userId))).thenReturn(userCredentials);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testGetRedirectUrl() {
|
public void testGetRedirectUrl() {
|
||||||
|
JwtPair jwtPair = jwtTokenFactory.createTokenPair(securityUser);
|
||||||
|
|
||||||
String urlWithoutParams = "http://localhost:8080/dashboardGroups/3fa13530-6597-11ed-bd76-8bd591f0ec3e";
|
String urlWithoutParams = "http://localhost:8080/dashboardGroups/3fa13530-6597-11ed-bd76-8bd591f0ec3e";
|
||||||
String urlWithParams = "http://localhost:8080/dashboardGroups/3fa13530-6597-11ed-bd76-8bd591f0ec3e?state=someState&page=1";
|
String urlWithParams = "http://localhost:8080/dashboardGroups/3fa13530-6597-11ed-bd76-8bd591f0ec3e?state=someState&page=1";
|
||||||
|
|
||||||
String redirectUrl = oauth2AuthenticationSuccessHandler.getRedirectUrl(urlWithoutParams, securityUser);
|
String redirectUrl = oauth2AuthenticationSuccessHandler.getRedirectUrl(urlWithoutParams, jwtPair);
|
||||||
assertTrue(redirectUrl.contains("/?accessToken="));
|
String expectedUrl = urlWithoutParams + "/?accessToken=" + jwtPair.getToken() + "&refreshToken=" + jwtPair.getRefreshToken();
|
||||||
|
assertEquals(expectedUrl, redirectUrl);
|
||||||
|
|
||||||
redirectUrl = oauth2AuthenticationSuccessHandler.getRedirectUrl(urlWithParams, securityUser);
|
redirectUrl = oauth2AuthenticationSuccessHandler.getRedirectUrl(urlWithParams, jwtPair);
|
||||||
assertTrue(redirectUrl.contains("&accessToken="));
|
expectedUrl = urlWithParams + "&accessToken=" + jwtPair.getToken() + "&refreshToken=" + jwtPair.getRefreshToken();
|
||||||
}
|
assertEquals(expectedUrl, redirectUrl);
|
||||||
|
|
||||||
private SecurityUser createMockSecurityUser(UserId userId) {
|
|
||||||
SecurityUser securityUser = new SecurityUser();
|
|
||||||
securityUser.setEmail("email");
|
|
||||||
securityUser.setUserPrincipal(new UserPrincipal(UserPrincipal.Type.USER_NAME, securityUser.getEmail()));
|
|
||||||
securityUser.setAuthority(Authority.CUSTOMER_USER);
|
|
||||||
securityUser.setId(userId);
|
|
||||||
securityUser.setSessionId(UUID.randomUUID().toString());
|
|
||||||
return securityUser;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user