Просмотр исходного кода

JWT认证异常修复:参照发改委代码重新调整实体与接口

pengchaozhi 2 месяцев назад
Родитель
Сommit
17a17513ae

+ 7 - 6
projects-service/src/main/java/com/rtrh/projects/modules/system/dao/SecUserDao.java

@@ -1,16 +1,16 @@
 package com.rtrh.projects.modules.system.dao;
 
-import java.util.List;
-
+import com.rtrh.common.util.CollectionUtil;
+import com.rtrh.common.util.StringUtil;
+import com.rtrh.core.repository.hibernate.EntityServiceImpl;
+import com.rtrh.projects.modules.system.po.SecUser;
+import com.rtrh.projects.util.TargetDataSource;
 import org.hibernate.criterion.Criterion;
 import org.hibernate.criterion.DetachedCriteria;
 import org.hibernate.criterion.Restrictions;
 import org.springframework.stereotype.Service;
 
-import com.rtrh.common.util.CollectionUtil;
-import com.rtrh.common.util.StringUtil;
-import com.rtrh.core.repository.hibernate.EntityServiceImpl;
-import com.rtrh.projects.modules.system.po.SecUser;
+import java.util.List;
 
 @Service
 public class SecUserDao extends EntityServiceImpl<SecUser> {
@@ -38,4 +38,5 @@ public class SecUserDao extends EntityServiceImpl<SecUser> {
         List<SecUser> list = find(detachedCriteria);
         return CollectionUtil.isEmpty(list) ? null : list.get(0);
     }
+
 }

+ 11 - 8
projects-service/src/main/java/com/rtrh/projects/modules/system/po/SecUser.hbm.xml

@@ -8,6 +8,10 @@
 		<property column="kind_unit" name="kindUnit" not-null="false" type="java.lang.String" />
 		<property column="is_unit" name="isUnit" not-null="false" type="java.lang.Boolean" />
 		<property column="kind" name="kind" not-null="false" type="java.lang.String" />
+		<property column="other_kind" name="otherKind" not-null="false" type="java.lang.String" />
+		<property name="statusSubject" type="java.lang.String">
+			<column name="status_subject" default="0"/>
+		</property>
 		<property column="unit_id" name="unitId" not-null="false" type="java.lang.String" />
 		<property column="unit_dw_id" name="unitDWId" not-null="false" type="java.lang.String" />
 		<property column="depart_id" name="departId" not-null="false" type="java.lang.String" />
@@ -20,12 +24,11 @@
 		<property column="edit" name="edit" not-null="false" type="java.lang.Boolean" />
 		<property column="is_lead" name="isLead" not-null="false" type="java.lang.Boolean" />
 		<property column="create_user_id" name="createUserId" not-null="false" type="java.lang.String" />
-        <property column="create_user_name" name="createUserName" not-null="false" type="java.lang.String" />
-        <property column="create_time" name="createTime" not-null="false" type="java.util.Date" />
-        <property column="last_update_user_id" name="lastUpdateUserId" not-null="false" type="java.lang.String" />
-        <property column="last_update_user_name" name="lastUpdateUserName" not-null="false" type="java.lang.String" />
-        <property column="update_time" name="updateTime" not-null="false" type="java.util.Date" />
-        <property column="logic_delete_flag" name="logicDeleteFlag" not-null="false" type="java.lang.Boolean" />
-		<property column="status_subject" name="statusSubject" not-null="false" type="java.lang.String"/>
+		<property column="create_user_name" name="createUserName" not-null="false" type="java.lang.String" />
+		<property column="create_time" name="createTime" not-null="false" type="java.util.Date" />
+		<property column="last_update_user_id" name="lastUpdateUserId" not-null="false" type="java.lang.String" />
+		<property column="last_update_user_name" name="lastUpdateUserName" not-null="false" type="java.lang.String" />
+		<property column="update_time" name="updateTime" not-null="false" type="java.util.Date" />
+		<property column="logic_delete_flag" name="logicDeleteFlag" not-null="false" type="java.lang.Boolean" />
 	</class>
-</hibernate-mapping>
+</hibernate-mapping>

+ 31 - 185
projects-service/src/main/java/com/rtrh/projects/modules/system/po/SecUser.java

@@ -2,8 +2,13 @@ package com.rtrh.projects.modules.system.po;
 
 import java.io.Serializable;
 import java.util.Date;
+import java.util.List;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
+import com.rtrh.projects.modules.rolemeun.po.SecRole;
+import lombok.Data;
+
+import javax.persistence.Transient;
 
 /**
  * 用户信息
@@ -11,6 +16,7 @@ import com.fasterxml.jackson.annotation.JsonFormat;
  *
  */
 @SuppressWarnings("serial")
+@Data
 public class SecUser implements Serializable {
 
 	/**
@@ -37,9 +43,15 @@ public class SecUser implements Serializable {
 	 */
 	private Boolean isUnit;
 	/**
-	 * 角色
+	 *  默认角色
 	 */
 	private String kind;
+
+	/**
+	 * 可切换角色
+	 */
+	private String otherKind;
+
 	/**
 	 * 对应的责任单位j_unit对应的id
 	 */
@@ -81,10 +93,7 @@ public class SecUser implements Serializable {
 	 * 最后跟新人
 	 */
 	private String lastUpdateUserName;
-	/**
-	 * 是否被删除
-	 */
-	private boolean logicDeleteFlag = false;
+
 	/**
 	 * 电话
 	 */
@@ -102,9 +111,14 @@ public class SecUser implements Serializable {
 
 	/**
 	 * 是否可以查看所有项目
-	 * @see com.rtrh.projects.modules.system.enums.ProjectSta
+	 *
 	 */
 	private String statusProj;
+
+	/**
+	 * 是否能查看所有市区县项目
+	 */
+	private String statusSubject;
 	/**
 	 * 是否可编辑
 	 */
@@ -115,20 +129,6 @@ public class SecUser implements Serializable {
 	 */
 	private Boolean isLead;
 
-	/**
-	 * 工信局数据权限 1 查看所有区域项目
-	 */
-	private String statusSubject;
-
-
-	public String getStatusSubject() {
-		return statusSubject;
-	}
-
-	public void setStatusSubject(String statusSubject) {
-		this.statusSubject = statusSubject;
-	}
-
 
 	/**
 	 * 职务
@@ -136,174 +136,20 @@ public class SecUser implements Serializable {
 	private String job;
 
 
-	public String getJob() {
-		return job;
-	}
-
-	public void setJob(String job) {
-		this.job = job;
-	}
-
-	public Boolean getUnit() {
-		return isUnit;
-	}
-
-	public void setUnit(Boolean unit) {
-		isUnit = unit;
-	}
-
-	public Boolean getIsLead() {
-		return isLead;
-	}
-
-	public void setIsLead(Boolean lead) {
-		isLead = lead;
-	}
-
-	public String getEmail() {
-		return email;
-	}
-
-	public void setEmail(String email) {
-		this.email = email;
-	}
-
-	public String getStatusUnit() {
-		return statusUnit;
-	}
-
-	public void setStatusUnit(String statusUnit) {
-		this.statusUnit = statusUnit;
-	}
-
-	public String getStatusProj() {
-		return statusProj;
-	}
-
-	public void setStatusProj(String statusProj) {
-		this.statusProj = statusProj;
-	}
-
-	public String getSimCode() {
-		return simCode;
-	}
-
-	public void setSimCode(String simCode) {
-		this.simCode = simCode;
-	}
-
-	public String getId() {
-		return id;
-	}
-	public void setId(String id) {
-		this.id = id;
-	}
-	public String getKind() {
-		return kind;
-	}
-	public void setKind(String kind) {
-		this.kind = kind;
-	}
-	public String getUnitId() {
-		return unitId;
-	}
-	public void setUnitId(String unitId) {
-		this.unitId = unitId;
-	}
-	public String getRemark() {
-		return remark;
-	}
-	public void setRemark(String remark) {
-		this.remark = remark;
-	}
-	public String getCreateUserId() {
-		return createUserId;
-	}
-	public void setCreateUserId(String createUserId) {
-		this.createUserId = createUserId;
-	}
-	public String getCreateUserName() {
-		return createUserName;
-	}
-	public void setCreateUserName(String createUserName) {
-		this.createUserName = createUserName;
-	}
-	public Date getCreateTime() {
-		return createTime;
-	}
-	public void setCreateTime(Date createTime) {
-		this.createTime = createTime;
-	}
-	public Date getUpdateTime() {
-		return updateTime;
-	}
-	public void setUpdateTime(Date updateTime) {
-		this.updateTime = updateTime;
-	}
-	public String getLastUpdateUserId() {
-		return lastUpdateUserId;
-	}
-	public void setLastUpdateUserId(String lastUpdateUserId) {
-		this.lastUpdateUserId = lastUpdateUserId;
-	}
-	public String getLastUpdateUserName() {
-		return lastUpdateUserName;
-	}
-	public void setLastUpdateUserName(String lastUpdateUserName) {
-		this.lastUpdateUserName = lastUpdateUserName;
-	}
-	public boolean isLogicDeleteFlag() {
-		return logicDeleteFlag;
-	}
-	public void setLogicDeleteFlag(boolean logicDeleteFlag) {
-		this.logicDeleteFlag = logicDeleteFlag;
-	}
-	public String getLogin() {
-		return login;
-	}
-	public void setLogin(String login) {
-		this.login = login;
-	}
-	public String getTitle() {
-		return title;
-	}
-	public void setTitle(String title) {
-		this.title = title;
-	}
-	public String getKindUnit() {
-		return kindUnit;
-	}
-	public void setKindUnit(String kindUnit) {
-		this.kindUnit = kindUnit;
-	}
-	public Boolean getIsUnit() {
-		return isUnit;
-	}
-	public void setIsUnit(Boolean isUnit) {
-		this.isUnit = isUnit;
-	}
-
-	public String getDepartId() {
-		return departId;
-	}
+	/**
+	 * 是否被删除
+	 */
+	private Boolean logicDeleteFlag;
 
-	public void setDepartId(String departId) {
-		this.departId = departId;
-	}
 
-	public Boolean getEdit() {
-		return edit;
-	}
+	/**
+	 *用户的所有角色
+	 */
+	@Transient
+	private List<SecRole> allRole;
 
-	public void setEdit(Boolean edit) {
-		this.edit = edit;
-	}
 
-	public String getUnitDWId() {
-		return unitDWId;
-	}
+	@Transient
+	private String  oldPassword;
 
-	public void setUnitDWId(String unitDWId) {
-		this.unitDWId = unitDWId;
-	}
 }

+ 0 - 1
projects-service/src/main/java/com/rtrh/projects/modules/system/service/impl/SecUserServiceImpl.java

@@ -19,7 +19,6 @@ import org.hibernate.criterion.Restrictions;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.util.Collections;
 import java.util.List;
 
 @Service

+ 20 - 3
projects-service/src/main/java/com/rtrh/projects/modules/system/vo/LoginUserVO.java

@@ -1,10 +1,16 @@
 package com.rtrh.projects.modules.system.vo;
 
 import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.rtrh.projects.modules.rolemeun.po.SecRole;
 import lombok.Getter;
 import lombok.Setter;
 
+import javax.persistence.Transient;
+
 @Setter
 @Getter
 @SuppressWarnings("serial")
@@ -24,6 +30,11 @@ public class LoginUserVO implements Serializable {
 	 * 角色id
 	 */
 	private String kind;
+
+	/**
+	 * 角色id
+	 */
+	private String otherKind;
 	/**
 	 * 所属单位id
 	 */
@@ -60,14 +71,20 @@ public class LoginUserVO implements Serializable {
 	 * 是否查看所有项目
 	 */
 	private String statusProj;
-	
+
 	/**
 	 * 是否可编辑
 	 */
 	private Boolean edit;
 
+
+
 	/**
-	 * 工信局数据权限 1 查看所有区域项目
+	 *用户的所有角色
 	 */
-	private String statusSubject;
+	@Transient
+	private List<SecRole> allRole;
+
+	@Transient
+	private String  oldPassword;
 }

+ 3 - 2
projects/src/main/java/com/rtrh/projects/outapi/base/JwtUtils.java

@@ -6,6 +6,7 @@ import java.util.concurrent.TimeoutException;
 
 import javax.servlet.http.HttpServletRequest;
 
+import com.rtrh.projects.modules.system.service.SecUserService;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.BeanUtils;
@@ -56,7 +57,7 @@ public class JwtUtils {
     @Autowired
     private XMemcachedClient memcachedClient;
     @Autowired
-    private SecUserDao secUserDao;
+    private SecUserService secUserService;
 
 
     /**
@@ -147,7 +148,7 @@ public class JwtUtils {
             if (!token.equals(redisToken)) return false;*/
             //用户验证是否存在(避免账户合并后的问题)
         	String userId = getUserIdByToken(token);
-            SecUser user = secUserDao.findById(userId);
+            SecUser user = secUserService.getByFgwId(userId);
             if(user == null) {
             	throw new UserNotLoginException();
             }

+ 0 - 1
projects/src/main/java/com/team/security/TeamShiroUser.java

@@ -23,7 +23,6 @@ public class TeamShiroUser extends LoginUserVO implements Serializable {
 		this.password = commUser.getPassword();
 		this.userLocale = userLocale;
 		vo = new LoginUserVO();
-		setStatusSubject(secUser.getStatusSubject());
 		setEmail(secUser.getEmail());
 		setLoginName(commUser.getLoginname());
 		setId(commUser.getId());