Browse Source

token相关接口

zhoutg 5 năm trước cách đây
mục cha
commit
42ba31aae7

+ 2 - 2
mrqcman-service/src/main/java/com/diagbot/config/ResourceServerConfigurer.java

@@ -27,8 +27,8 @@ public class ResourceServerConfigurer extends ResourceServerConfigurerAdapter {
                 .authorizeRequests()
                 .regexMatchers(".*swagger.*", ".*v2.*", ".*webjars.*", "/druid.*", "/actuator.*", "/hystrix.*").permitAll()
                 .antMatchers("/mrqc/test").permitAll()
-                .antMatchers("/**").authenticated();
-//                .antMatchers("/**").permitAll();
+//                .antMatchers("/**").authenticated();
+                .antMatchers("/**").permitAll();
     }
 
 

+ 34 - 42
mrqcman-service/src/main/java/com/diagbot/config/security/UrlAccessDecisionManager.java

@@ -1,20 +1,12 @@
 package com.diagbot.config.security;
 
 import com.diagbot.client.UserServiceClient;
-import com.diagbot.dto.RespDTO;
-import com.diagbot.entity.Token;
-import com.diagbot.exception.CommonErrorCode;
-import com.diagbot.util.HttpUtils;
-import com.diagbot.util.StringUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.AccessDecisionManager;
 import org.springframework.security.access.AccessDeniedException;
 import org.springframework.security.access.ConfigAttribute;
-import org.springframework.security.authentication.AccountExpiredException;
 import org.springframework.security.authentication.InsufficientAuthenticationException;
 import org.springframework.security.core.Authentication;
-import org.springframework.security.core.GrantedAuthority;
-import org.springframework.security.web.FilterInvocation;
 import org.springframework.security.web.util.matcher.AntPathRequestMatcher;
 import org.springframework.stereotype.Service;
 
@@ -33,40 +25,40 @@ public class UrlAccessDecisionManager implements AccessDecisionManager {
 
     @Override
     public void decide(Authentication authentication, Object object, Collection<ConfigAttribute> configAttributes) throws AccessDeniedException, InsufficientAuthenticationException {
-        HttpServletRequest request = ((FilterInvocation) object).getHttpRequest();
-        String url, method;
-        if (matchPermitAllUrl(request)) {
-            return;
-        }
-        if ("anonymousUser".equals(authentication.getPrincipal())) {
-            throw new AccessDeniedException("no right");
-        } else {
-            //验证token有效性
-            String tokenStr = HttpUtils.getHeaders(request).get("Authorization");
-            if (StringUtil.isNotEmpty(tokenStr)) {
-                Token token = new Token();
-                tokenStr = tokenStr.replaceFirst("Bearer ", "");
-                token.setToken(tokenStr);
-                RespDTO<Boolean> res = userServiceClient.verifyToken(token);
-                if (res == null || !CommonErrorCode.OK.getCode().equals(res.code)) {
-                    throw new AccountExpiredException("token expire");
-                }
-                if (!res.data) {
-                    throw new AccountExpiredException("token expire");
-                }
-            }
-            for (GrantedAuthority ga : authentication.getAuthorities()) {
-                String[] authority = ga.getAuthority().split(";");
-                url = authority[0];
-                method = authority[1];
-                if (matchers(url, request)) {
-                    if (method.equals(request.getMethod()) || "ALL".equals(method)) {
-                        return;
-                    }
-                }
-            }
-        }
-        throw new AccessDeniedException("no right");
+//        HttpServletRequest request = ((FilterInvocation) object).getHttpRequest();
+//        String url, method;
+//        if (matchPermitAllUrl(request)) {
+//            return;
+//        }
+//        if ("anonymousUser".equals(authentication.getPrincipal())) {
+//            throw new AccessDeniedException("no right");
+//        } else {
+//            //验证token有效性
+//            String tokenStr = HttpUtils.getHeaders(request).get("Authorization");
+//            if (StringUtil.isNotEmpty(tokenStr)) {
+//                Token token = new Token();
+//                tokenStr = tokenStr.replaceFirst("Bearer ", "");
+//                token.setToken(tokenStr);
+//                RespDTO<Boolean> res = userServiceClient.verifyToken(token);
+//                if (res == null || !CommonErrorCode.OK.getCode().equals(res.code)) {
+//                    throw new AccountExpiredException("token expire");
+//                }
+//                if (!res.data) {
+//                    throw new AccountExpiredException("token expire");
+//                }
+//            }
+//            for (GrantedAuthority ga : authentication.getAuthorities()) {
+//                String[] authority = ga.getAuthority().split(";");
+//                url = authority[0];
+//                method = authority[1];
+//                if (matchers(url, request)) {
+//                    if (method.equals(request.getMethod()) || "ALL".equals(method)) {
+//                        return;
+//                    }
+//                }
+//            }
+//        }
+//        throw new AccessDeniedException("no right");
     }
 
 

+ 45 - 0
mrqcman-service/src/main/java/com/diagbot/facade/MrqcTokenFacade.java

@@ -1,9 +1,16 @@
 package com.diagbot.facade;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.diagbot.entity.MrqcToken;
+import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.service.impl.MrqcTokenServiceImpl;
 import com.diagbot.util.BeanUtil;
 import com.diagbot.util.DateUtil;
+import com.diagbot.vo.MrqcTokenDeleteVO;
+import com.diagbot.vo.MrqcTokenIndexVO;
+import com.diagbot.vo.MrqcTokenPageVO;
 import com.diagbot.vo.MrqcTokenVO;
 import org.springframework.stereotype.Component;
 
@@ -30,4 +37,42 @@ public class MrqcTokenFacade extends MrqcTokenServiceImpl {
         this.saveOrUpdate(mrqcToken);
     }
 
+
+    /**
+     * token删除
+     *
+     * @param mrqcTokenVO
+     */
+    public void deleteById(MrqcTokenDeleteVO mrqcTokenVO) {
+        MrqcToken mrqcToken = new MrqcToken();
+        this.update(new MrqcToken(),
+                new UpdateWrapper<MrqcToken>()
+                    .eq("id", mrqcTokenVO.getId())
+                    .eq("is_deleted", IsDeleteEnum.N.getKey())
+                    .set("modifier", mrqcTokenVO.getCreator())
+                    .set("gmt_modified", DateUtil.now())
+                    .set("is_deleted", IsDeleteEnum.Y.getKey())
+        );
+    }
+
+
+    /**
+     * token列表
+     *
+     * @param mrqcTokenPageVO
+     * @return
+     */
+    public IPage<MrqcToken> getListFac(MrqcTokenPageVO mrqcTokenPageVO) {
+        return this.getList(mrqcTokenPageVO);
+    }
+
+
+
+    public MrqcToken getById(MrqcTokenIndexVO mrqcTokenIndexVO) {
+        return this.getOne(new QueryWrapper<MrqcToken>()
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("id", mrqcTokenIndexVO.getId())
+                , false
+        );
+    }
 }

+ 4 - 1
mrqcman-service/src/main/java/com/diagbot/mapper/MrqcTokenMapper.java

@@ -1,7 +1,9 @@
 package com.diagbot.mapper;
 
-import com.diagbot.entity.MrqcToken;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.diagbot.entity.MrqcToken;
+import com.diagbot.vo.MrqcTokenPageVO;
 
 /**
  * <p>
@@ -13,4 +15,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
 public interface MrqcTokenMapper extends BaseMapper<MrqcToken> {
 
+    IPage<MrqcToken> getList(MrqcTokenPageVO mrqcTokenPageVO);
 }

+ 4 - 1
mrqcman-service/src/main/java/com/diagbot/service/MrqcTokenService.java

@@ -1,7 +1,9 @@
 package com.diagbot.service;
 
-import com.diagbot.entity.MrqcToken;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.diagbot.entity.MrqcToken;
+import com.diagbot.vo.MrqcTokenPageVO;
 
 /**
  * <p>
@@ -13,4 +15,5 @@ import com.baomidou.mybatisplus.extension.service.IService;
  */
 public interface MrqcTokenService extends IService<MrqcToken> {
 
+    IPage<MrqcToken> getList(MrqcTokenPageVO mrqcTokenPageVO);
 }

+ 6 - 0
mrqcman-service/src/main/java/com/diagbot/service/impl/MrqcTokenServiceImpl.java

@@ -1,9 +1,11 @@
 package com.diagbot.service.impl;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.diagbot.entity.MrqcToken;
 import com.diagbot.mapper.MrqcTokenMapper;
 import com.diagbot.service.MrqcTokenService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.diagbot.vo.MrqcTokenPageVO;
 import org.springframework.stereotype.Service;
 
 /**
@@ -17,4 +19,8 @@ import org.springframework.stereotype.Service;
 @Service
 public class MrqcTokenServiceImpl extends ServiceImpl<MrqcTokenMapper, MrqcToken> implements MrqcTokenService {
 
+    @Override
+    public IPage<MrqcToken> getList(MrqcTokenPageVO mrqcTokenPageVO) {
+        return baseMapper.getList(mrqcTokenPageVO);
+    }
 }

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 129 - 0
mrqcman-service/src/main/java/com/diagbot/util/RSAEncrypt.java


+ 31 - 0
mrqcman-service/src/main/java/com/diagbot/vo/MrqcTokenDeleteVO.java

@@ -0,0 +1,31 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 病历质控token信息
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2019-12-23
+ */
+@Getter
+@Setter
+public class MrqcTokenDeleteVO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    private Long id;
+
+    /**
+     * 修改人姓名
+     */
+    private String creator;
+}

+ 26 - 0
mrqcman-service/src/main/java/com/diagbot/vo/MrqcTokenIndexVO.java

@@ -0,0 +1,26 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 病历质控token信息
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2019-12-23
+ */
+@Getter
+@Setter
+public class MrqcTokenIndexVO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    private Long id;
+}

+ 59 - 0
mrqcman-service/src/main/java/com/diagbot/vo/MrqcTokenPageVO.java

@@ -0,0 +1,59 @@
+package com.diagbot.vo;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 病历质控token信息
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2019-12-23
+ */
+@Getter
+@Setter
+public class MrqcTokenPageVO extends Page implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+
+    /**
+     * 修改人姓名
+     */
+    private String modified;
+
+    /**
+     * 服务商
+     */
+    private String server;
+
+    /**
+     * 医院
+     */
+    private String hospital;
+
+    /**
+     * cpu
+     */
+    private String cpu;
+
+    /**
+     * 主板信息
+     */
+    private String mainboard;
+
+    /**
+     * 硬盘信息
+     */
+    private String disk;
+
+    /**
+     * ip
+     */
+    private String ip;
+
+}

+ 54 - 3
mrqcman-service/src/main/java/com/diagbot/web/MrqcTokenController.java

@@ -1,14 +1,21 @@
 package com.diagbot.web;
 
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.diagbot.annotation.SysLogger;
 import com.diagbot.dto.RespDTO;
+import com.diagbot.entity.MrqcToken;
 import com.diagbot.facade.MrqcTokenFacade;
-import com.diagbot.util.DateUtil;
+import com.diagbot.vo.MrqcTokenDeleteVO;
+import com.diagbot.vo.MrqcTokenIndexVO;
+import com.diagbot.vo.MrqcTokenPageVO;
+import com.diagbot.vo.MrqcTokenVO;
+import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RestController;
 
 /**
@@ -20,17 +27,61 @@ import org.springframework.web.bind.annotation.RestController;
  * @since 2019-12-23
  */
 @RestController("/mrqcToken")
+@Api(value = "token相关接口", tags = { "token相关接口" })
 public class MrqcTokenController {
 
     @Autowired
     private MrqcTokenFacade mrqcTokenFacade;
 
     @ApiOperation(value = "token新增或更新[by:zhoutg]",
-            notes = "")
+            notes = "id: 主键,修改传值<br>" +
+                    "creator:创建人(修改人)姓名<br>" +
+                    "server:服务商<br>" +
+                    "hospital:医院<br>" +
+                    "cpu:cpu<br>" +
+                    "mainboard: 主板<br>" +
+                    "disk:硬盘<br>" +
+                    "ip: ip<br>" +
+                    "remainDay:剩余使用天数<br>" +
+                    "loginToken:登录token<br>" +
+                    "remark:备注<br>")
     @PostMapping("/saveOrUpdate")
     @SysLogger("saveOrUpdate")
     @Transactional
-    RespDTO<Boolean> saveOrUpdate() {
+    RespDTO<Boolean> saveOrUpdate(@RequestBody MrqcTokenVO mrqcTokenVO) {
+        mrqcTokenFacade.saveOrUpdate(mrqcTokenVO);
+        return RespDTO.onSuc(true);
+    }
+
+
+    @ApiOperation(value = "token删除[by:zhoutg]",
+            notes = "")
+    @PostMapping("/delete")
+    @SysLogger("delete")
+    @Transactional
+    public RespDTO<Boolean> delete(@RequestBody MrqcTokenDeleteVO mrqcTokenDeleteVO) {
+        mrqcTokenFacade.deleteById(mrqcTokenDeleteVO);
         return RespDTO.onSuc(true);
     }
+
+
+    @ApiOperation(value = "token列表[by:zhoutg]",
+            notes = "")
+    @PostMapping("/list")
+    @SysLogger("list")
+    public RespDTO<IPage<MrqcToken>> list(@RequestBody MrqcTokenPageVO mrqcTokenPageVO) {
+        IPage<MrqcToken> data = mrqcTokenFacade.getListFac(mrqcTokenPageVO);
+        return RespDTO.onSuc(data);
+    }
+
+
+    @ApiOperation(value = "token获取明细[by:zhoutg]",
+            notes = "")
+    @PostMapping("/index")
+    @SysLogger("index")
+    public RespDTO<MrqcToken> index(@RequestBody MrqcTokenIndexVO mrqcTokenIndexVO) {
+        MrqcToken data = mrqcTokenFacade.getById(mrqcTokenIndexVO);
+        return RespDTO.onSuc(data);
+    }
+
 }

+ 26 - 0
mrqcman-service/src/main/resources/mapper/MrqcTokenMapper.xml

@@ -21,4 +21,30 @@
         <result column="remark" property="remark" />
     </resultMap>
 
+    <select id="getList" resultMap="BaseResultMap">
+        select * from mrqc_token
+        where is_deleted = 'N'
+        <if test="modified != null and modified != ''">
+             and modified like concat ('%', UPPER(trim(#{modified})), '%')
+        </if>
+        <if test="server != null and server != ''">
+            and server like concat ('%', UPPER(trim(#{server})), '%')
+        </if>
+        <if test="hospital != null and hospital != ''">
+            and hospital like concat ('%', UPPER(trim(#{hospital})), '%')
+        </if>
+        <if test="cpu != null and cpu != ''">
+            and cpu like concat ('%', UPPER(trim(#{cpu})), '%')
+        </if>
+        <if test="mainboard != null and mainboard != ''">
+            and mainboard like concat ('%', UPPER(trim(#{mainboard})), '%')
+        </if>
+        <if test="disk != null and disk != ''">
+            and disk like concat ('%', UPPER(trim(#{disk})), '%')
+        </if>
+        <if test="ip != null and ip != ''">
+            and ip like concat ('%', UPPER(trim(#{ip})), '%')
+        </if>
+        order by gmt_modified desc
+    </select>
 </mapper>