Browse Source

@LoginUser V2拦截OK后期要改为从body中获取

dev
yinzuomei 6 years ago
parent
commit
b976e35b50
  1. 4
      epmet-auth/src/main/java/com/epmet/service/impl/LoginServiceImpl.java
  2. 35
      epmet-commons/epmet-common-clienttoken/src/main/java/com/epmet/common/token/annotation/LoginUser.java
  3. 5
      epmet-commons/epmet-common-clienttoken/src/main/java/com/epmet/common/token/util/TokenUtil.java
  4. 2
      epmet-commons/epmet-common-clienttoken/src/main/java/com/epmet/common/token/util/UserUtil.java
  5. 6
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/annotation/LoginUser.java
  6. 4
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/ModuleErrorCode.java
  7. 6
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/security/config/WebMvcConfig.java
  8. 2
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/security/dto/TokenDto.java
  9. 24
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/security/resolver/LoginUserHandlerMethodArgumentResolver.java
  10. 4
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/CpUserDetailRedis.java
  11. 34
      epmet-gateway/src/main/java/com/epmet/config/WebConfig.java
  12. 8
      epmet-gateway/src/main/java/com/epmet/filter/CpAuthGatewayFilterFactory.java
  13. 9
      epmet-gateway/src/main/resources/bootstrap.yml
  14. 9
      epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/controller/CustomerController.java
  15. 6
      epmet-module/oper-crm/oper-crm-server/src/main/resources/bootstrap.yml

4
epmet-auth/src/main/java/com/epmet/service/impl/LoginServiceImpl.java

@ -3,14 +3,14 @@ package com.epmet.service.impl;
import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult;
import cn.binarywang.wx.miniapp.bean.WxMaUserInfo;
import com.epmet.common.token.constant.LoginConstant;
import com.epmet.common.token.dto.TokenDto;
import com.epmet.common.token.dto.form.LoginByPassWordFormDTO;
import com.epmet.common.token.dto.form.LoginByWxCodeFormDTO;
import com.epmet.common.token.dto.result.UserTokenResultDTO;
import com.epmet.common.token.util.CpUserDetailRedis;
import com.epmet.commons.tools.exception.ErrorCode;
import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.security.password.PasswordUtils;
import com.epmet.commons.tools.utils.CpUserDetailRedis;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.CustomerUserDTO;
import com.epmet.dto.form.PasswordLoginUserInfoFormDTO;

35
epmet-commons/epmet-common-clienttoken/src/main/java/com/epmet/common/token/annotation/LoginUser.java

@ -1,35 +0,0 @@
/**
* Copyright 2018 人人开源 http://www.renren.io
* <p>
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
* <p>
* http://www.apache.org/licenses/LICENSE-2.0
* <p>
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
package com.epmet.common.token.annotation;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* 登录用户信息
*
* @author chenshun
* @email sunlightcs@gmail.com
* @date 2017-03-23 20:39
*/
@Target(ElementType.PARAMETER)
@Retention(RetentionPolicy.RUNTIME)
public @interface LoginUser {
}

5
epmet-commons/epmet-common-clienttoken/src/main/java/com/epmet/common/token/util/TokenUtil.java

@ -1,7 +1,8 @@
package com.epmet.common.token.util;
import com.epmet.common.token.dto.TokenDto;
import com.epmet.common.token.property.TokenPropertise;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.CpUserDetailRedis;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@ -24,7 +25,7 @@ public class TokenUtil {
@Autowired
private CpUserDetailRedis redisUtils;
public TokenDto getTokenInfo(String app,String client,String userId) {
public TokenDto getTokenInfo(String app, String client, String userId) {
TokenDto tokenDto = redisUtils.get(app,client,userId);
return tokenDto;
}

2
epmet-commons/epmet-common-clienttoken/src/main/java/com/epmet/common/token/util/UserUtil.java

@ -1,7 +1,7 @@
package com.epmet.common.token.util;
import com.epmet.common.token.dto.TokenDto;
import com.epmet.commons.tools.constant.Constant;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.WebUtil;
/**

6
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/annotation/LoginUser.java

@ -16,10 +16,7 @@
package com.epmet.commons.tools.annotation;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.lang.annotation.*;
/**
* 登录用户信息
@ -30,6 +27,7 @@ import java.lang.annotation.Target;
*/
@Target(ElementType.PARAMETER)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface LoginUser {
}

4
epmet-gateway/src/main/java/com/epmet/exception/ModuleErrorCode.java → epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/ModuleErrorCode.java

@ -6,11 +6,9 @@
* 版权所有侵权必究
*/
package com.epmet.exception;
package com.epmet.commons.tools.exception;
import com.epmet.commons.tools.exception.ErrorCode;
/**
* 模块错误编码由9位数字组成前6位为模块编码后3位为业务编码
* <p>

6
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/security/config/WebMvcConfig.java

@ -8,6 +8,7 @@
package com.epmet.commons.tools.security.config;
import com.epmet.commons.tools.security.resolver.LoginUserHandlerMethodArgumentResolver;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.module.SimpleModule;
@ -40,9 +41,11 @@ import java.util.TimeZone;
public class WebMvcConfig implements WebMvcConfigurer {
@Autowired
private UserDetailHandlerMethodArgumentResolver userDetailHandlerMethodArgumentResolver;
@Autowired
private LoginUserHandlerMethodArgumentResolver loginUserHandlerMethodArgumentResolver;
@Override
public void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers) {
argumentResolvers.add(loginUserHandlerMethodArgumentResolver);
argumentResolvers.add(userDetailHandlerMethodArgumentResolver);
}
@ -75,4 +78,5 @@ public class WebMvcConfig implements WebMvcConfigurer {
converter.setObjectMapper(mapper);
return converter;
}
}

2
epmet-commons/epmet-common-clienttoken/src/main/java/com/epmet/common/token/dto/TokenDto.java → epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/security/dto/TokenDto.java

@ -1,4 +1,4 @@
package com.epmet.common.token.dto;
package com.epmet.commons.tools.security.dto;
import lombok.Data;

24
epmet-gateway/src/main/java/com/epmet/resolver/LoginUserHandlerMethodArgumentResolver.java → epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/security/resolver/LoginUserHandlerMethodArgumentResolver.java

@ -6,21 +6,21 @@
* 版权所有侵权必究
*/
package com.epmet.resolver;
package com.epmet.commons.tools.security.resolver;
import com.alibaba.fastjson.JSON;
import com.epmet.common.token.dto.TokenDto;
import com.epmet.common.token.util.CpUserDetailRedis;
import com.epmet.commons.tools.annotation.LoginUser;
import com.epmet.commons.tools.constant.Constant;
import com.epmet.commons.tools.exception.ModuleErrorCode;
import com.epmet.commons.tools.exception.RenException;
import com.epmet.exception.ModuleErrorCode;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.CpUserDetailRedis;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.MethodParameter;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.support.WebDataBinderFactory;
import org.springframework.web.context.request.NativeWebRequest;
import org.springframework.web.method.support.HandlerMethodArgumentResolver;
@ -31,9 +31,10 @@ import org.springframework.web.method.support.ModelAndViewContainer;
*
* @author Mark sunlightcs@gmail.com
*/
@Component
@Service
public class LoginUserHandlerMethodArgumentResolver implements HandlerMethodArgumentResolver {
private Logger logger = LoggerFactory.getLogger(getClass());
@Autowired
private CpUserDetailRedis cpUserDetailRedis;
@ -43,7 +44,16 @@ public class LoginUserHandlerMethodArgumentResolver implements HandlerMethodArgu
@Override
public boolean supportsParameter(MethodParameter parameter) {
logger.info("enter supportsParameter ");
if(parameter.getParameterType().isAssignableFrom(TokenDto.class)){
logger.info("入参是TokenDto.class");
}else{
logger.info("parameter.getParameterType().isAssignableFrom(TokenDto.class)");
}
if(parameter.hasParameterAnnotation(LoginUser.class)){
logger.info("入参@LoginUser");
}else {
logger.info("parameter.hasParameterAnnotation(LoginUser.class) is false");
}
return parameter.getParameterType().isAssignableFrom(TokenDto.class) && parameter.hasParameterAnnotation(LoginUser.class);
}

4
epmet-commons/epmet-common-clienttoken/src/main/java/com/epmet/common/token/util/CpUserDetailRedis.java → epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/CpUserDetailRedis.java

@ -6,13 +6,13 @@
* 版权所有侵权必究
*/
package com.epmet.common.token.util;
package com.epmet.commons.tools.utils;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.map.MapUtil;
import com.epmet.common.token.dto.TokenDto;
import com.epmet.commons.tools.redis.RedisKeys;
import com.epmet.commons.tools.redis.RedisUtils;
import com.epmet.commons.tools.security.dto.TokenDto;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

34
epmet-gateway/src/main/java/com/epmet/config/WebConfig.java

@ -1,34 +0,0 @@
/**
* Copyright (c) 2018 人人开源 All rights reserved.
*
* https://www.renren.io
*
* 版权所有侵权必究
*/
package com.epmet.config;
import com.epmet.resolver.LoginUserHandlerMethodArgumentResolver;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.method.support.HandlerMethodArgumentResolver;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import java.util.List;
/**
* MVC配置
*
* @author Mark sunlightcs@gmail.com
* @since 1.0.0
*/
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Autowired
private LoginUserHandlerMethodArgumentResolver loginUserHandlerMethodArgumentResolver;
@Override
public void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers) {
argumentResolvers.add(loginUserHandlerMethodArgumentResolver);
}
}

8
epmet-gateway/src/main/java/com/epmet/filter/CpAuthGatewayFilterFactory.java

@ -2,12 +2,11 @@
package com.epmet.filter;
import com.alibaba.fastjson.JSON;
import com.epmet.common.token.dto.TokenDto;
import com.epmet.common.token.util.CpUserDetailRedis;
import com.epmet.commons.tools.constant.Constant;
import com.epmet.commons.tools.exception.ErrorCode;
import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.CpUserDetailRedis;
import com.epmet.jwt.JwtTokenUtils;
import io.jsonwebtoken.Claims;
import org.apache.commons.lang3.StringUtils;
@ -75,8 +74,7 @@ public class CpAuthGatewayFilterFactory extends AbstractGatewayFilterFactory<CpA
}
logger.info("CpAuthGatewayFilterFactory当前requestUri=[" + requestUri + "]CpAuthGatewayFilterFactory拦截成功");
HttpHeaders headers = request.getHeaders();
String token = headers.getFirst(Constant.AUTHORIZATION_HEADER);
// String token = request.getQueryParams().getFirst(Constant.TOKEN_HEADER);
String token = headers.getFirst(Constant.TOKEN_HEADER);
if (StringUtils.isBlank(token)) {
token = request.getQueryParams().getFirst(Constant.AUTHORIZATION_HEADER);
if (StringUtils.isBlank(token)) {

9
epmet-gateway/src/main/resources/bootstrap.yml

@ -42,6 +42,7 @@ spring:
- Path=${server.servlet.context-path}/sys/**
filters:
- StripPrefix=1
- CpAuth=true
#监控服务
- id: epmet-monitor-server
uri: @gateway.routes.epmet-monitor-server.uri@
@ -90,6 +91,7 @@ spring:
- Path=${server.servlet.context-path}/epmetuser/**
filters:
- StripPrefix=1
- CpAuth=true
#demo流服务
- id: epmet-demo-server
uri: @gateway.routes.epmet-demo-server.uri@
@ -98,6 +100,7 @@ spring:
- Path=${server.servlet.context-path}/demo/**
filters:
- StripPrefix=1
- CpAuth=true
#运营端客户定制化服务
- id: oper-customize-server
uri: @gateway.routes.oper-customize-server.uri@
@ -106,6 +109,7 @@ spring:
- Path=${server.servlet.context-path}/oper/customize/**
filters:
- StripPrefix=1
- CpAuth=true
#运营端客户管理
- id: oper-crm-server
uri: @gateway.routes.oper-crm-server.uri@
@ -131,6 +135,7 @@ spring:
- Path=${server.servlet.context-path}/gov/org/**
filters:
- StripPrefix=1
- CpAuth=true
#运营端访问权限控制
- id: oper-access-server
uri: @gateway.routes.oper-access-server.uri@
@ -139,6 +144,7 @@ spring:
- Path=${server.servlet.context-path}/oper/access/**
filters:
- StripPrefix=1
- CpAuth=true
nacos:
discovery:
server-addr: @nacos.server-addr@
@ -170,7 +176,6 @@ renren:
- /activiti/editor-app/**
- /oper/customize/**
- /oper/crm/**
- /resi/guide/**
- /epmetuser/**
- /gov/org/**
- /oper/access/**
@ -227,11 +232,9 @@ epmet:
urls:
- /oper/customize/**
- /oper/crm/**
- /resi/guide/**
- /epmetuser/**
- /gov/org/**
- /oper/access/**
# 不处理token,直接通过
swaggerUrls:
jwt:

9
epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/controller/CustomerController.java

@ -18,9 +18,9 @@
package com.epmet.controller;
import com.alibaba.fastjson.JSON;
import com.epmet.common.token.annotation.LoginUser;
import com.epmet.common.token.dto.TokenDto;
import com.epmet.commons.tools.annotation.LoginUser;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.ExcelUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.AssertUtils;
@ -51,6 +51,7 @@ import java.util.Map;
@RestController
@RequestMapping("customer")
public class CustomerController {
private Logger logger = LoggerFactory.getLogger(getClass());
@Autowired
private CustomerService customerService;
@ -96,7 +97,7 @@ public class CustomerController {
List<CustomerDTO> list = customerService.list(params);
ExcelUtils.exportExcelToTarget(response, null, list, CustomerExcel.class);
}
private Logger logger = LoggerFactory.getLogger(getClass());
/**
* @param
* @return com.epmet.commons.tools.utils.Result<com.epmet.dto.result.ValidCustomerResultDTO>
@ -106,7 +107,7 @@ public class CustomerController {
**/
@GetMapping("getvalidcustomerlist")
public Result<List<ValidCustomerResultDTO>> getValidCustomerList(@LoginUser TokenDto tokenDTO) {
logger.info("不成功便成仁===================================="+ JSON.toJSONString(tokenDTO));
logger.info("getvalidcustomerlist:"+ JSON.toJSONString(tokenDTO));
return customerService.getValidCustomerList();
}
}

6
epmet-module/oper-crm/oper-crm-server/src/main/resources/bootstrap.yml

@ -51,6 +51,12 @@ spring:
# - data-id: common.yaml
# group: ${spring.cloud.nacos.config.group}
# refresh: true
servlet:
multipart:
enabled: true
file-size-threshold: 0
max-file-size: 10MB
max-request-size: 10MB
management:
endpoints:
web:

Loading…
Cancel
Save