瀏覽代碼

登录服务和数据权限

wangchangsheng 2 年之前
父節點
當前提交
ce6b7d250e

+ 2 - 0
ims-service/ims-eval/src/main/java/com/ims/eval/EvalApplication.java

@@ -3,6 +3,7 @@ package com.ims.eval;
 
 import org.springblade.core.launch.BladeApplication;
 import org.springframework.cloud.client.SpringCloudApplication;
+import org.springframework.cloud.openfeign.EnableFeignClients;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.ComponentScans;
 
@@ -15,6 +16,7 @@ import org.springframework.context.annotation.ComponentScans;
 @ComponentScans({
 	@ComponentScan("com.ims.ext.act")
 })
+@EnableFeignClients
 public class EvalApplication {
 
 	public static void main(String[] args) {

+ 49 - 14
ims-service/ims-eval/src/main/java/com/ims/eval/controller/UserController.java

@@ -7,6 +7,7 @@ import com.ims.eval.entity.Myuser;
 import com.ims.eval.feign.RemoteServiceBuilder;
 import com.ims.eval.service.IUserService;
 import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
@@ -21,6 +22,7 @@ import java.util.concurrent.atomic.AtomicBoolean;
  * @author wang
  * @since 2023-03-03
  */
+@Slf4j
 @RestController
 @RequestMapping("//user")
 public class UserController {
@@ -32,41 +34,74 @@ public class UserController {
 	private RemoteServiceBuilder remoteServiceBuilder;
 
 	/**
-	 * 查询所有数据
-
+	 * 更具code获取用户信息
 	 * @return
 	 */
-	//@ImsPreAuth("eval:organizationEvaluationRule:view")
 	@GetMapping(value = "getSysUser")
-	public R getSysUser(
+	public JSONObject getSysUser(
 		@RequestParam(value = "code", required = false) String code) {
 		JSONObject  json = null;
 		try {
 			json = remoteServiceBuilder.getGatewayUrl().getSysUser(code);
 		} catch (Exception e) {
-			return R.ok().data(null);
+			e.printStackTrace();
 		}
-
-		return R.ok().data(json);
+		return json;
 	}
 
 
 	/**
-	 * 查询所有数据
-
+	 * 根据token获取code
 	 * @return
 	 */
-	//@ImsPreAuth("eval:organizationEvaluationRule:view")
 	@GetMapping(value = "getCodeByToken")
-	public R getCodeByToken(
+	public JSONObject getCodeByToken(
 		@RequestParam(value = "token", required = false) String token) {
-		JSONObject json = remoteServiceBuilder.getGatewayUrl().getCodeByToken(token);
-		return R.ok().data(json);
+		JSONObject json = null;
+		try {
+			json = remoteServiceBuilder.getGatewayUrl().getCodeByToken(token);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+		return json;
 	}
 
 
+	/**
+	 * 登录接口
+	 * @param username
+	 * @param password
+	 * @return
+	 */
+	@PostMapping(value = "bladeAuth")
+	public R bladeAuth(
+		@RequestParam(value = "username", required = false) String username,
+		@RequestParam(value = "password", required = false) String password) {
+		JSONObject json = null;
+		try {
+			json = userService.getbladeAuth("000000",username,password,"password","all","account");
+		} catch (Exception e) {
+			log.error("错误",e);
+			return R.error().customError("登录失败");
+		}
+		return R.ok().data(json);
+	}
 
-
+	/**
+	 * 退出登录
+	 * @param token
+	 * @return
+	 */
+	@PostMapping(value = "removeByToken")
+	public JSONObject removeByToken(@RequestParam(value = "token", required = true) String token) {
+		JSONObject json = null;
+		try {
+			json = remoteServiceBuilder.getGatewayUrl().removeByToken(token);
+		} catch (Exception e) {
+			log.error("错误",e);
+		}
+		return json;
+	}
 
 	//@ImsPreAuth("eval:dataDictionary:edit")
 	@PostMapping(value = "/save")

+ 16 - 0
ims-service/ims-eval/src/main/java/com/ims/eval/dao/DataAuthTypeMapper.java

@@ -0,0 +1,16 @@
+package com.ims.eval.dao;
+
+import com.ims.eval.entity.DataAuthType;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 数据权限类型 Mapper 接口
+ * </p>
+ *
+ * @author wang
+ * @since 2023-03-21
+ */
+public interface DataAuthTypeMapper extends BaseMapper<DataAuthType> {
+
+}

+ 19 - 0
ims-service/ims-eval/src/main/java/com/ims/eval/dao/UserDataAuthMapper.java

@@ -0,0 +1,19 @@
+package com.ims.eval.dao;
+
+import com.ims.eval.entity.UserDataAuth;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * <p>
+ * 用户数据权限 Mapper 接口
+ * </p>
+ *
+ * @author wang
+ * @since 2023-03-21
+ */
+public interface UserDataAuthMapper extends BaseMapper<UserDataAuth> {
+
+	UserDataAuth selectLoginName( @Param("loginName") String loginName);
+
+}

+ 64 - 0
ims-service/ims-eval/src/main/java/com/ims/eval/entity/DataAuthType.java

@@ -0,0 +1,64 @@
+package com.ims.eval.entity;
+
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import java.util.Date;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ * 数据权限类型
+ * </p>
+ *
+ * @author wang
+ * @since 2023-03-21
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class DataAuthType extends Model {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    private String id;
+
+    /**
+     * 数据权限
+     */
+    private String dataAuthCode;
+
+    /**
+     * 数据权限名称
+     */
+    private String dataAuthName;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+    /**
+     * 修改时间
+     */
+    private Date updateTime;
+
+    /**
+     * 创建者
+     */
+    private String createBy;
+
+    /**
+     * 更新者
+     */
+    private String updateBy;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+
+}

+ 71 - 0
ims-service/ims-eval/src/main/java/com/ims/eval/entity/UserDataAuth.java

@@ -0,0 +1,71 @@
+package com.ims.eval.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import java.util.Date;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ * 用户数据权限
+ * </p>
+ *
+ * @author wang
+ * @since 2023-03-21
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class UserDataAuth extends Model {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    private String id;
+
+    /**
+     * 数据权限id
+     */
+    private String dataAuthTypeId;
+
+	/**
+	 * 数据权限code
+	 */
+	@TableField(exist = false)
+	private String dataAuthCode;
+
+    /**
+     * 用户登录名
+     */
+    private String loginName;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+    /**
+     * 修改时间
+     */
+    private Date updateTime;
+
+    /**
+     * 创建者
+     */
+    private String createBy;
+
+    /**
+     * 更新者
+     */
+    private String updateBy;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+
+}

+ 13 - 0
ims-service/ims-eval/src/main/java/com/ims/eval/feign/FooConfiguration.java

@@ -0,0 +1,13 @@
+package com.ims.eval.feign;
+
+import feign.Contract;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+@Configuration
+public class FooConfiguration {
+	@Bean
+	public Contract feignContract() {
+		return new feign.Contract.Default();
+	}
+}

+ 31 - 1
ims-service/ims-eval/src/main/java/com/ims/eval/feign/IGatewayUrlService.java

@@ -4,29 +4,59 @@ import com.alibaba.fastjson.JSONObject;
 import feign.Headers;
 import feign.Param;
 import feign.RequestLine;
+import org.springframework.cloud.openfeign.FeignClient;
+
 
 /**
  * 访问远程接口服务
  */
+@FeignClient(name  = "service-name", configuration = FooConfiguration .class)
 public interface IGatewayUrlService {
 
 
 	/**
 	 * 通过登录code获取用户
+	 *
 	 * @param code
 	 * @return
 	 */
 	@Headers({"Content-Type: application/json", "Accept: application/json"})
 	@RequestLine("POST /ims-idms/sysuser/getSysUser?code={code}")
-	JSONObject  getSysUser(@Param(value = "code") String code);
+	JSONObject getSysUser(@Param(value = "code") String code);
 
 
 	/**
 	 * 通过token获取业务code
+	 *
 	 * @param token
 	 * @return
 	 */
 	@Headers({"Content-Type: application/json", "Accept: application/json"})
 	@RequestLine("POST /ims-idms/usersession/getCodeByToken?token={token}")
 	JSONObject getCodeByToken(@Param(value = "token") String token);
+
+
+//	@Headers({"Authorization: {token}", "Tenant-Id: 000000"})
+//	@RequestLine("POST /ims-idms/sysuser/getSysUser?tenantId={tenantId}&username={username}&password={password}&grant_type={grant_type}&scope={scope}&type={type}")
+//	JSONObject  getbladeAuth(@Param(value = "tenantId") String tenantId,
+//							 @Param(value = "username") String username,
+//							 @Param(value = "password") String password,
+//							 @Param(value = "grant_type") String grant_type,
+//							 @Param(value = "scope") String scope,
+//							 @Param(value = "type") String type,
+//							 @Param(value = "token") String token);
+
+
+
+	/**
+	 * 退出登录
+	 *
+	 * @param token
+	 * @return
+	 */
+	@Headers({"Content-Type: application/json", "Accept: application/json"})
+	@RequestLine("POST /ims-idms/usersession/removeByToken?token={token}")
+	JSONObject removeByToken(@Param(value = "token") String token);
+
+
 }

+ 16 - 0
ims-service/ims-eval/src/main/java/com/ims/eval/service/IDataAuthTypeService.java

@@ -0,0 +1,16 @@
+package com.ims.eval.service;
+
+import com.ims.eval.entity.DataAuthType;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 数据权限类型 服务类
+ * </p>
+ *
+ * @author wang
+ * @since 2023-03-21
+ */
+public interface IDataAuthTypeService extends IService<DataAuthType> {
+
+}

+ 18 - 0
ims-service/ims-eval/src/main/java/com/ims/eval/service/IUserDataAuthService.java

@@ -0,0 +1,18 @@
+package com.ims.eval.service;
+
+import com.ims.eval.entity.UserDataAuth;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 用户数据权限 服务类
+ * </p>
+ *
+ * @author wang
+ * @since 2023-03-21
+ */
+public interface IUserDataAuthService extends IService<UserDataAuth> {
+
+	UserDataAuth getLoginName(String loginName);
+
+}

+ 18 - 2
ims-service/ims-eval/src/main/java/com/ims/eval/service/IUserService.java

@@ -8,7 +8,7 @@ import java.util.List;
 
 /**
  * <p>
- *  服务类
+ * 服务类
  * </p>
  *
  * @author wang
@@ -16,11 +16,12 @@ import java.util.List;
  */
 public interface IUserService extends IService<Myuser> {
 
-	List<Myuser> listAll(String id, String orgId,String unitId);
+	List<Myuser> listAll(String id, String orgId, String unitId);
 
 
 	/**
 	 * 通过用户名密码查询一个用户
+	 *
 	 * @param username
 	 * @return
 	 */
@@ -29,6 +30,7 @@ public interface IUserService extends IService<Myuser> {
 
 	/**
 	 * 更新用户
+	 *
 	 * @param user
 	 * @return
 	 */
@@ -36,15 +38,29 @@ public interface IUserService extends IService<Myuser> {
 
 	/**
 	 * 通过code获取user
+	 *
 	 * @param code
 	 * @return
 	 */
 	Object getSysUser(String code);
+
 	/**
 	 * 通过token获取code
+	 *
 	 * @param token
 	 * @return
 	 */
 	JSONObject getCodeByToken(String token);
 
+
+	/**
+	 * 登录
+	 *
+	 * @param username
+	 * @param password
+	 * @return
+	 */
+	JSONObject getbladeAuth(String tenantId, String username, String password, String grantType, String scope, String type);
+
+
 }

+ 20 - 0
ims-service/ims-eval/src/main/java/com/ims/eval/service/impl/DataAuthTypeServiceImpl.java

@@ -0,0 +1,20 @@
+package com.ims.eval.service.impl;
+
+import com.ims.eval.entity.DataAuthType;
+import com.ims.eval.dao.DataAuthTypeMapper;
+import com.ims.eval.service.IDataAuthTypeService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 数据权限类型 服务实现类
+ * </p>
+ *
+ * @author wang
+ * @since 2023-03-21
+ */
+@Service
+public class DataAuthTypeServiceImpl extends ServiceImpl<DataAuthTypeMapper, DataAuthType> implements IDataAuthTypeService {
+
+}

+ 33 - 0
ims-service/ims-eval/src/main/java/com/ims/eval/service/impl/UserDataAuthServiceImpl.java

@@ -0,0 +1,33 @@
+package com.ims.eval.service.impl;
+
+import com.ims.eval.entity.UserDataAuth;
+import com.ims.eval.dao.UserDataAuthMapper;
+import com.ims.eval.service.IUserDataAuthService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ims.eval.service.IUserService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 用户数据权限 服务实现类
+ * </p>
+ *
+ * @author wang
+ * @since 2023-03-21
+ */
+@Service
+public class UserDataAuthServiceImpl extends ServiceImpl<UserDataAuthMapper, UserDataAuth> implements IUserDataAuthService {
+
+
+	@Autowired
+	private IUserService userService;
+
+	@Override
+	public UserDataAuth getLoginName(String loginName) {
+		UserDataAuth dataAuth = baseMapper.selectLoginName(loginName);
+		return dataAuth;
+	}
+
+
+}

+ 35 - 3
ims-service/ims-eval/src/main/java/com/ims/eval/service/impl/UserServiceImpl.java

@@ -1,15 +1,23 @@
 package com.ims.eval.service.impl;
 
+import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.ims.common.utils.StringUtils;
+import com.ims.eval.config.ImaConfig;
 import com.ims.eval.entity.Myuser;
 import com.ims.eval.dao.UserMapper;
 import com.ims.eval.feign.RemoteServiceBuilder;
 import com.ims.eval.service.IUserService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Service;
+import org.springframework.util.LinkedMultiValueMap;
+import org.springframework.util.MultiValueMap;
+import org.springframework.web.client.RestTemplate;
 
 import java.util.List;
 
@@ -22,13 +30,21 @@ import java.util.List;
  * @since 2023-03-03
  */
 @Service
+@Slf4j
 public class UserServiceImpl extends ServiceImpl<UserMapper, Myuser> implements IUserService {
 
+
 	@Autowired
 	private RemoteServiceBuilder remoteServiceBuilder;
 
+	@Autowired
+	private RestTemplate restTemplate;
+
+	@Autowired
+	private ImaConfig imaConfig;
+
 	@Override
-	public List<Myuser> listAll(String id, String orgId,String unitId) {
+	public List<Myuser> listAll(String id, String orgId, String unitId) {
 
 		QueryWrapper<Myuser> qw = new QueryWrapper<>();
 
@@ -52,9 +68,9 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, Myuser> implements
 	@Override
 	public Myuser getUser(String username) {
 		QueryWrapper<Myuser> qw = new QueryWrapper<>();
-		qw.lambda().eq(Myuser::getLoginName,username);
+		qw.lambda().eq(Myuser::getLoginName, username);
 		List<Myuser> list = baseMapper.selectList(qw);
-		if(list.size()<=0){
+		if (list.size() <= 0) {
 			return null;
 		}
 		return list.get(0);
@@ -76,4 +92,20 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, Myuser> implements
 		JSONObject json = remoteServiceBuilder.getGatewayUrl().getCodeByToken(token);
 		return json;
 	}
+
+	@Override
+	public JSONObject getbladeAuth(String tenantId, String username, String password, String grantType, String scope, String type) {
+		MultiValueMap<String, String> headers = new LinkedMultiValueMap<>();
+		headers.add("Authorization", "Basic c2FiZXI6NWMwMmMzZDViNzYxNTNkZGM5ZTczYzc5YzMzNzYzODAxNmE5ZDM2Ng==");
+		headers.add("Tenant-Id", "000000");
+		HttpEntity<LinkedMultiValueMap<String, Object>> param = new HttpEntity<>(null, headers);
+
+		ResponseEntity<String> responseEntity2 = restTemplate.postForEntity(imaConfig.getGatewayUrl() + "blade-auth/oauth/token?tenantId={1}&username={2}&password={3}&grant_type={4}&scope={5}&type={6}",
+			param, String.class, tenantId, username, password, grantType, scope, type);
+		log.info("\n code:{}\n header:{}\n body:{}\n", responseEntity2.getStatusCodeValue(), responseEntity2.getHeaders(), responseEntity2.getBody());
+		if(200== responseEntity2.getStatusCodeValue()){
+			return JSON.parseObject(responseEntity2.getBody());
+		}
+		return null;
+	}
 }

+ 3 - 0
ims-service/ims-eval/src/main/resources/application.yml

@@ -18,3 +18,6 @@ spring:
 
 iam:
   gateway-url: http://10.65.78.23:18600/
+
+
+

+ 39 - 0
ims-service/ims-eval/src/main/resources/mappers/UserDataAuthMapper.xml

@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ims.eval.dao.UserDataAuthMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.ims.eval.entity.UserDataAuth">
+        <id column="id" property="id" />
+        <result column="data_auth_type_id" property="dataAuthTypeId" />
+        <result column="login_name" property="loginName" />
+        <result column="create_time" property="createTime" />
+        <result column="update_time" property="updateTime" />
+        <result column="create_by" property="createBy" />
+        <result column="update_by" property="updateBy" />
+        <result column="remark" property="remark" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, data_auth_type_id, login_name, create_time, update_time, create_by, update_by, remark
+    </sql>
+    <select id="selectLoginName" resultType="com.ims.eval.entity.UserDataAuth">
+
+        select
+            u.*,
+            d.data_auth_code
+            from
+            user_data_auth u
+            left join data_auth_type d on u.data_auth_type_id = d.id
+        <where>
+            <if test="loginName !=null and loginName !=''">
+                and u.login_name = #{loginName}
+            </if>
+
+
+        </where>
+    </select>
+
+
+</mapper>