From ca73e9f48fa7e322126d90934085f2b6b0c22acd Mon Sep 17 00:00:00 2001 From: xyiege Date: Thu, 14 Jul 2022 23:31:57 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=98=BE=E7=A4=BA=E6=A0=BC?= =?UTF-8?q?=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/admin/AdminUserController.java | 30 +++++++++++++------ .../java/cn/chjyj/szwh/utils/SignUtils.java | 10 ++----- 2 files changed, 24 insertions(+), 16 deletions(-) diff --git a/src/main/java/cn/chjyj/szwh/controller/admin/AdminUserController.java b/src/main/java/cn/chjyj/szwh/controller/admin/AdminUserController.java index 70e3eeb..83368a5 100644 --- a/src/main/java/cn/chjyj/szwh/controller/admin/AdminUserController.java +++ b/src/main/java/cn/chjyj/szwh/controller/admin/AdminUserController.java @@ -4,6 +4,7 @@ import cn.chjyj.szwh.bean.User; import cn.chjyj.szwh.controller.BaseController; import cn.chjyj.szwh.service.LoginService; import cn.chjyj.szwh.service.UserService; +import cn.chjyj.szwh.utils.SignUtils; import com.alibaba.fastjson.JSONObject; import com.auth0.jwt.JWT; import com.auth0.jwt.interfaces.Claim; @@ -77,21 +78,32 @@ public class AdminUserController extends BaseController { String token = request.getHeader("token"); String murl= request.getHeader("url"); - List retlist = new ArrayList(); + Map retmap = new HashMap(); //解析token中到信息 DecodedJWT decode = JWT.decode(token); - //获取claim信息 - Map pcmap = decode.getClaims(); - retlist.add(pcmap); - String accountid = decode.getClaim("accountId").asString(); + String accountId = decode.getClaim("accountId").asString(); + retmap.put("accountId",accountId); + String accountName = decode.getClaim("accountName").asString(); + retmap.put("accountName",accountName); + String aud = decode.getClaim("aud").asString(); + retmap.put("aud",aud); + Long iat= decode.getClaim("iat").asLong(); + retmap.put("iat",iat); + String jti =decode.getClaim("jti").asString(); + retmap.put("jti",jti); + //权限列表 + String[] menuPermission= decode.getClaim("menuPermission").asArray(String.class); + retmap.put("menuPermission",menuPermission); + + // 用户权限 - Map auth = loginService.checkUser(accountid,murl,token); - Map retmap = new HashMap(); + Map auth = loginService.checkUser(accountId,murl,token); retmap.put("auth",auth.get("data")); - retlist.add(retmap); + //for deubug + //retmap.put("auth","adminauth"); jsonObject.put("code",200); - jsonObject.put("data",retlist); + jsonObject.put("data",retmap); jsonObject.put("msg","成功"); return jsonObject; } diff --git a/src/main/java/cn/chjyj/szwh/utils/SignUtils.java b/src/main/java/cn/chjyj/szwh/utils/SignUtils.java index b287673..e021f40 100644 --- a/src/main/java/cn/chjyj/szwh/utils/SignUtils.java +++ b/src/main/java/cn/chjyj/szwh/utils/SignUtils.java @@ -11,15 +11,13 @@ import com.auth0.jwt.interfaces.DecodedJWT; import org.apache.commons.codec.binary.Base64; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import sun.misc.BASE64Decoder; + import java.io.BufferedReader; import java.io.FileReader; import java.security.KeyFactory; -import java.security.NoSuchAlgorithmException; import java.security.interfaces.RSAPrivateKey; import java.security.interfaces.RSAPublicKey; -import java.security.spec.InvalidKeySpecException; import java.security.spec.PKCS8EncodedKeySpec; import java.security.spec.X509EncodedKeySpec; import java.util.Calendar; @@ -162,7 +160,7 @@ public class SignUtils { String pubkey=(String) xmap.get("public_key"); // 公钥证书 // 读取证书内容 - RSAPublicKey rsaPublicKey = getPublicKey(pubkey); + RSAPublicKey rsaPublicKey = getPublicKey(ChConstant.WORK_DIR + "/" +pubkey); // 解析对象,算法与加密时候一致 JWTVerifier jwtVerifier = JWT.require(Algorithm.RSA256(rsaPublicKey,null)).build(); //解析指定token @@ -183,10 +181,8 @@ public class SignUtils { * 抽取公钥 * @param publicKey * @return - * @throws NoSuchAlgorithmException - * @throws InvalidKeySpecException */ - public static RSAPublicKey getPublicKey(String publicKey) throws NoSuchAlgorithmException, InvalidKeySpecException { + public static RSAPublicKey getPublicKey(String publicKey) { // 读取证书文件内容 String keycontent = getKeyContent(publicKey); // 剔除证书中的换行符