chenw %!s(int64=7) %!d(string=hai) anos
pai
achega
2263e1fb60

+ 5 - 0
base-servers/account/account-server/pom.xml

@@ -54,6 +54,11 @@
       <artifactId>account-dto</artifactId>
       <version>1.0.0-SNAPSHOT</version>
     </dependency>
+    <dependency>
+      <groupId>com.usoftchina.smartschool</groupId>
+      <artifactId>auth-dto</artifactId>
+      <version>1.0.0-SNAPSHOT</version>
+    </dependency>
   </dependencies>
 
   <build>

+ 1 - 0
base-servers/account/account-server/src/main/java/com/usoftchina/smartschool/account/controller/AccountController.java

@@ -108,6 +108,7 @@ public class AccountController {
         if (null == account) {
             return Result.error(ExceptionCode.USER_NOT_EXIST);
         }
+        account.setId(BaseContextHolder.getUserId());
         account.setUser_pass(accountService.getEncryptedPassword(password, account.getSalt()));
         accountService.updateByPrimaryKeySelective(account);
         return Result.success();

+ 55 - 0
base-servers/account/account-server/src/main/java/com/usoftchina/smartschool/account/interceptor/AuthRestInterceptor.java

@@ -0,0 +1,55 @@
+package com.usoftchina.smartschool.account.interceptor;
+
+import com.usoftchina.smartschool.auth.jwt.JwtHelper;
+import com.usoftchina.smartschool.auth.jwt.JwtInfo;
+import com.usoftchina.smartschool.context.BaseContextHolder;
+import com.usoftchina.smartschool.utils.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.web.method.HandlerMethod;
+import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.util.Enumeration;
+
+/**
+ * @author chenwei
+ * @date 2019/2/18
+ */
+public class AuthRestInterceptor extends HandlerInterceptorAdapter {
+
+    private static final Logger logger = LoggerFactory.getLogger(AuthRestInterceptor.class);
+
+    @Override
+    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
+        if (handler instanceof HandlerMethod) {
+            HandlerMethod handlerMethod = (HandlerMethod) handler;
+            String token = null;
+            Enumeration<String> headers = request.getHeaders("Authorization");
+            while(headers.hasMoreElements()){
+                //取最后一个元素
+                token = headers.nextElement();
+            }
+            if (!StringUtils.isEmpty(token)) {
+                JwtInfo infoFromToken = JwtHelper.getInfoFromToken(token, "auth/pub.key");
+                BaseContextHolder.setAppId(infoFromToken.getAppId());
+                BaseContextHolder.setUserId(infoFromToken.getUserId());
+                BaseContextHolder.setUserName(infoFromToken.getUserName());
+                BaseContextHolder.setSchoolId(infoFromToken.getSchool_id());
+                BaseContextHolder.setToken(token);
+                logger.info("request={} school_id={} token={} \\r\\n userName={}  ", request.getRequestURI(),
+                        infoFromToken.getSchool_id(), token, infoFromToken.getUserName());
+            }
+        } else {
+            // no mapping
+        }
+        return super.preHandle(request, response, handler);
+    }
+
+    @Override
+    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
+        BaseContextHolder.remove();
+        super.afterCompletion(request, response, handler, ex);
+    }
+}

+ 23 - 0
base-servers/account/account-server/src/main/java/com/usoftchina/smartschool/account/interceptor/InterceptorConfig.java

@@ -0,0 +1,23 @@
+package com.usoftchina.smartschool.account.interceptor;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
+
+/**
+ * @author: ChenWei
+ * @create: 2019-03-018 15:03
+ **/
+@Configuration
+public class InterceptorConfig implements WebMvcConfigurer {
+    @Bean
+    public AuthRestInterceptor authRestInterceptor() {
+        return new AuthRestInterceptor();
+    }
+
+    @Override
+    public void addInterceptors(InterceptorRegistry registry) {
+        registry.addInterceptor(authRestInterceptor());
+    }
+}

BIN=BIN
base-servers/account/account-server/src/main/resources/auth/pub.key


+ 16 - 1
base-servers/account/account-server/src/main/resources/mapper/AccountMapper.xml

@@ -47,7 +47,22 @@
 
   </update>
   <update id="updateByPrimaryKeySelective">
-
+    UPDATE sys_user
+    <set>
+      <if test="user_phone != null">
+        user_phone = #{user_phone, jdbcType=VARCHAR},
+      </if>
+      <if test="user_pass != null">
+        user_pass = #{user_pass, jdbcType=VARCHAR},
+      </if>
+      <if test="user_phone != null">
+        user_code = #{user_code, jdbcType=VARCHAR},
+      </if>
+      <if test="user_phone != null">
+        salt = #{salt, jdbcType=VARCHAR},
+      </if>
+    </set>
+    WHERE USER_ID = #{id, jdbcType=BIGINT}
   </update>
 
   <select id="selectTeacherName" resultType="string">