@@ -0,0 +1,29 @@ | |||
package com.tuoheng.common; | |||
import lombok.Data; | |||
import org.springframework.beans.factory.annotation.Value; | |||
import org.springframework.context.annotation.Configuration; | |||
/** | |||
* 2024年6月21日10:29:18 | |||
* author: hanzhengxing | |||
*/ | |||
@Configuration | |||
@Data | |||
public class CommonConfig { | |||
/** | |||
* 机场地址 | |||
*/ | |||
public static String airportURL; | |||
/** | |||
* 机场url | |||
* @param url | |||
*/ | |||
@Value("${tuoheng.airport-url}") | |||
public void airportURL(String url) { | |||
airportURL = url; | |||
} | |||
} |
@@ -120,6 +120,7 @@ public class SecurityConfig { | |||
.antMatchers("/toLogin", "/getHealth", "/static/**", "/vercode").permitAll() | |||
.antMatchers("/user/create", "/user/getInfo").permitAll() | |||
.antMatchers("/third/authorize", "/third/redirect").permitAll() | |||
.antMatchers("/third/test","/third/test1").permitAll() | |||
.anyRequest().authenticated() | |||
) | |||
// Form login handles the redirect to the login page from the |
@@ -1,5 +1,7 @@ | |||
package com.tuoheng.controller; | |||
import com.alibaba.druid.util.StringUtils; | |||
import com.tuoheng.common.CommonConfig; | |||
import com.tuoheng.service.ThirdService; | |||
import com.tuoheng.until.JsonResult; | |||
import lombok.extern.slf4j.Slf4j; | |||
@@ -27,14 +29,26 @@ public class ThirdController { | |||
private ThirdService thirdService; | |||
@GetMapping("/test") | |||
public String test() { | |||
return "finish..."; | |||
} | |||
@GetMapping("/test1") | |||
public String test1() { | |||
String url = CommonConfig.airportURL; | |||
log.info(url); | |||
return "finish..." + url; | |||
} | |||
/** | |||
* 通过clientId登录 | |||
* @param clientId | |||
* @return | |||
*/ | |||
@GetMapping("/authorize") | |||
public JsonResult authorize(String clientId) { | |||
return thirdService.authorize(clientId); | |||
public JsonResult authorize(String clientId, String userName) { | |||
return thirdService.authorize(clientId, userName); | |||
} | |||
/** | |||
@@ -43,9 +57,17 @@ public class ThirdController { | |||
*/ | |||
@CrossOrigin(origins = "https://airport.t-aaron.com") | |||
@GetMapping(value = "/redirect") | |||
public void airportRedirect(HttpServletRequest req, HttpServletResponse resp) throws Exception { | |||
log.info("访问airport"); | |||
resp.sendRedirect("https://airport.t-aaron.com/transfer"); | |||
public void airportRedirect(HttpServletRequest req, HttpServletResponse resp,String userName) throws Exception { | |||
log.info("enter airportRedirect userName is {}", userName); | |||
String url = CommonConfig.airportURL + "/transfer"; | |||
if(!StringUtils.isEmpty(userName)){ | |||
url += "?userName="+userName; | |||
} | |||
log.info("url is {}", url); | |||
resp.sendRedirect(url); | |||
} | |||
/** |
@@ -6,5 +6,5 @@ import javax.servlet.http.HttpServletRequest; | |||
public interface ThirdService { | |||
JsonResult authorize(String clientId); | |||
JsonResult authorize(String clientId, String userName); | |||
} |
@@ -1,5 +1,6 @@ | |||
package com.tuoheng.service.impl; | |||
import com.alibaba.druid.util.StringUtils; | |||
import com.alibaba.fastjson.JSONObject; | |||
import com.tuoheng.constants.OidcConstant; | |||
import com.tuoheng.constants.ThirdConstant; | |||
@@ -13,6 +14,7 @@ import com.tuoheng.model.result.TokenResult; | |||
import com.tuoheng.service.ThirdService; | |||
import com.tuoheng.until.HttpUtils; | |||
import com.tuoheng.until.JsonResult; | |||
import lombok.extern.slf4j.Slf4j; | |||
import org.springframework.beans.BeanUtils; | |||
import org.springframework.beans.factory.annotation.Autowired; | |||
import org.springframework.beans.factory.annotation.Value; | |||
@@ -22,7 +24,6 @@ import org.springframework.stereotype.Service; | |||
import org.springframework.util.LinkedMultiValueMap; | |||
import org.springframework.util.MultiValueMap; | |||
import org.springframework.util.ObjectUtils; | |||
import org.springframework.util.StringUtils; | |||
import org.springframework.web.client.RestTemplate; | |||
import java.rmi.ServerException; | |||
@@ -34,6 +35,7 @@ import java.util.List; | |||
* @Date 2023/11/11 10:19 | |||
*/ | |||
@Service | |||
@Slf4j | |||
public class ThirdServiceImpl implements ThirdService { | |||
@@ -53,19 +55,29 @@ public class ThirdServiceImpl implements ThirdService { | |||
* @return | |||
*/ | |||
@Override | |||
public JsonResult authorize(String clientId) { | |||
public JsonResult authorize(String clientId, String userName) { | |||
String username; | |||
String password; | |||
if(ThirdConstant.TUOHENG_AIRPORT_ADMIN.equals(clientId)){ | |||
log.info("clientId is {}, userName is {}",clientId,userName); | |||
if(ThirdConstant.TUOHENG_AIRPORT_ADMIN.equals(clientId) && !StringUtils.isEmpty(userName) && userName.equals("jnbigdata")){ | |||
log.info("enterjnbigdata"); | |||
username = "jnbigdata"; | |||
password = "thjs2023"; | |||
}else if(ThirdConstant.TUOHENG_AIRPORT_ADMIN.equals(clientId)){ | |||
log.info("enterclientId clientId is " + ThirdConstant.TUOHENG_AIRPORT_ADMIN); | |||
username = ThirdConstant.GZJJ_USERNAME; | |||
password = ThirdConstant.GZJJ_PASSWORD; | |||
}else if(ThirdConstant.TUOHENG_TELECOMUMALE_ADMIN.equals(clientId)){ | |||
log.info("enterclientId clientId is " + ThirdConstant.TUOHENG_TELECOMUMALE_ADMIN); | |||
username = ThirdConstant.HLCG_USERNAME; | |||
password = ThirdConstant.HLCG_PASSWORD; | |||
}else { | |||
return JsonResult.error("clientId error"); | |||
} | |||
log.info("userName is {},password is {}" , username,password); | |||
//通过oidc的密码模式获取授权token 等相关信息数据 | |||
TokenResult tokenResult = getToken(clientId,username,password); | |||
tokenResult.setUserName(username); | |||
@@ -106,7 +118,13 @@ public class ThirdServiceImpl implements ThirdService { | |||
headers.add("Authorization", "Basic " + authorization); | |||
HttpEntity<MultiValueMap<String, String>> httpEntity = new HttpEntity(params, headers); | |||
String jsonString = JSONObject.toJSONString(params); | |||
String jsonString1 = JSONObject.toJSONString(headers); | |||
log.info("sign json is " + jsonString); | |||
log.info("sign json1 is " + jsonString1); | |||
ResponseEntity<TokenResult> response = restTemplate.exchange(url, HttpMethod.POST, httpEntity, parameterizedTypeReference); | |||
log.info("sign result is " + JSONObject.toJSONString(response)); | |||
return response.getBody(); | |||
} | |||
@@ -66,5 +66,10 @@ public class UserServiceImpl implements UserSevice { | |||
return JsonResult.success(userBaseInfoDto); | |||
} | |||
public static void main(String[] args) { | |||
String str = new BCryptPasswordEncoder().encode("thjs2023"); | |||
System.out.println(str); | |||
} | |||
} |
@@ -59,4 +59,9 @@ spring: | |||
min-idle: 1 # 连接池中的最小空闲连接 | |||
oauth2: | |||
token: | |||
issuer: http://192.168.11.11:8090 | |||
issuer: http://192.168.11.11:8090 | |||
# 自定义配置 | |||
tuoheng: | |||
#airport配置地址 | |||
airport-url: https://airport-test.t-aaron.com |
@@ -57,4 +57,9 @@ spring: | |||
min-idle: 1 # 连接池中的最小空闲连接 | |||
oauth2: | |||
token: | |||
issuer: http://127.0.0.1:8090 | |||
issuer: http://127.0.0.1:8090 | |||
# 自定义配置 | |||
tuoheng: | |||
#airport配置地址 | |||
airport-url: http://192.168.11.22:8060 |
@@ -57,4 +57,8 @@ spring: | |||
min-idle: 1 # 连接池中的最小空闲连接 | |||
oauth2: | |||
token: | |||
issuer: https://oidc.t-aaron.com | |||
issuer: https://oidc.t-aaron.com | |||
tuoheng: | |||
#airport配置地址 | |||
airport-url: https://airport.t-aaron.com |
@@ -58,4 +58,8 @@ spring: | |||
min-idle: 1 # 连接池中的最小空闲连接 | |||
oauth2: | |||
token: | |||
issuer: https://login-test.t-aaron.com | |||
issuer: https://login-test.t-aaron.com | |||
tuoheng: | |||
#airport配置地址 | |||
airport-url: https://airport-test.t-aaron.com |