From 4c68289b0ae81e994147430b6ad62e2a4ef908d6 Mon Sep 17 00:00:00 2001
From: 吴学文 <wuxuewen@wuxuewendeMacBook-Pro.local>
Date: 星期五, 24 五月 2019 21:33:20 +0800
Subject: [PATCH] 加入eureka docker-compose 管理

---
 java110-core/src/main/java/com/java110/core/factory/AuthenticationFactory.java |  170 +++++++++++++++++++++++++++++++-------------------------
 1 files changed, 95 insertions(+), 75 deletions(-)

diff --git a/java110-core/src/main/java/com/java110/core/factory/AuthenticationFactory.java b/java110-core/src/main/java/com/java110/core/factory/AuthenticationFactory.java
index 9b3a87e..b0fc069 100644
--- a/java110-core/src/main/java/com/java110/core/factory/AuthenticationFactory.java
+++ b/java110-core/src/main/java/com/java110/core/factory/AuthenticationFactory.java
@@ -32,95 +32,112 @@
 import java.util.*;
 
 /**
- *
  * 閴存潈宸ュ巶绫�
  * Created by wuxw on 2018/4/23.
  */
 public class AuthenticationFactory {
 
+    private final static String PASSWD_SALT = "hc@java110";
+
     /**
-     * md5绛惧悕
+     * 鐢ㄦ埛瀵嗙爜 md5绛惧悕
+     *
      * @param inStr
      * @return
      */
-    public static String md5(String inStr) throws NoAuthorityException{
+    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 {
         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()));
         }
@@ -129,6 +146,7 @@
 
     /**
      * 鍔犲瘑
+     *
      * @param data
      * @param publicKey
      * @param keySize
@@ -136,8 +154,7 @@
      * @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);
 
@@ -151,7 +168,7 @@
             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);
@@ -165,6 +182,7 @@
 
     /**
      * 瑙e瘑
+     *
      * @param data
      * @param privateKey
      * @param keySize
@@ -172,8 +190,7 @@
      * @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;
@@ -192,19 +209,19 @@
 
     /**
      * 鍔犺浇鍏挜
+     *
      * @param keyData
      * @return
      * @throws Exception
      */
     public static PublicKey loadPubKey(String keyData)
-            throws Exception
-    {
+            throws Exception {
         return loadPemPublicKey(keyData, "RSA");
     }
 
     /**
      * 鍔犺浇绉侀挜
-
+     *
      * @param keyData
      * @return
      * @throws Exception
@@ -215,14 +232,14 @@
 
     /**
      * 鍔犺浇绉侀挜
+     *
      * @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", "");
@@ -238,14 +255,14 @@
 
     /**
      * 鍔犺浇鍏挜
+     *
      * @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-----", "");
@@ -253,7 +270,7 @@
         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);
@@ -262,20 +279,21 @@
     }
 
     //鐢熸垚瀵嗛挜瀵�
-    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));
@@ -283,33 +301,34 @@
 
     /**
      * 鍒涘缓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);
@@ -317,13 +336,14 @@
 
     /**
      * 鍒犻櫎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);
@@ -332,20 +352,21 @@
         String jdi = jwt.getId();
         //淇濆瓨token Id
         String userId = JWTCache.getValue(jdi);
-        if(!StringUtil.isNullOrNone(userId)){ //璇存槑redis涓璲di 宸茬粡澶辨晥
+        if (!StringUtil.isNullOrNone(userId)) { //璇存槑redis涓璲di 宸茬粡澶辨晥
             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);
@@ -354,22 +375,22 @@
         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;
     }
 
@@ -377,18 +398,17 @@
     /***********************************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);
 
         //鑾峰彇鍏挜锛屽苟浠ase64鏍煎紡鎵撳嵃鍑烘潵
-        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())));
 
         //鑾峰彇绉侀挜锛屽苟浠ase64鏍煎紡鎵撳嵃鍑烘潵
-        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())));
 
     }
 }

--
Gitblit v1.8.0