base url improvements
This commit is contained in:
		
							parent
							
								
									606ae2e534
								
							
						
					
					
						commit
						c2a2b8cc4f
					
				@ -19,10 +19,6 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
 | 
			
		||||
import org.springframework.security.core.AuthenticationException;
 | 
			
		||||
import org.springframework.security.web.authentication.SimpleUrlAuthenticationFailureHandler;
 | 
			
		||||
import org.springframework.stereotype.Component;
 | 
			
		||||
import org.thingsboard.server.common.data.id.CustomerId;
 | 
			
		||||
import org.thingsboard.server.common.data.id.EntityId;
 | 
			
		||||
import org.thingsboard.server.common.data.id.TenantId;
 | 
			
		||||
import org.thingsboard.server.service.security.system.SystemSecurityService;
 | 
			
		||||
import org.thingsboard.server.utils.MiscUtils;
 | 
			
		||||
 | 
			
		||||
import javax.servlet.ServletException;
 | 
			
		||||
@ -34,15 +30,13 @@ import java.nio.charset.StandardCharsets;
 | 
			
		||||
 | 
			
		||||
@Component(value = "oauth2AuthenticationFailureHandler")
 | 
			
		||||
@ConditionalOnProperty(prefix = "security.oauth2", value = "enabled", havingValue = "true")
 | 
			
		||||
public class Oauth2AuthenticationFailureHandler extends SimpleUrlAuthenticationFailureHandler  {
 | 
			
		||||
 | 
			
		||||
    private SystemSecurityService systemSecurityService;
 | 
			
		||||
public class Oauth2AuthenticationFailureHandler extends SimpleUrlAuthenticationFailureHandler {
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public void onAuthenticationFailure(HttpServletRequest request,
 | 
			
		||||
                                        HttpServletResponse response, AuthenticationException exception)
 | 
			
		||||
            throws IOException, ServletException {
 | 
			
		||||
        String baseUrl = systemSecurityService.getBaseUrl(TenantId.SYS_TENANT_ID, new CustomerId(EntityId.NULL_UUID), request);
 | 
			
		||||
        String baseUrl = MiscUtils.constructBaseUrl(request);
 | 
			
		||||
        getRedirectStrategy().sendRedirect(request, response, baseUrl + "/login?loginError=" +
 | 
			
		||||
                URLEncoder.encode(exception.getMessage(), StandardCharsets.UTF_8.toString()));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@ -21,16 +21,13 @@ import org.springframework.security.core.Authentication;
 | 
			
		||||
import org.springframework.security.oauth2.client.authentication.OAuth2AuthenticationToken;
 | 
			
		||||
import org.springframework.security.web.authentication.SimpleUrlAuthenticationSuccessHandler;
 | 
			
		||||
import org.springframework.stereotype.Component;
 | 
			
		||||
import org.thingsboard.server.common.data.id.CustomerId;
 | 
			
		||||
import org.thingsboard.server.common.data.id.EntityId;
 | 
			
		||||
import org.thingsboard.server.common.data.id.TenantId;
 | 
			
		||||
import org.thingsboard.server.dao.oauth2.OAuth2Client;
 | 
			
		||||
import org.thingsboard.server.dao.oauth2.OAuth2Configuration;
 | 
			
		||||
import org.thingsboard.server.service.security.auth.jwt.RefreshTokenRepository;
 | 
			
		||||
import org.thingsboard.server.service.security.model.SecurityUser;
 | 
			
		||||
import org.thingsboard.server.service.security.model.token.JwtToken;
 | 
			
		||||
import org.thingsboard.server.service.security.model.token.JwtTokenFactory;
 | 
			
		||||
import org.thingsboard.server.service.security.system.SystemSecurityService;
 | 
			
		||||
import org.thingsboard.server.utils.MiscUtils;
 | 
			
		||||
 | 
			
		||||
import javax.servlet.http.HttpServletRequest;
 | 
			
		||||
import javax.servlet.http.HttpServletResponse;
 | 
			
		||||
@ -46,26 +43,23 @@ public class Oauth2AuthenticationSuccessHandler extends SimpleUrlAuthenticationS
 | 
			
		||||
    private final RefreshTokenRepository refreshTokenRepository;
 | 
			
		||||
    private final OAuth2ClientMapperProvider oauth2ClientMapperProvider;
 | 
			
		||||
    private final OAuth2Configuration oauth2Configuration;
 | 
			
		||||
    private final SystemSecurityService systemSecurityService;
 | 
			
		||||
 | 
			
		||||
    @Autowired
 | 
			
		||||
    public Oauth2AuthenticationSuccessHandler(final JwtTokenFactory tokenFactory,
 | 
			
		||||
                                              final RefreshTokenRepository refreshTokenRepository,
 | 
			
		||||
                                              final OAuth2ClientMapperProvider oauth2ClientMapperProvider,
 | 
			
		||||
                                              final OAuth2Configuration oauth2Configuration, SystemSecurityService systemSecurityService) {
 | 
			
		||||
                                              final OAuth2Configuration oauth2Configuration) {
 | 
			
		||||
        this.tokenFactory = tokenFactory;
 | 
			
		||||
        this.refreshTokenRepository = refreshTokenRepository;
 | 
			
		||||
        this.oauth2ClientMapperProvider = oauth2ClientMapperProvider;
 | 
			
		||||
        this.oauth2Configuration = oauth2Configuration;
 | 
			
		||||
        this.systemSecurityService = systemSecurityService;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public void onAuthenticationSuccess(HttpServletRequest request,
 | 
			
		||||
                                        HttpServletResponse response,
 | 
			
		||||
                                        Authentication authentication) throws IOException {
 | 
			
		||||
 | 
			
		||||
        String baseUrl = systemSecurityService.getBaseUrl(TenantId.SYS_TENANT_ID, new CustomerId(EntityId.NULL_UUID), request);
 | 
			
		||||
        String baseUrl = MiscUtils.constructBaseUrl(request);
 | 
			
		||||
        try {
 | 
			
		||||
            OAuth2AuthenticationToken token = (OAuth2AuthenticationToken) authentication;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -18,7 +18,6 @@ package org.thingsboard.server.controller;
 | 
			
		||||
import com.fasterxml.jackson.core.type.TypeReference;
 | 
			
		||||
import com.fasterxml.jackson.databind.JsonNode;
 | 
			
		||||
import com.fasterxml.jackson.databind.ObjectMapper;
 | 
			
		||||
import com.fasterxml.jackson.databind.node.ObjectNode;
 | 
			
		||||
import io.jsonwebtoken.Claims;
 | 
			
		||||
import io.jsonwebtoken.Header;
 | 
			
		||||
import io.jsonwebtoken.Jwt;
 | 
			
		||||
@ -59,7 +58,6 @@ import org.springframework.test.web.servlet.request.MockHttpServletRequestBuilde
 | 
			
		||||
import org.springframework.util.LinkedMultiValueMap;
 | 
			
		||||
import org.springframework.util.MultiValueMap;
 | 
			
		||||
import org.springframework.web.context.WebApplicationContext;
 | 
			
		||||
import org.thingsboard.server.common.data.AdminSettings;
 | 
			
		||||
import org.thingsboard.server.common.data.BaseData;
 | 
			
		||||
import org.thingsboard.server.common.data.Customer;
 | 
			
		||||
import org.thingsboard.server.common.data.Tenant;
 | 
			
		||||
@ -70,7 +68,6 @@ import org.thingsboard.server.common.data.page.TextPageLink;
 | 
			
		||||
import org.thingsboard.server.common.data.page.TimePageLink;
 | 
			
		||||
import org.thingsboard.server.common.data.security.Authority;
 | 
			
		||||
import org.thingsboard.server.config.ThingsboardSecurityConfiguration;
 | 
			
		||||
import org.thingsboard.server.dao.util.mapping.JacksonUtil;
 | 
			
		||||
import org.thingsboard.server.service.mail.TestMailService;
 | 
			
		||||
import org.thingsboard.server.service.security.auth.jwt.RefreshTokenRequest;
 | 
			
		||||
import org.thingsboard.server.service.security.auth.rest.LoginRequest;
 | 
			
		||||
@ -176,12 +173,6 @@ public abstract class AbstractControllerTest {
 | 
			
		||||
                    .apply(springSecurity()).build();
 | 
			
		||||
        }
 | 
			
		||||
        loginSysAdmin();
 | 
			
		||||
 | 
			
		||||
        ObjectNode generalSettings = JacksonUtil.OBJECT_MAPPER.createObjectNode();
 | 
			
		||||
        AdminSettings adminSettings = new AdminSettings();
 | 
			
		||||
        adminSettings.setKey("general");
 | 
			
		||||
        adminSettings.setJsonValue(generalSettings);
 | 
			
		||||
 | 
			
		||||
        Tenant tenant = new Tenant();
 | 
			
		||||
        tenant.setTitle(TEST_TENANT_NAME);
 | 
			
		||||
        Tenant savedTenant = doPost("/api/tenant", tenant, Tenant.class);
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user