瀏覽代碼

添加了模拟token ,服务端改变请求头

wuweihao 5 年之前
父節點
當前提交
c0e8b4845f

+ 6 - 0
xiaoan-common/src/main/java/com/xiaoan/common/config/WebMvcConfig.java

@@ -1,5 +1,6 @@
 package com.xiaoan.common.config;
 
+import com.xiaoan.common.interceptor.AuthHeaderSettingFilter;
 import com.xiaoan.common.interceptor.CommonInterceptor;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Configuration;
@@ -14,6 +15,9 @@ public class WebMvcConfig implements WebMvcConfigurer {
 
     @Autowired
     private CommonInterceptor commonInterceptor;
+
+
+
     /**
      * 配置全局跨域
      */
@@ -33,4 +37,6 @@ public class WebMvcConfig implements WebMvcConfigurer {
     public void addInterceptors(InterceptorRegistry registry) {
         registry.addInterceptor(commonInterceptor).addPathPatterns("/**");
     }
+
+
 }

+ 58 - 0
xiaoan-common/src/main/java/com/xiaoan/common/interceptor/AuthHeaderSettingFilter.java

@@ -0,0 +1,58 @@
+package com.xiaoan.common.interceptor;
+
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+import javax.servlet.*;
+import javax.servlet.http.HttpServletRequest;
+import java.io.IOException;
+
+/**
+ * Created by owen on 2020/3/6 0006 17:56
+ *
+ * 这个类是测试模拟token使用的,可以正式环境可以不用的
+ *
+ * 主要是为了设置请头使用的
+ */
+@Component
+public class AuthHeaderSettingFilter implements Filter {
+
+    @Value("${spring.profiles.active}")
+    private String active;
+
+    @Override
+    public void init(FilterConfig filterConfig) throws ServletException {
+
+    }
+
+    @Override
+    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
+
+        System.out.println("active :" + active);
+
+        HttpServletRequest req = (HttpServletRequest) request;
+        HeaderMapRequestWrapper requestWrapper = new HeaderMapRequestWrapper(req);
+        String token = req.getHeader("Authorization");
+
+        if ("dev".equals(active)){
+            if (token == null) {
+                // admin 用户测试用
+                token = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJwYXlsb2FkIjoie1wicm9sZVwiOltcImFkbWluXCJdLFwiaWRcIjo5LFwidXNlck5hbWVcIjpcIjE1OTk5OTk5OTk5XCJ9IiwidXNlck5hbWUiOiIxNTk5OTk5OTk5OSIsImV4cCI6MTU4NDIzMzkyNX0.Uk71Pyt1WC7gHpxof7ktbgk---r85fyrKB_s2tUq0QI";
+                //如果请求中带有这个参数,则进行过滤加一个header头
+                requestWrapper.addHeader("Authorization", token);
+                chain.doFilter(requestWrapper, response);
+
+            }
+        } else {
+            chain.doFilter(requestWrapper, response);
+        }
+
+
+
+    }
+
+    @Override
+    public void destroy() {
+
+    }
+}

+ 6 - 0
xiaoan-common/src/main/java/com/xiaoan/common/interceptor/CommonInterceptor.java

@@ -1,12 +1,16 @@
 package com.xiaoan.common.interceptor;
 
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Component;
+import org.springframework.web.context.request.RequestAttributes;
+import org.springframework.web.context.request.RequestContextHolder;
 import org.springframework.web.servlet.HandlerInterceptor;
 import org.springframework.web.servlet.ModelAndView;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+import javax.servlet.http.PushBuilder;
 
 @Slf4j
 @Component
@@ -42,4 +46,6 @@ public class CommonInterceptor implements HandlerInterceptor {
     }
 
 
+
+
 }

+ 64 - 0
xiaoan-common/src/main/java/com/xiaoan/common/interceptor/HeaderMapRequestWrapper.java

@@ -0,0 +1,64 @@
+package com.xiaoan.common.interceptor;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletRequestWrapper;
+import java.util.*;
+
+/**
+ * Created by owen on 2020/3/6 0006 18:13
+ */
+public class HeaderMapRequestWrapper extends HttpServletRequestWrapper {
+    /**
+     * Constructs a request object wrapping the given request.
+     *
+     * @param request The request to wrap
+     * @throws IllegalArgumentException if the request is null
+     */
+    public HeaderMapRequestWrapper(HttpServletRequest request) {
+        super(request);
+    }
+
+    private Map<String, String> headerMap = new HashMap<String, String>();
+
+    /**
+     * add a header with given name and value
+     *
+     * @param name
+     * @param value
+     */
+    public void addHeader(String name, String value) {
+        headerMap.put(name, value);
+    }
+
+    @Override
+    public String getHeader(String name) {
+        String headerValue = super.getHeader(name);
+        if (headerMap.containsKey(name)) {
+            headerValue = headerMap.get(name);
+        }
+        return headerValue;
+    }
+
+    /**
+     * get the Header names
+     */
+    @Override
+    public Enumeration<String> getHeaderNames() {
+        List<String> names = Collections.list(super.getHeaderNames());
+        for (String name : headerMap.keySet()) {
+            names.add(name);
+        }
+        return Collections.enumeration(names);
+    }
+
+    @Override
+    public Enumeration<String> getHeaders(String name) {
+        List<String> values = Collections.list(super.getHeaders(name));
+        if (headerMap.containsKey(name)) {
+            values.add(headerMap.get(name));
+        }
+        return Collections.enumeration(values);
+    }
+
+
+}

+ 1 - 1
xiaoan-dao/src/main/java/com/xiaoan/dao/backend/LogRepository.java

@@ -44,7 +44,7 @@ public interface LogRepository extends IBaseRepository<LogEntity, Long> {
      * 注意日期,需要传字符串类型
      */
     @SelectProvider(type = LogProvider.class, method = "findAllBySearchKey")
-    List<LogResponse> searchProvider(PageDto param);
+    List<LogResponse> search(PageDto param);
 
 //    @Select(value = "select l.type, l.description, l.create_time, u.user_name, u.real_name from tb_log l left join tb_user u on l.user_id = u.id " +
 //            "where ((u.user_name like #{itemName} or #{itemName} is null) " +

+ 3 - 3
xiaoan-service/src/main/java/com/xiaoan/service/backend/impl/LogServiceImpl.java

@@ -38,9 +38,9 @@ public class LogServiceImpl extends BaseServiceImpl<LogEntity, Long> implements
     @Override
     public List<LogResponse> search(PageDto param) {
         PageHelper.startPage(param.getPageNum(), param.getPageSize());
-        String searchKey = param.getSearchKey();
-        searchKey = "%" + searchKey + "%";
-        return entityMapper.search(searchKey, param.getStartTime(), param.getEndTime());
+//        String searchKey = param.getSearchKey();
+//        searchKey = "%" + searchKey + "%";
+        return entityMapper.search(param);
     }
 
 //    @Override

+ 4 - 1
xiaoan-web/src/main/java/com/xiaoan/web/aop/WebLogAspect.java

@@ -42,7 +42,10 @@ public class WebLogAspect {
 
         // 获取token
         String token = request.getHeader("Authorization");
-        Long userId = JWTUtil.getUserId(token);
+        Long userId = null;
+        if (token != null) {
+             userId = JWTUtil.getUserId(token);
+        }
 
 
         // 记录下请求内容

+ 14 - 7
xiaoan-web/src/main/java/com/xiaoan/web/backend/DepartmentController.java

@@ -2,6 +2,7 @@ package com.xiaoan.web.backend;
 
 import com.github.pagehelper.PageInfo;
 import com.xiaoan.common.constant.MsgCode;
+import com.xiaoan.common.model.PageDto;
 import com.xiaoan.common.util.ResultJson;
 import com.xiaoan.domain.backend.DepartmentEntity;
 import com.xiaoan.domain.dto.request.DepartmentRequest;
@@ -22,28 +23,34 @@ import tk.mybatis.mapper.entity.Condition;
 
 /**
  * Created by Hb_zzZ on 2020/2/27.
+ *
+ * 需要admin权限
  */
 @Api(tags = "DepartmentController", description = "后台部门管理")
 @RestController
 @RequestMapping("api/manage/department")
 @Transactional
-public class DepartmentController {
+public class DepartmentController extends BaseController {
 
     @Autowired
     private DepartmentService departmentService;
 
-    @ApiOperation("分页获取部门列表")
-    @WebControllerLog(description = "分页获取部门列表")
+    @ApiOperation("分页获取部门列表/搜索")
+    @WebControllerLog(description = "部门信息-查询列表")
     @PostMapping("list")
-    public ResultJson list(@RequestBody DepartmentRequest param){
+    public ResultJson list(@RequestBody PageDto param){
+
+        String token = request.getHeader("Authorization");
+        System.out.println(token);
+
         Condition condition = new Condition(DepartmentEntity.class);
-        condition.and().andLike("name", "%" + param.getName() + "%");
+        condition.and().andLike("name", "%" + param.getSearchKey()+ "%");
         PageInfo<DepartmentEntity> pageInfo = departmentService.findAll(condition, param.getPageNum(), param.getPageSize());
         return new ResultJson(MsgCode.SUCCESS_CODE, pageInfo);
     }
 
     @ApiOperation("新增部门")
-    @WebControllerLog(description = "新增部门")
+    @WebControllerLog(description = "部门信息-新增部门")
     @PostMapping("save")
     public ResultJson save(@RequestBody DepartmentRequest param){
         if(StringUtils.isEmpty(param.getName()) || StringUtils.isEmpty(param.getNum())){
@@ -61,7 +68,7 @@ public class DepartmentController {
         return new ResultJson(MsgCode.SUCCESS_CODE, MsgCode.SUCCESS_MSG);
     }
 
-    @ApiOperation("删除部门")
+    @ApiOperation("部门信息-删除部门")
     @PostMapping("delete")
     public ResultJson delete(@RequestBody DepartmentRequest param){
         if(param.getId() == null){

+ 1 - 0
xiaoan-web/src/main/java/com/xiaoan/web/backend/RoleController.java

@@ -24,6 +24,7 @@ import java.util.List;
 
 /**
  * Created by owen on 2020/2/18 0018 12:17
+ * 需要admin权限
  */
 @Api(tags = "RoleController", description = "后台角色管理")
 @RestController

+ 4 - 4
xiaoan-web/src/main/java/com/xiaoan/web/backend/TestController.java

@@ -69,9 +69,9 @@ public class TestController {
     public ResultJson logSearch(@RequestBody PageDto page){
         String searchKey = page.getSearchKey();
         searchKey = "%"+ searchKey +"%";
-        List<LogResponse> search = logRepository.search(searchKey, page.getStartTime(), page.getEndTime());
+//        List<LogResponse> search = logRepository.search(searchKey, page.getStartTime(), page.getEndTime());
 
-        return new ResultJson(2000, search);
+        return new ResultJson(2000, "");
     }
 
 
@@ -79,8 +79,8 @@ public class TestController {
     @PostMapping("log/search/logSearchProvider")
     public ResultJson logSearchProvider(@RequestBody PageDto page){
 
-        List<LogResponse> list = logRepository.searchProvider(page);
-        return new ResultJson(2000, list);
+//        List<LogResponse> list = logRepository.searchProvider(page);
+        return new ResultJson(2000, "");
     }
 
     @ApiOperation("测试按sceneSearchProvider日期查询")