Pārlūkot izejas kodu

保存房屋bug修复

wuxw 7 gadi atpakaļ
vecāks
revīzija
47b23c36f0

+ 1 - 1
Api/src/main/java/com/java110/api/listener/room/SaveRoomListener.java

@@ -98,7 +98,7 @@ public class SaveRoomListener extends AbstractServiceApiDataFlowListener {
         businessUnit.putAll(paramInJson);
         businessUnit.put("room_id", "-1");
         businessUnit.put("userId", dataFlowContext.getRequestCurrentHeaders().get(CommonConstant.HTTP_USER_ID));
-        business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put("businessUnit", businessUnit);
+        business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put("businessRoom", businessUnit);
 
         return business;
     }

+ 0 - 1
WebService/src/main/java/com/java110/web/core/PackageScanner.java

@@ -62,7 +62,6 @@ public abstract class PackageScanner {
                 continue;
             }
             //String className = jarName.replace(suffix, "");
-            System.out.println("二层循环" + jarName);
 
             handleResource(jarName);
         }

+ 1 - 1
WebService/src/main/resources/views/test.html

@@ -5,7 +5,7 @@
     <title>Title</title>
 </head>
 <body>
-
+12313
 <script>
     (function(){
         var $props = {

+ 7 - 1
java110-config/src/main/resources/logback.xml

@@ -60,7 +60,9 @@
         </layout>
     </appender>
 
-    <logger name="org.springframework" level="error"/>
+    <logger name="org.springframework" level="DEBUG">
+        <appender-ref ref="STDOUT_FILE" />
+    </logger>
     <logger name="com.java110.api" level="DEBUG"/>
     <logger name="com.java110.order" level="DEBUG"/>
     <!--<logger name="com.java110" level="DEBUG"/>-->
@@ -77,6 +79,10 @@
         <appender-ref ref="STDOUT_FILE" />
     </logger>
 
+    <logger name="org.thymeleaf" level="DEBUG">
+        <appender-ref ref="STDOUT_FILE" />
+    </logger>
+
     <!-- 日志输出级别
     <root level="DEBUG">
         <appender-ref ref="STDOUT_FILE" />

+ 87 - 77
java110-core/src/main/java/com/java110/core/factory/AuthenticationFactory.java

@@ -32,105 +32,112 @@ import java.security.spec.X509EncodedKeySpec;
 import java.util.*;
 
 /**
- *
  * 鉴权工厂类
  * Created by wuxw on 2018/4/23.
  */
 public class AuthenticationFactory {
 
-    private final static String PASSWD_SALT= "hc@java110";
+    private final static String PASSWD_SALT = "hc@java110";
+
     /**
      * 用户密码 md5签名
+     *
      * @param inStr
      * @return
      */
-    public static String passwdMd5(String inStr) throws NoAuthorityException{
-        return md5(md5(inStr+PASSWD_SALT));
+    public static String passwdMd5(String inStr) throws NoAuthorityException {
+        return md5(md5(inStr + PASSWD_SALT));
     }
 
     /**
      * md5签名
+     *
      * @param inStr
      * @return
      */
-    public static String md5(String inStr) throws NoAuthorityException{
+    public static String md5(String inStr) throws NoAuthorityException {
         try {
             return DigestUtils.md5Hex(inStr.getBytes("UTF-8"));
         } catch (UnsupportedEncodingException e) {
-            throw new NoAuthorityException(ResponseConstant.RESULT_CODE_NO_AUTHORITY_ERROR,"MD5签名过程中出现错误");
+            throw new NoAuthorityException(ResponseConstant.RESULT_CODE_NO_AUTHORITY_ERROR, "MD5签名过程中出现错误");
         }
     }
 
     /**
      * dataFlow 对象签名
+     *
      * @param dataFlow
      * @return
      */
-    public static String dataFlowMd5(DataFlow dataFlow) throws NoAuthorityException{
-        if(dataFlow == null){
-            throw new NoAuthorityException(ResponseConstant.RESULT_CODE_NO_AUTHORITY_ERROR,"MD5签名过程中出现错误");
+    public static String dataFlowMd5(DataFlow dataFlow) throws NoAuthorityException {
+        if (dataFlow == null) {
+            throw new NoAuthorityException(ResponseConstant.RESULT_CODE_NO_AUTHORITY_ERROR, "MD5签名过程中出现错误");
         }
-        String reqInfo = dataFlow.getTransactionId() +dataFlow.getAppId();
-        reqInfo +=  ((dataFlow.getReqBusiness() == null || dataFlow.getReqBusiness().size() == 0)
-                                            ?dataFlow.getReqData() :dataFlow.getReqBusiness().toJSONString());
+        String reqInfo = dataFlow.getTransactionId() + dataFlow.getAppId();
+        reqInfo += ((dataFlow.getReqBusiness() == null || dataFlow.getReqBusiness().size() == 0)
+                ? dataFlow.getReqData() : dataFlow.getReqBusiness().toJSONString());
         reqInfo += dataFlow.getAppRoutes().get(0).getSecurityCode();
         return md5(reqInfo);
     }
 
     /**
      * dataFlow 对象签名
+     *
      * @param dataFlow
      * @return
      */
-    public static String apiDataFlowMd5(ApiDataFlow dataFlow) throws NoAuthorityException{
-        if(dataFlow == null){
-            throw new NoAuthorityException(ResponseConstant.RESULT_CODE_NO_AUTHORITY_ERROR,"MD5签名过程中出现错误");
+    public static String apiDataFlowMd5(ApiDataFlow dataFlow) throws NoAuthorityException {
+        if (dataFlow == null) {
+            throw new NoAuthorityException(ResponseConstant.RESULT_CODE_NO_AUTHORITY_ERROR, "MD5签名过程中出现错误");
         }
         String reqInfo = dataFlow.getTransactionId() + dataFlow.getRequestTime() + dataFlow.getAppId();
-        reqInfo +=  "GET,DELETE".equals(dataFlow.getRequestHeaders().get(CommonConstant.HTTP_METHOD))?
-                dataFlow.getRequestHeaders().get("REQUEST_URL") :dataFlow.getReqData();
+        reqInfo += "GET,DELETE".equals(dataFlow.getRequestHeaders().get(CommonConstant.HTTP_METHOD)) ?
+                dataFlow.getRequestHeaders().get("REQUEST_URL") : dataFlow.getReqData();
         reqInfo += dataFlow.getAppRoutes().get(0).getSecurityCode();
         return md5(reqInfo);
     }
 
     /**
      * md5加密
+     *
      * @param transactionId 流水
-     * @param appId 应用ID
-     * @param businesses 内容
+     * @param appId         应用ID
+     * @param businesses    内容
      * @return
      */
-    public static String md5(String transactionId,String appId,String businesses,String code){
-        return md5(transactionId+appId+businesses+code).toLowerCase();
+    public static String md5(String transactionId, String appId, String businesses, String code) {
+        return md5(transactionId + appId + businesses + code).toLowerCase();
     }
 
     /**
      * 添加 sign
+     *
      * @param dataFlow
      * @param responseJson
      */
-    public static void putSign(DataFlow dataFlow,JSONObject responseJson){
+    public static void putSign(DataFlow dataFlow, JSONObject responseJson) {
         JSONObject orders = responseJson.getJSONObject("orders");
         JSONArray business = responseJson.getJSONArray("business");
-        if(dataFlow == null || dataFlow.getAppRoutes() == null || dataFlow.getAppRoutes().size() == 0 || StringUtil.isNullOrNone(dataFlow.getAppRoutes().get(0).getSecurityCode())) {
+        if (dataFlow == null || dataFlow.getAppRoutes() == null || dataFlow.getAppRoutes().size() == 0 || StringUtil.isNullOrNone(dataFlow.getAppRoutes().get(0).getSecurityCode())) {
             /*orders.put("sign", AuthenticationFactory.md5(orders.getString("transactionId"), orders.getString("responseTime"),
                     business.toJSONString(), MappingCache.getValue(MappingConstant.KEY_DEFAULT_SECURITY_CODE)));*/
-            orders.put("sign","");
-        }else {
+            orders.put("sign", "");
+        } else {
             orders.put("sign", AuthenticationFactory.md5(orders.getString("transactionId"), orders.getString("responseTime"),
-                    business == null ?"":business.toJSONString(), dataFlow.getAppRoutes().get(0).getSecurityCode()));
+                    business == null ? "" : business.toJSONString(), dataFlow.getAppRoutes().get(0).getSecurityCode()));
         }
     }
 
     /**
      * 添加 sign
+     *
      * @param dataFlow
      * @param headers
      */
-    public static void putSign(DataFlow dataFlow,Map<String,String> headers){
-        if(dataFlow == null || dataFlow.getAppRoutes() == null || dataFlow.getAppRoutes().size() == 0 || StringUtil.isNullOrNone(dataFlow.getAppRoutes().get(0).getSecurityCode())) {
-            headers.put("resSign","");
-        }else {
+    public static void putSign(DataFlow dataFlow, Map<String, String> headers) {
+        if (dataFlow == null || dataFlow.getAppRoutes() == null || dataFlow.getAppRoutes().size() == 0 || StringUtil.isNullOrNone(dataFlow.getAppRoutes().get(0).getSecurityCode())) {
+            headers.put("resSign", "");
+        } else {
             headers.put("resSign", AuthenticationFactory.md5(dataFlow.getTransactionId(), headers.get("responseTime"),
                     dataFlow.getResData(), dataFlow.getAppRoutes().get(0).getSecurityCode()));
         }
@@ -139,6 +146,7 @@ public class AuthenticationFactory {
 
     /**
      * 加密
+     *
      * @param data
      * @param publicKey
      * @param keySize
@@ -146,8 +154,7 @@ public class AuthenticationFactory {
      * @throws Exception
      */
     public static byte[] encrypt(byte[] data, PublicKey publicKey, int keySize)
-            throws Exception
-    {
+            throws Exception {
         Cipher cipher = Cipher.getInstance("RSA/ECB/PKCS1PADDING", "BC");
         cipher.init(Cipher.ENCRYPT_MODE, publicKey);
 
@@ -161,7 +168,7 @@ public class AuthenticationFactory {
             byte[] buf;
             if (inputLen - offSet > blockSize) {
                 buf = cipher.doFinal(data, offSet, blockSize);
-            }else {
+            } else {
                 buf = cipher.doFinal(data, offSet, inputLen - offSet);
             }
             out.write(buf, 0, buf.length);
@@ -175,6 +182,7 @@ public class AuthenticationFactory {
 
     /**
      * 解密
+     *
      * @param data
      * @param privateKey
      * @param keySize
@@ -182,8 +190,7 @@ public class AuthenticationFactory {
      * @throws Exception
      */
     public static byte[] decrypt(byte[] data, PrivateKey privateKey, int keySize)
-            throws Exception
-    {
+            throws Exception {
         Cipher cipher = Cipher.getInstance("RSA/ECB/PKCS1PADDING", "BC");
         cipher.init(Cipher.DECRYPT_MODE, privateKey);
         int blockSize = keySize >> 3;
@@ -202,19 +209,19 @@ public class AuthenticationFactory {
 
     /**
      * 加载公钥
+     *
      * @param keyData
      * @return
      * @throws Exception
      */
     public static PublicKey loadPubKey(String keyData)
-            throws Exception
-    {
+            throws Exception {
         return loadPemPublicKey(keyData, "RSA");
     }
 
     /**
      * 加载私钥
-
+     *
      * @param keyData
      * @return
      * @throws Exception
@@ -225,14 +232,14 @@ public class AuthenticationFactory {
 
     /**
      * 加载私钥
+     *
      * @param privateKeyPem
      * @param algorithm
      * @return
      * @throws Exception
      */
     public static PrivateKey loadPrivateKeyPkcs8(String privateKeyPem, String algorithm)
-            throws Exception
-    {
+            throws Exception {
         String privateKeyData = privateKeyPem.replace("-----BEGIN PRIVATE KEY-----", "");
         privateKeyData = privateKeyData.replace("-----END PRIVATE KEY-----", "");
         privateKeyData = privateKeyData.replace("\n", "");
@@ -248,14 +255,14 @@ public class AuthenticationFactory {
 
     /**
      * 加载公钥
+     *
      * @param publicPemData
      * @param algorithm
      * @return
      * @throws Exception
      */
     public static PublicKey loadPemPublicKey(String publicPemData, String algorithm)
-            throws Exception
-    {
+            throws Exception {
         String publicKeyPEM = publicPemData.replace("-----BEGIN PUBLIC KEY-----", "");
 
         publicKeyPEM = publicKeyPEM.replace("-----END PUBLIC KEY-----", "");
@@ -263,7 +270,7 @@ public class AuthenticationFactory {
         publicKeyPEM = publicKeyPEM.replace("\n", "");
         publicKeyPEM = publicKeyPEM.replace("\r", "");
 
-        byte[] decoded =Base64.getDecoder().decode(publicKeyPEM.getBytes());
+        byte[] decoded = Base64.getDecoder().decode(publicKeyPEM.getBytes());
 
         X509EncodedKeySpec spec = new X509EncodedKeySpec(decoded);
         KeyFactory keyFactory = KeyFactory.getInstance(algorithm);
@@ -272,20 +279,21 @@ public class AuthenticationFactory {
     }
 
     //生成密钥对
-    private static KeyPair genKeyPair(int keyLength) throws Exception{
-        KeyPairGenerator keyPairGenerator=KeyPairGenerator.getInstance("RSA");
+    private static KeyPair genKeyPair(int keyLength) throws Exception {
+        KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA");
         keyPairGenerator.initialize(1024);
         return keyPairGenerator.generateKeyPair();
     }
 
     /**
      * 用户密码
+     *
      * @param userPwd
      * @return
      */
-    public static String md5UserPassword(String userPwd){
+    public static String md5UserPassword(String userPwd) {
         String userPasswordSecret = MappingCache.getValue(MappingConstant.KEY_USER_PASSWORD_SECRET);
-        if(StringUtil.isNullOrNone(userPasswordSecret)){
+        if (StringUtil.isNullOrNone(userPasswordSecret)) {
             userPasswordSecret = CommonConstant.DEFAULT_USER_PWD_SECRET;
         }
         return md5(md5(userPwd + userPasswordSecret));
@@ -293,33 +301,34 @@ public class AuthenticationFactory {
 
     /**
      * 创建token
+     *
      * @return
      */
-    public static String createAndSaveToken(Map<String,String> info) throws Exception{
+    public static String createAndSaveToken(Map<String, String> info) throws Exception {
 
-        if(!info.containsKey(CommonConstant.LOGIN_USER_ID)){
-            throw new InvalidParameterException("参数中没有包含:"+CommonConstant.LOGIN_USER_ID);
+        if (!info.containsKey(CommonConstant.LOGIN_USER_ID)) {
+            throw new InvalidParameterException("参数中没有包含:" + CommonConstant.LOGIN_USER_ID);
         }
 
-        String jdi = UUID.randomUUID().toString().replace("-","");
+        String jdi = UUID.randomUUID().toString().replace("-", "");
         String jwtSecret = MappingCache.getValue(MappingConstant.KEY_JWT_SECRET);
-        if(StringUtil.isNullOrNone(jwtSecret)){
+        if (StringUtil.isNullOrNone(jwtSecret)) {
             jwtSecret = CommonConstant.DEFAULT_JWT_SECRET;
         }
         Algorithm algorithm = Algorithm.HMAC256(jwtSecret);
-        JWTCreator.Builder jwt= JWT.create();
-        for(String key:info.keySet()){
-            if(CommonConstant.LOGIN_USER_ID.equals(key)){
+        JWTCreator.Builder jwt = JWT.create();
+        for (String key : info.keySet()) {
+            if (CommonConstant.LOGIN_USER_ID.equals(key)) {
                 continue;
             }
-            jwt.withClaim(key,info.get(key));
+            jwt.withClaim(key, info.get(key));
         }
         String expireTime = MappingCache.getValue(MappingConstant.KEY_JWT_EXPIRE_TIME);
-        if(StringUtil.isNullOrNone(expireTime)){
+        if (StringUtil.isNullOrNone(expireTime)) {
             expireTime = CommonConstant.DEFAULT_JWT_EXPIRE_TIME;
         }
         //保存token Id
-        JWTCache.setValue(jdi,info.get(CommonConstant.LOGIN_USER_ID),Integer.parseInt(expireTime));
+        JWTCache.setValue(jdi, info.get(CommonConstant.LOGIN_USER_ID), Integer.parseInt(expireTime));
         jwt.withIssuer("java110");
         jwt.withJWTId(jdi);
         return jwt.sign(algorithm);
@@ -327,13 +336,14 @@ public class AuthenticationFactory {
 
     /**
      * 删除Token
+     *
      * @param token
      * @return
      * @throws Exception
      */
-    public static void deleteToken(String token) throws Exception{
+    public static void deleteToken(String token) throws Exception {
         String jwtSecret = MappingCache.getValue(MappingConstant.KEY_JWT_SECRET);
-        if(StringUtil.isNullOrNone(jwtSecret)){
+        if (StringUtil.isNullOrNone(jwtSecret)) {
             jwtSecret = CommonConstant.DEFAULT_JWT_SECRET;
         }
         Algorithm algorithm = Algorithm.HMAC256(jwtSecret);
@@ -342,20 +352,21 @@ public class AuthenticationFactory {
         String jdi = jwt.getId();
         //保存token Id
         String userId = JWTCache.getValue(jdi);
-        if(!StringUtil.isNullOrNone(userId)){ //说明redis中jdi 已经失效
+        if (!StringUtil.isNullOrNone(userId)) { //说明redis中jdi 已经失效
             JWTCache.removeValue(jdi);
         }
     }
 
     /**
      * 校验Token
+     *
      * @param token
      * @return
      * @throws Exception
      */
-    public static Map<String, String> verifyToken(String token) throws Exception{
+    public static Map<String, String> verifyToken(String token) throws Exception {
         String jwtSecret = MappingCache.getValue(MappingConstant.KEY_JWT_SECRET);
-        if(StringUtil.isNullOrNone(jwtSecret)){
+        if (StringUtil.isNullOrNone(jwtSecret)) {
             jwtSecret = CommonConstant.DEFAULT_JWT_SECRET;
         }
         Algorithm algorithm = Algorithm.HMAC256(jwtSecret);
@@ -364,22 +375,22 @@ public class AuthenticationFactory {
         String jdi = jwt.getId();
         //保存token Id
         String userId = JWTCache.getValue(jdi);
-        if(StringUtil.isNullOrNone(userId)){
+        if (StringUtil.isNullOrNone(userId)) {
             throw new JWTVerificationException("用户还未登录");
         }
         String expireTime = MappingCache.getValue(MappingConstant.KEY_JWT_EXPIRE_TIME);
-        if(StringUtil.isNullOrNone(expireTime)){
+        if (StringUtil.isNullOrNone(expireTime)) {
             expireTime = CommonConstant.DEFAULT_JWT_EXPIRE_TIME;
         }
         //刷新过时时间
-        JWTCache.resetExpireTime(jdi,Integer.parseInt(expireTime));
+        JWTCache.resetExpireTime(jdi, Integer.parseInt(expireTime));
         Map<String, Claim> claims = jwt.getClaims();
         // Add the claim to request header
-        Map<String,String> paramOut = new HashMap<String, String>();
-        for(String key : claims.keySet()){
-            paramOut.put(key,claims.get(key).asString());
+        Map<String, String> paramOut = new HashMap<String, String>();
+        for (String key : claims.keySet()) {
+            paramOut.put(key, claims.get(key).asString());
         }
-        paramOut.put(CommonConstant.LOGIN_USER_ID,userId);
+        paramOut.put(CommonConstant.LOGIN_USER_ID, userId);
         return paramOut;
     }
 
@@ -387,18 +398,17 @@ public class AuthenticationFactory {
     /***********************************JWT start***************************************/
 
 
-
     /***********************************JWT end***************************************/
-    public static void main(String[] args) throws Exception{
-        KeyPair keyPair=genKeyPair(1024);
+    public static void main(String[] args) throws Exception {
+        KeyPair keyPair = genKeyPair(1024);
 
         //获取公钥,并以base64格式打印出来
-        PublicKey publicKey=keyPair.getPublic();
-        System.out.println("公钥:"+new String(Base64.getEncoder().encode(publicKey.getEncoded())));
+        PublicKey publicKey = keyPair.getPublic();
+        System.out.println("公钥:" + new String(Base64.getEncoder().encode(publicKey.getEncoded())));
 
         //获取私钥,并以base64格式打印出来
-        PrivateKey privateKey=keyPair.getPrivate();
-        System.out.println("私钥:"+new String(Base64.getEncoder().encode(privateKey.getEncoded())));
+        PrivateKey privateKey = keyPair.getPrivate();
+        System.out.println("私钥:" + new String(Base64.getEncoder().encode(privateKey.getEncoded())));
 
     }
 }

+ 36 - 33
java110-service/src/main/java/com/java110/service/aop/PageProcessAspect.java

@@ -36,10 +36,11 @@ import java.util.Map;
 @Component
 public class PageProcessAspect {
 
-    private final static Logger logger = LoggerFactory.getLogger(PageProcessAspect.class);
+    private  static Logger logger = LoggerFactory.getLogger(PageProcessAspect.class);
 
     @Pointcut("execution(public * com.java110..*.*Controller.*(..)) || execution(public * com.java110..*.*Rest.*(..))")
-    public void dataProcess(){}
+    public void dataProcess() {
+    }
 
     /**
      * 初始化数据
@@ -57,7 +58,7 @@ public class PageProcessAspect {
         String reqData = "";
         String userId = "";
         String sessionId = request.getSession().getId();
-        if("POST,PUT".contains(request.getMethod())){
+        if ("POST,PUT".contains(request.getMethod())) {
             InputStream in = request.getInputStream();
             BufferedReader reader = new BufferedReader(new InputStreamReader(in));
             //reader.
@@ -70,18 +71,18 @@ public class PageProcessAspect {
 
         }
         //对 get情况下的参数进行封装
-        else{
-            Map<String,String[]> params = request.getParameterMap();
-            if(params != null  && !params.isEmpty()) {
+        else {
+            Map<String, String[]> params = request.getParameterMap();
+            if (params != null && !params.isEmpty()) {
                 JSONObject paramObj = new JSONObject();
-                for(String key : params.keySet()) {
-                    if(params.get(key).length>0){
+                for (String key : params.keySet()) {
+                    if (params.get(key).length > 0) {
                         String value = "";
-                        for(int paramIndex = 0 ; paramIndex < params.get(key).length;paramIndex++) {
+                        for (int paramIndex = 0; paramIndex < params.get(key).length; paramIndex++) {
                             value = params.get(key)[paramIndex] + ",";
                         }
-                        value = value.endsWith(",")?value.substring(0,value.length()-1):value;
-                        paramObj.put(key,value);
+                        value = value.endsWith(",") ? value.substring(0, value.length() - 1) : value;
+                        paramObj.put(key, value);
                     }
                     continue;
                 }
@@ -89,34 +90,34 @@ public class PageProcessAspect {
             }
         }
         // 获取 userId
-        if(request.getAttribute("claims") != null && request.getAttribute("claims") instanceof Map){
-            Map<String,String> userInfo = (Map<String,String>)request.getAttribute("claims");
-            if(userInfo.containsKey(CommonConstant.LOGIN_USER_ID)){
+        if (request.getAttribute("claims") != null && request.getAttribute("claims") instanceof Map) {
+            Map<String, String> userInfo = (Map<String, String>) request.getAttribute("claims");
+            if (userInfo.containsKey(CommonConstant.LOGIN_USER_ID)) {
                 userId = userInfo.get(CommonConstant.LOGIN_USER_ID);
             }
         }
 
         // 获取组件名称 和方法名称
-        String url = request.getRequestURL()!=null?request.getRequestURL().toString():"";
+        String url = request.getRequestURL() != null ? request.getRequestURL().toString() : "";
         String componentCode = "";
         String componentMethod = "";
-        if(url.contains("callComponent")){ //组件处理
-            String []urls = url.split("/");
+        if (url.contains("callComponent")) { //组件处理
+            String[] urls = url.split("/");
 
-            if(urls.length == 6){
+            if (urls.length == 6) {
                 componentCode = urls[4];
                 componentMethod = urls[5];
             }
-        }else if(url.contains("flow")){ //流程处理
-            String []urls = url.split("/");
+        } else if (url.contains("flow")) { //流程处理
+            String[] urls = url.split("/");
 
-            if(urls.length == 5){
+            if (urls.length == 5) {
                 componentCode = urls[4];
             }
         }
 
-         pd = PageData.newInstance().builder(userId,this.getToken(request),reqData,componentCode,componentMethod,url,sessionId);
-        request.setAttribute(CommonConstant.CONTEXT_PAGE_DATA,pd);
+        pd = PageData.newInstance().builder(userId, this.getToken(request), reqData, componentCode, componentMethod, url, sessionId);
+        request.setAttribute(CommonConstant.CONTEXT_PAGE_DATA, pd);
 
     }
 
@@ -127,7 +128,7 @@ public class PageProcessAspect {
 
     //后置异常通知
     @AfterThrowing("dataProcess()")
-    public void throwException(JoinPoint jp){
+    public void throwException(JoinPoint jp) {
     }
 
     //后置最终通知,final增强,不管是抛出异常或者正常退出都会执行
@@ -137,14 +138,14 @@ public class PageProcessAspect {
         ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
 
         HttpServletRequest request = attributes.getRequest();
-        PageData pd =request.getAttribute(CommonConstant.CONTEXT_PAGE_DATA) != null ?(PageData)request.getAttribute(CommonConstant.CONTEXT_PAGE_DATA):null ;
+        PageData pd = request.getAttribute(CommonConstant.CONTEXT_PAGE_DATA) != null ? (PageData) request.getAttribute(CommonConstant.CONTEXT_PAGE_DATA) : null;
         //保存日志处理
-        if(pd == null){
-            return ;
+        if (pd == null) {
+            return;
         }
 
         //写cookies信息
-        writeCookieInfo(pd,attributes);
+        writeCookieInfo(pd, attributes);
 
     }
 
@@ -152,7 +153,7 @@ public class PageProcessAspect {
     @Around("dataProcess()")
     public Object around(ProceedingJoinPoint pjp) {
         try {
-            Object o =  pjp.proceed();
+            Object o = pjp.proceed();
             return o;
         } catch (Throwable e) {
             e.printStackTrace();
@@ -163,12 +164,13 @@ public class PageProcessAspect {
 
     /**
      * 获取TOKEN
+     *
      * @param request
      * @return
      */
     private String getToken(HttpServletRequest request) throws FilterException {
         String token = "";
-        if(request.getCookies() == null || request.getCookies().length == 0){
+        if (request.getCookies() == null || request.getCookies().length == 0) {
             return token;
         }
         for (Cookie cookie : request.getCookies()) {
@@ -182,13 +184,14 @@ public class PageProcessAspect {
 
     /**
      * 写cookie 信息
-     * @param pd 页面封装信息
+     *
+     * @param pd         页面封装信息
      * @param attributes
      * @throws IOException
      */
-    private void writeCookieInfo(IPageData pd,ServletRequestAttributes attributes) throws IOException {
+    private void writeCookieInfo(IPageData pd, ServletRequestAttributes attributes) throws IOException {
         // 这里目前只写到组件级别,如果需要 写成方法级别
-        if(!StringUtil.isNullOrNone(pd.getToken()) && "login".equals(pd.getComponentCode())) {
+        if (!StringUtil.isNullOrNone(pd.getToken()) && "login".equals(pd.getComponentCode())) {
             HttpServletResponse response = attributes.getResponse();
             Cookie cookie = new Cookie(CommonConstant.COOKIE_AUTH_TOKEN, pd.getToken());
             cookie.setHttpOnly(true);

+ 56 - 50
java110-service/src/main/java/com/java110/service/api/BusinessApi.java

@@ -29,6 +29,7 @@ import java.util.Map;
  * 查询服务
  * add by wuxw on 2018/4/20.
  * modify by wuxw on 2019/4/20.
+ *
  * @version 1.1
  */
 @RestController
@@ -41,49 +42,50 @@ public class BusinessApi extends BaseController {
     private IQueryServiceSMO queryServiceSMOImpl;
 
 
-    @RequestMapping(path = "/businessApi/query",method= RequestMethod.GET)
-    @ApiOperation(value="业务查询get请求", notes="test: 返回 2XX 表示服务正常")
-    @ApiImplicitParam(paramType="query", name = "method", value = "用户编号", required = true, dataType = "String")
+    @RequestMapping(path = "/businessApi/query", method = RequestMethod.GET)
+    @ApiOperation(value = "业务查询get请求", notes = "test: 返回 2XX 表示服务正常")
+    @ApiImplicitParam(paramType = "query", name = "method", value = "用户编号", required = true, dataType = "String")
     @Deprecated
     public ResponseEntity<String> service(HttpServletRequest request) {
         try {
             Map<String, Object> headers = new HashMap<String, Object>();
             this.getRequestInfo(request, headers);
-            Assert.isNotNull(headers, CommonConstant.HTTP_SERVICE.toLowerCase(),"请求信息中没有包含service信息");
+            Assert.isNotNull(headers, CommonConstant.HTTP_SERVICE.toLowerCase(), "请求信息中没有包含service信息");
             //Assert.isNotNull(headers, CommonConstant.HTTP_PARAM,"请求信息中没有包含参数(params)信息");
             Map readOnlyMap = super.getParameterStringMap(request);
-            headers.put("params",readOnlyMap);
+            headers.put("params", readOnlyMap);
             DataQuery dataQuery = DataQueryFactory.newInstance().builder(headers);
             initConfig(dataQuery);
             queryServiceSMOImpl.commonQueryService(dataQuery);
             return dataQuery.getResponseEntity();
-        }catch (Exception e){
-            logger.error("请求订单异常",e);
+        } catch (Exception e) {
+            logger.error("请求订单异常", e);
             //DataTransactionFactory.createBusinessResponseJson(ResponseConstant.RESULT_CODE_ERROR,e.getMessage()+e).toJSONString();
-            return new ResponseEntity<String>("请求发生异常,"+e.getMessage()+e, HttpStatus.INTERNAL_SERVER_ERROR);
+            return new ResponseEntity<String>("请求发生异常," + e.getMessage() + e, HttpStatus.INTERNAL_SERVER_ERROR);
 
         }
     }
 
     /**
      * {
-     "bId":"12345678",
-     "serviceCode": "querycustinfo",
-     "serviceName": "查询客户",
-     "remark": "备注",
-     "datas": {
-     "params": {
-     //这个做查询时的参数
-     }
-     //这里是具体业务
-     }
-     }
+     * "bId":"12345678",
+     * "serviceCode": "querycustinfo",
+     * "serviceName": "查询客户",
+     * "remark": "备注",
+     * "datas": {
+     * "params": {
+     * //这个做查询时的参数
+     * }
+     * //这里是具体业务
+     * }
+     * }
+     *
      * @param businessInfo
      * @return
      */
-    @RequestMapping(path = "/businessApi/query",method= RequestMethod.POST)
-    @ApiOperation(value="业务查询post请求", notes="test: 返回 2XX 表示服务正常")
-    @ApiImplicitParam(paramType="query", name = "method", value = "用户编号", required = true, dataType = "String")
+    @RequestMapping(path = "/businessApi/query", method = RequestMethod.POST)
+    @ApiOperation(value = "业务查询post请求", notes = "test: 返回 2XX 表示服务正常")
+    @ApiImplicitParam(paramType = "query", name = "method", value = "用户编号", required = true, dataType = "String")
     @Deprecated
     public ResponseEntity<String> queryPost(@RequestBody String businessInfo) {
         try {
@@ -91,37 +93,39 @@ public class BusinessApi extends BaseController {
             initConfig(dataQuery);
             queryServiceSMOImpl.commonQueryService(dataQuery);
             return dataQuery.getResponseEntity();
-        }catch (Exception e){
-            logger.error("请求订单异常",e);
-             //DataTransactionFactory.createBusinessResponseJson(ResponseConstant.RESULT_CODE_ERROR,e.getMessage()+e).toJSONString();
-            return new ResponseEntity<String>("请求发生异常,"+e.getMessage()+e, HttpStatus.INTERNAL_SERVER_ERROR);
+        } catch (Exception e) {
+            logger.error("请求订单异常", e);
+            //DataTransactionFactory.createBusinessResponseJson(ResponseConstant.RESULT_CODE_ERROR,e.getMessage()+e).toJSONString();
+            return new ResponseEntity<String>("请求发生异常," + e.getMessage() + e, HttpStatus.INTERNAL_SERVER_ERROR);
 
         }
     }
+
     @Deprecated
-    @RequestMapping(path = "/businessApi/do",method= RequestMethod.GET)
+    @RequestMapping(path = "/businessApi/do", method = RequestMethod.GET)
     public String doGet(HttpServletRequest request) {
-        return DataTransactionFactory.createBusinessResponseJson(ResponseConstant.RESULT_CODE_ERROR,"不支持Get方法请求").toJSONString();
+        return DataTransactionFactory.createBusinessResponseJson(ResponseConstant.RESULT_CODE_ERROR, "不支持Get方法请求").toJSONString();
     }
 
     /**
      * {
-     "bId":"12345678",
-     "serviceCode": "querycustinfo",
-     "serviceName": "查询客户",
-     "remark": "备注",
-     "datas": {
-     "params": {
-     //这个做查询时的参数
-     }
-     //这里是具体业务
-     }
-     }
+     * "bId":"12345678",
+     * "serviceCode": "querycustinfo",
+     * "serviceName": "查询客户",
+     * "remark": "备注",
+     * "datas": {
+     * "params": {
+     * //这个做查询时的参数
+     * }
+     * //这里是具体业务
+     * }
+     * }
+     *
      * @param businessInfo
      * @return
      */
     @Deprecated
-    @RequestMapping(path = "/businessApi/do",method= RequestMethod.POST)
+    @RequestMapping(path = "/businessApi/do", method = RequestMethod.POST)
     public String doPost(@RequestBody String businessInfo) {
         try {
             DataQuery dataQuery = DataQueryFactory.newInstance().builder(businessInfo);
@@ -129,33 +133,35 @@ public class BusinessApi extends BaseController {
             //这里应该添加 只有配置类数据才能处理数据,业务类数据不能操作 逻辑
             queryServiceSMOImpl.commonDoService(dataQuery);
             return dataQuery.getResponseInfo().toJSONString();
-        }catch (Exception e){
-            logger.error("请求订单异常",e);
-            return DataTransactionFactory.createBusinessResponseJson(ResponseConstant.RESULT_CODE_ERROR,e.getMessage()+e).toJSONString();
+        } catch (Exception e) {
+            logger.error("请求订单异常", e);
+            return DataTransactionFactory.createBusinessResponseJson(ResponseConstant.RESULT_CODE_ERROR, e.getMessage() + e).toJSONString();
         }
     }
 
     /**
      * 初始化配置
+     *
      * @param dataQuery
      */
-    private void initConfig(DataQuery dataQuery){
+    private void initConfig(DataQuery dataQuery) {
         dataQuery.setServiceSql(DataQueryFactory.getServiceSql(dataQuery));
     }
 
 
     /**
      * 获取请求信息
+     *
      * @param request
      * @param headers
      * @throws RuntimeException
      */
-    private void getRequestInfo(HttpServletRequest request,Map headers) throws Exception{
-        try{
-            super.initHeadParam(request,headers);
-            super.initUrlParam(request,headers);
-        }catch (Exception e){
-            logger.error("加载头信息失败",e);
+    private void getRequestInfo(HttpServletRequest request, Map headers) throws Exception {
+        try {
+            super.initHeadParam(request, headers);
+            super.initUrlParam(request, headers);
+        } catch (Exception e) {
+            logger.error("加载头信息失败", e);
             throw e;
         }
     }

+ 25 - 17
java110-service/src/main/java/com/java110/service/filter/JwtFilter.java

@@ -3,19 +3,24 @@ package com.java110.service.filter;
 import com.java110.common.constant.CommonConstant;
 import com.java110.common.constant.ResponseConstant;
 import com.java110.common.exception.FilterException;
+import com.java110.common.util.StringUtil;
 import com.java110.core.factory.AuthenticationFactory;
 import com.java110.core.factory.DataTransactionFactory;
-import com.java110.common.util.StringUtil;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.web.filter.GenericFilterBean;
 
-import javax.servlet.*;
+import javax.servlet.Filter;
+import javax.servlet.FilterChain;
+import javax.servlet.FilterConfig;
+import javax.servlet.ServletException;
+import javax.servlet.ServletRequest;
+import javax.servlet.ServletResponse;
 import javax.servlet.http.Cookie;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
 import java.io.PrintWriter;
+import java.util.Date;
 import java.util.Map;
 
 /**
@@ -23,9 +28,9 @@ import java.util.Map;
  */
 public class JwtFilter implements Filter {
 
-    private final static Logger logger = LoggerFactory.getLogger(JwtFilter.class);
+    private static Logger logger = LoggerFactory.getLogger(JwtFilter.class);
 
-    private  String[] excludedUris;
+    private String[] excludedUris;
 
     @Override
     public void destroy() {
@@ -45,16 +50,18 @@ public class JwtFilter implements Filter {
         final HttpServletResponse response = (HttpServletResponse) res;
         String uri = request.getServletPath();
         //如果是 不能过滤的地址选择跳过
-        if(isExcludedUri(uri)){
+        if (isExcludedUri(uri)) {
             chain.doFilter(request, response);
-            return ;
+            return;
         }
         String token = "";
         try {
             //获取token
             token = this.getToken(request);
             try {
+                long tokenStartTime = new Date().getTime();
                 Map<String, String> claims = AuthenticationFactory.verifyToken(token);
+                logger.debug("校验token 耗时:{}", new Date().getTime() - tokenStartTime);
                 request.setAttribute("claims", claims);
 
             } catch (Exception e) {
@@ -64,26 +71,27 @@ public class JwtFilter implements Filter {
             }
 
             chain.doFilter(req, res);
-        }catch (FilterException e){
-            if("POST".equals(request.getMethod())){
+        } catch (FilterException e) {
+            if ("POST".equals(request.getMethod())) {
                 writeJson(response,
-                        DataTransactionFactory.pageResponseJson(ResponseConstant.RESULT_CODE_NO_AUTHORITY_ERROR,e.getMessage(),null),
+                        DataTransactionFactory.pageResponseJson(ResponseConstant.RESULT_CODE_NO_AUTHORITY_ERROR, e.getMessage(), null),
                         "UTF-8");
-            }else{
+            } else {
                 response.sendRedirect("/flow/login");
             }
 
-        }catch (Exception e){
+        } catch (Exception e) {
             response.sendRedirect("/flow/login");
         }
     }
 
     /**
      * 获取TOKEN
+     *
      * @param request
      * @return
      */
-    private String getToken(HttpServletRequest request) throws FilterException{
+    private String getToken(HttpServletRequest request) throws FilterException {
         String token = "";
         for (Cookie cookie : request.getCookies()) {
             if (CommonConstant.COOKIE_AUTH_TOKEN.equals(cookie.getName())) {
@@ -97,17 +105,17 @@ public class JwtFilter implements Filter {
         return token;
     }
 
-    private void writeJson(HttpServletResponse response, String data, String encoding){
+    private void writeJson(HttpServletResponse response, String data, String encoding) {
         //设置编码格式
         response.setContentType("text/plain;charset=" + encoding);
         response.setCharacterEncoding(encoding);
 
         PrintWriter out = null;
-        try{
+        try {
             out = response.getWriter();
             out.write(data);
             out.flush();
-        }catch(IOException e){
+        } catch (IOException e) {
             e.printStackTrace();
         }
     }
@@ -119,7 +127,7 @@ public class JwtFilter implements Filter {
         for (String ex : excludedUris) {
             uri = uri.trim();
             ex = ex.trim();
-            if (uri.toLowerCase().matches(ex.toLowerCase().replace("*",".*")))
+            if (uri.toLowerCase().matches(ex.toLowerCase().replace("*", ".*")))
                 return true;
         }
         return false;