Browse Source

增加名称返回

hym 4 years ago
parent
commit
ea2417c167

+ 57 - 2
user_auth/src/main/java/com/huaxu/security/MyAuthenticationSuccessHandler.java

@@ -1,5 +1,6 @@
 package com.huaxu.security;
 
+import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.fasterxml.jackson.databind.ObjectMapper;
@@ -12,11 +13,18 @@ import com.huaxu.model.LoginUser;
 import com.huaxu.model.AjaxMessage;
 import com.huaxu.model.ResultStatus;
 import com.huaxu.service.UserService;
+import com.huaxu.util.RedisUtil;
 import com.huaxu.util.Util;
+import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 
 
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
 import org.springframework.security.core.Authentication;
 import org.springframework.security.oauth2.common.OAuth2AccessToken;
 import org.springframework.security.oauth2.common.exceptions.UnapprovedClientAuthenticationException;
@@ -24,6 +32,10 @@ import org.springframework.security.oauth2.provider.*;
 import org.springframework.security.oauth2.provider.token.AuthorizationServerTokenServices;
 import org.springframework.security.web.authentication.SavedRequestAwareAuthenticationSuccessHandler;
 import org.springframework.stereotype.Component;
+import org.springframework.util.LinkedMultiValueMap;
+import org.springframework.util.MultiValueMap;
+import org.springframework.web.client.RestTemplate;
+import sun.misc.BASE64Encoder;
 
 import javax.servlet.ServletException;
 import javax.servlet.http.HttpServletRequest;
@@ -34,6 +46,7 @@ import java.util.HashMap;
 import java.util.Map;
 
 @Component("myAuthenticationSuccessHandler")
+@Slf4j
 public class MyAuthenticationSuccessHandler extends SavedRequestAwareAuthenticationSuccessHandler {
 
     @Autowired
@@ -49,14 +62,17 @@ public class MyAuthenticationSuccessHandler extends SavedRequestAwareAuthenticat
     @Autowired
     private UserService userService;
 
-
+    @Value("${iot.url}")
+    private String iotUrl;
+    @Autowired
+    private RedisUtil redisUtil;
 
     @SuppressWarnings("unchecked")
     @Override
     public void onAuthenticationSuccess(HttpServletRequest request, HttpServletResponse response,
                                         Authentication authentication) throws IOException, ServletException {
 
-        logger.info("登录成功");
+        log.info("登录成功");
 
         String clientId = "smart-city-v2";
         String clientSecret = "smart-city-v2-123";
@@ -91,6 +107,14 @@ public class MyAuthenticationSuccessHandler extends SavedRequestAwareAuthenticat
         responseUserLoginDto.setToken(token);
         responseUserLoginDto.setLoginInfo(JSONArray.parseArray(loginUser.getUserInfos(), UserDto.class));
         JSONObject result=new JSONObject();
+
+        //可以加一个映射表
+        /*String iotToken=getLoginIotToken(loginUser.getPhoneNumber());
+        if(iotToken!=null){
+            String iotTokenKey = "iotToken:" + token;
+            redisUtil.set(iotTokenKey,iotToken);
+            redisUtil.setExpire(iotTokenKey,60*30);
+        }*/
         result.put("token",token);
         result.put("userInfos",loginUser.getUserInfos());
 
@@ -100,5 +124,36 @@ public class MyAuthenticationSuccessHandler extends SavedRequestAwareAuthenticat
 
         response.getWriter().write(objectMapper.writeValueAsString(ajaxMessage));
     }
+    public String getLoginIotToken(String account){
+        log.info("begin IotService login account={}",account);
+        String url = iotUrl + "/api/integration/auth/login";
+         RestTemplate restTemplate = new RestTemplate();
+        MultiValueMap<String, String> map= new LinkedMultiValueMap<String, String>();
+        map.add("source","rmcp");
+        map.add("code",new BASE64Encoder().encode(account.getBytes()));
+        HttpHeaders headers = new HttpHeaders();
+        HttpEntity<MultiValueMap<String, String>> request = new HttpEntity<>(map,headers);
+        ResponseEntity<JSONObject> responseEntity  = restTemplate.postForEntity(url, request, JSONObject.class);
+        log.info("responseEntity ={}", JSONObject.toJSONString(responseEntity));
+        if(responseEntity !=null && responseEntity.getStatusCode() == HttpStatus.OK){
+            JSONObject jsonObject =  responseEntity.getBody();
+            if(jsonObject != null){
+                if(jsonObject.getInteger("status")==0){
+                    String token = jsonObject.getString("data");
+                    log.info("IotService getLoginIotToken success res={}",token);
+                    return token;
+                }else {
+                    log.info("IotService getLoginIotToken fail");
+                    return null;
+
+                }
+            }else {
+                return null;
+            }
+        }
+
+        return null;
+    }
+
 
 }

+ 1 - 0
user_auth/src/main/java/com/huaxu/service/MyUserDetailService.java

@@ -56,6 +56,7 @@ public class MyUserDetailService implements UserDetailsService {
         LoginUser loginUser = new LoginUser(null);
         loginUser.setId(loginInfos.get(0).getId());
         loginUser.setLoginToken(UUID.randomUUID().toString());
+        loginUser.setPhoneNumber(phone);
         loginUser.setUserInfos(JSONObject.toJSONString(loginInfos));
         return loginUser;
     }

+ 1 - 0
user_auth/src/main/resources/application-dev.properties

@@ -76,6 +76,7 @@ spring.rabbitmq.template.mandatory=true
 dispath.queue=dispath
 receive.exchange.name=messageExchange
 dispath.routing.key=dipathKey
+iot.url=http://localhost:8090
 
 
 

+ 10 - 2
user_auth/src/main/resources/application-sit.properties

@@ -7,7 +7,7 @@ spring.datasource.url=jdbc:mysql://114.135.61.188:33306/uims?characterEncoding=u
 spring.datasource.username=root
 spring.datasource.password=100Zone@123
 spring.datasource.driver-class-name=com.mysql.jdbc.Driver
-
+spring.datasource.hikari.max-lifetime=30000
 mybatis-plus.mapper-locations=classpath:mapper/*.xml
 mybatis-plus.type-aliases-package=com.huaxu.entity
 mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
@@ -66,7 +66,15 @@ getSendCodeMax=2
 receive.exchange.name=messageExchangeTest
 dispath.routing.key=dipathKeyTest
 dispath.queue=dispathTest
-
+spring.rabbitmq.addresses=114.135.61.188:55672
+spring.rabbitmq.username=zoniot
+spring.rabbitmq.password=zcxk100
+spring.rabbitmq.virtual-host=/
+spring.rabbitmq.connection-timeout=15000
+spring.rabbitmq.publisher-confirm-type=correlated
+spring.rabbitmq.publisher-returns=true
+spring.rabbitmq.template.mandatory=true
+iot.url=http://114.135.61.188:58080
 
 
 

+ 1 - 1
user_auth/src/main/resources/application.properties

@@ -1,2 +1,2 @@
 #开发环境:dev  测试环境:sit  线上环境:prd
-spring.profiles.active=dev
+spring.profiles.active=sit

+ 1 - 1
user_auth/src/main/resources/mapper/UserMapper.xml

@@ -275,7 +275,7 @@
 
     </select>
     <select id="findLoginInfo" resultType="com.huaxu.dto.UserDto">
-        select a.id, a.PHONE,b.TENANT_NAME,b.code tenantId,b.WEB_URL ,b.LOGO
+        select a.id, a.PHONE,b.TENANT_NAME,b.code tenantId,b.WEB_URL ,b.LOGO,a.USERNAME name
         from uims_user a  join uims_tenant b on
         a.TENANT_ID=b.CODE
         where a.PHONE=#{phone} and a.status!=0 and b.status!=0