From e5d1fbedcfdd63f9e6883ef5d2fb23782bae520d Mon Sep 17 00:00:00 2001
From: 陈杰 <504987307@qq.com>
Date: Thu, 27 Feb 2020 09:59:27 +0800
Subject: [PATCH] 认证中心 登录接口
---
cloud/autho/pom.xml | 139 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------
cloud/autho/src/main/java/com/sincere/autho/AuthoApplication.java | 2 ++
cloud/autho/src/main/java/com/sincere/autho/Swagger2.java | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
cloud/autho/src/main/java/com/sincere/autho/annotation/EnableLogging.java | 22 ----------------------
cloud/autho/src/main/java/com/sincere/autho/annotation/datasource/DataSource.java | 16 ----------------
cloud/autho/src/main/java/com/sincere/autho/annotation/log/LogAnnotation.java | 26 --------------------------
cloud/autho/src/main/java/com/sincere/autho/autoconfigure/LoggingConfigurationSelector.java | 23 -----------------------
cloud/autho/src/main/java/com/sincere/autho/autoconfigure/datasource/DataSourceAspect.java | 42 ------------------------------------------
cloud/autho/src/main/java/com/sincere/autho/autoconfigure/log/LogAnnotationAspect.java | 133 -------------------------------------------------------------------------------------------------------------------------------------
cloud/autho/src/main/java/com/sincere/autho/config/OAuth2ServerConfig.java | 260 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
cloud/autho/src/main/java/com/sincere/autho/config/SecurityConfig.java | 129 ---------------------------------------------------------------------------------------------------------------------------------
cloud/autho/src/main/java/com/sincere/autho/config/ValidateCodeSecurityConfig.java | 29 -----------------------------
cloud/autho/src/main/java/com/sincere/autho/control/LoginController.java | 35 +++++++++++++++++++++++++++++++++++
cloud/autho/src/main/java/com/sincere/autho/control/OAuth2Controller.java | 482 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
cloud/autho/src/main/java/com/sincere/autho/control/UserController.java | 16 ----------------
cloud/autho/src/main/java/com/sincere/autho/dto/BaseDto.java | 36 ++++++++++++++++++++++++++++++++++++
cloud/autho/src/main/java/com/sincere/autho/dto/req/LoginReqDto.java | 32 ++++++++++++++++++++++++++++++++
cloud/autho/src/main/java/com/sincere/autho/handler/ExceptionHandlerAdvice.java | 63 ---------------------------------------------------------------
cloud/autho/src/main/java/com/sincere/autho/handler/OauthLogoutHandler.java | 90 ------------------------------------------------------------------------------------------
cloud/autho/src/main/java/com/sincere/autho/log/dao/LogDao.java | 13 -------------
cloud/autho/src/main/java/com/sincere/autho/log/service/LogService.java | 11 -----------
cloud/autho/src/main/java/com/sincere/autho/log/service/impl/LogServiceImpl.java | 34 ----------------------------------
cloud/autho/src/main/java/com/sincere/autho/mapper/UserMapper.java | 10 ++++++++++
cloud/autho/src/main/java/com/sincere/autho/service/LoginService.java | 8 ++++++++
cloud/autho/src/main/java/com/sincere/autho/service/RedisAuthorizationCodeServices.java | 58 ----------------------------------------------------------
cloud/autho/src/main/java/com/sincere/autho/service/RedisClientDetailsService.java | 153 ---------------------------------------------------------------------------------------------------------------------------------------------------------
cloud/autho/src/main/java/com/sincere/autho/service/impl/LoginServiceImpl.java | 25 +++++++++++++++++++++++++
cloud/autho/src/main/java/com/sincere/autho/token/RedisTemplateTokenStore.java | 331 -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
cloud/autho/src/main/java/com/sincere/autho/utils/SpringUtil.java | 35 -----------------------------------
cloud/autho/src/main/java/com/sincere/autho/utils/SysUserUtil.java | 41 -----------------------------------------
cloud/autho/src/main/resources/application.yaml | 98 +++++++++++++++-----------------------------------------------------------------------------------
cloud/autho/src/main/resources/mapper/UserMapper.xml | 14 ++++++++++++++
cloud/common/src/main/java/com/sincere/common/util/TokenUtils.java | 2 +-
cloud/getaway/src/main/java/com/sincere/getaway/client/filter/AccessFilter.java | 6 +++---
cloud/getaway/src/main/resources/application.yml | 8 +++++++-
cloud/user_search/src/main/java/com/sincere/userSearch/controller/UserController.java | 4 ++--
cloud/user_search/src/main/resources/application.yaml | 2 +-
37 files changed, 352 insertions(+), 2128 deletions(-)
create mode 100644 cloud/autho/src/main/java/com/sincere/autho/Swagger2.java
delete mode 100644 cloud/autho/src/main/java/com/sincere/autho/annotation/EnableLogging.java
delete mode 100644 cloud/autho/src/main/java/com/sincere/autho/annotation/datasource/DataSource.java
delete mode 100644 cloud/autho/src/main/java/com/sincere/autho/annotation/log/LogAnnotation.java
delete mode 100644 cloud/autho/src/main/java/com/sincere/autho/autoconfigure/LoggingConfigurationSelector.java
delete mode 100644 cloud/autho/src/main/java/com/sincere/autho/autoconfigure/datasource/DataSourceAspect.java
delete mode 100644 cloud/autho/src/main/java/com/sincere/autho/autoconfigure/log/LogAnnotationAspect.java
delete mode 100644 cloud/autho/src/main/java/com/sincere/autho/config/OAuth2ServerConfig.java
delete mode 100644 cloud/autho/src/main/java/com/sincere/autho/config/SecurityConfig.java
delete mode 100644 cloud/autho/src/main/java/com/sincere/autho/config/ValidateCodeSecurityConfig.java
create mode 100644 cloud/autho/src/main/java/com/sincere/autho/control/LoginController.java
delete mode 100644 cloud/autho/src/main/java/com/sincere/autho/control/OAuth2Controller.java
delete mode 100644 cloud/autho/src/main/java/com/sincere/autho/control/UserController.java
create mode 100644 cloud/autho/src/main/java/com/sincere/autho/dto/BaseDto.java
create mode 100644 cloud/autho/src/main/java/com/sincere/autho/dto/req/LoginReqDto.java
delete mode 100644 cloud/autho/src/main/java/com/sincere/autho/handler/ExceptionHandlerAdvice.java
delete mode 100644 cloud/autho/src/main/java/com/sincere/autho/handler/OauthLogoutHandler.java
delete mode 100644 cloud/autho/src/main/java/com/sincere/autho/log/dao/LogDao.java
delete mode 100644 cloud/autho/src/main/java/com/sincere/autho/log/service/LogService.java
delete mode 100644 cloud/autho/src/main/java/com/sincere/autho/log/service/impl/LogServiceImpl.java
create mode 100644 cloud/autho/src/main/java/com/sincere/autho/mapper/UserMapper.java
create mode 100644 cloud/autho/src/main/java/com/sincere/autho/service/LoginService.java
delete mode 100644 cloud/autho/src/main/java/com/sincere/autho/service/RedisAuthorizationCodeServices.java
delete mode 100644 cloud/autho/src/main/java/com/sincere/autho/service/RedisClientDetailsService.java
create mode 100644 cloud/autho/src/main/java/com/sincere/autho/service/impl/LoginServiceImpl.java
delete mode 100644 cloud/autho/src/main/java/com/sincere/autho/token/RedisTemplateTokenStore.java
delete mode 100644 cloud/autho/src/main/java/com/sincere/autho/utils/SpringUtil.java
delete mode 100644 cloud/autho/src/main/java/com/sincere/autho/utils/SysUserUtil.java
create mode 100644 cloud/autho/src/main/resources/mapper/UserMapper.xml
diff --git a/cloud/autho/pom.xml b/cloud/autho/pom.xml
index 06b0023..6e23c94 100644
--- a/cloud/autho/pom.xml
+++ b/cloud/autho/pom.xml
@@ -13,63 +13,142 @@
autho
Demo project for Spring Boot
-
- 1.8
- Greenwich.SR2
-
-
com.sincere
common
- 0.0.1-SNAPSHOT
+ 1.0.0
- org.springframework.cloud
- spring-cloud-starter-oauth2
+ org.springframework.boot
+ spring-boot-starter-test
+ test
-
org.springframework.cloud
- spring-cloud-starter-security
- 2.1.3.RELEASE
+ spring-cloud-starter-feign
+ 1.3.6.RELEASE
org.springframework.cloud
- spring-cloud-starter-openfeign
+ spring-cloud-openfeign-core
+ 2.1.2.RELEASE
-
- org.springframework.boot
- spring-boot-starter-data-redis
+ org.apache.commons
+ commons-lang3
+ 3.3.2
- io.grpc
- grpc-core
- 1.18.0
+ org.mybatis.spring.boot
+ mybatis-spring-boot-starter
+ 1.3.0
-
- io.springfox
- springfox-swagger2
- 2.9.2
+ com.microsoft.sqlserver
+ mssql-jdbc
+ 6.4.0.jre8
-
- io.springfox
- springfox-swagger-ui
- 2.9.2
+ org.springframework.boot
+ spring-boot-starter-web
-
+
+
+
+ org.springframework.cloud
+ spring-cloud-dependencies
+ ${spring-cloud.version}
+ pom
+ import
+
+
+
+
+
+ quartz_server
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.1
+
+ 1.8
+ 1.8
+ UTF-8
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-jar-plugin
+
+
+
+ com.sincere.userSearch.UserApplication
+ true
+ lib/
+
+
+ ./config/
+
+
+
+ config/**
+
+
+
+
+
- org.springframework.boot
- spring-boot-maven-plugin
+ org.apache.maven.plugins
+ maven-dependency-plugin
+
+
+ copy
+ package
+
+ copy-dependencies
+
+
+
+ ${project.build.directory}/lib
+
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-resources-plugin
+ 2.5
+
+ UTF-8
+
+
+
+
+ maven-source-plugin
+ 2.2
+
+ true
+
+
+
+ compile
+
+ jar
+
+
+
-
diff --git a/cloud/autho/src/main/java/com/sincere/autho/AuthoApplication.java b/cloud/autho/src/main/java/com/sincere/autho/AuthoApplication.java
index 7bd0a97..fcbc35b 100644
--- a/cloud/autho/src/main/java/com/sincere/autho/AuthoApplication.java
+++ b/cloud/autho/src/main/java/com/sincere/autho/AuthoApplication.java
@@ -1,11 +1,13 @@
package com.sincere.autho;
+import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
@EnableDiscoveryClient
@SpringBootApplication
+@MapperScan("com.sincere.autho.mapper")
public class AuthoApplication {
public static void main(String[] args) {
diff --git a/cloud/autho/src/main/java/com/sincere/autho/Swagger2.java b/cloud/autho/src/main/java/com/sincere/autho/Swagger2.java
new file mode 100644
index 0000000..92d536c
--- /dev/null
+++ b/cloud/autho/src/main/java/com/sincere/autho/Swagger2.java
@@ -0,0 +1,52 @@
+package com.sincere.autho;
+
+import io.swagger.annotations.ApiOperation;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import springfox.documentation.builders.ApiInfoBuilder;
+import springfox.documentation.builders.ParameterBuilder;
+import springfox.documentation.builders.PathSelectors;
+import springfox.documentation.builders.RequestHandlerSelectors;
+import springfox.documentation.schema.ModelRef;
+import springfox.documentation.service.ApiInfo;
+import springfox.documentation.service.Parameter;
+import springfox.documentation.spi.DocumentationType;
+import springfox.documentation.spring.web.plugins.Docket;
+import springfox.documentation.swagger2.annotations.EnableSwagger2;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@EnableSwagger2
+@Configuration //让Spring来加载该类配置
+public class Swagger2 {
+
+ @Bean
+ public Docket createRestApi() {
+ ParameterBuilder ticketPar = new ParameterBuilder();
+ List pars = new ArrayList();
+ ticketPar.name("X-Authorization").description("user token")
+ .modelRef(new ModelRef("string")).parameterType("header")
+ .required(false).build(); //header中的ticket参数非必填,传空也可以
+ pars.add(ticketPar.build());
+
+
+ return new Docket(DocumentationType.SWAGGER_2)
+ .apiInfo(apiInfo())
+ .enableUrlTemplating(true)
+ .select()
+ // 扫描所有有注解的api,用这种方式更灵活
+ .apis(RequestHandlerSelectors.basePackage("com.sincere.autho.control"))
+ .paths(PathSelectors.any())
+ .build().globalOperationParameters(pars);
+
+ }
+ private ApiInfo apiInfo() {
+ return new ApiInfoBuilder()
+ .title("Spring Boot中使用Swagger2构建RESTful APIs")
+ .description("接口文档")
+ .termsOfServiceUrl("")
+ .version("1.0")
+ .build();
+ }
+}
diff --git a/cloud/autho/src/main/java/com/sincere/autho/annotation/EnableLogging.java b/cloud/autho/src/main/java/com/sincere/autho/annotation/EnableLogging.java
deleted file mode 100644
index 938ca89..0000000
--- a/cloud/autho/src/main/java/com/sincere/autho/annotation/EnableLogging.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package com.sincere.autho.annotation;
-
-import com.sincere.autho.autoconfigure.LoggingConfigurationSelector;
-import org.springframework.context.annotation.Import;
-
-import java.lang.annotation.*;
-
-
-/**
- * 启动日志框架支持
- * @author owen
- * @create 2017年7月2日
- */
-
-@Target(ElementType.TYPE)
-@Retention(RetentionPolicy.RUNTIME)
-@Documented
-//自动装配starter
-@Import(LoggingConfigurationSelector.class)
-public @interface EnableLogging{
-// String name() ;
-}
\ No newline at end of file
diff --git a/cloud/autho/src/main/java/com/sincere/autho/annotation/datasource/DataSource.java b/cloud/autho/src/main/java/com/sincere/autho/annotation/datasource/DataSource.java
deleted file mode 100644
index b0acc1d..0000000
--- a/cloud/autho/src/main/java/com/sincere/autho/annotation/datasource/DataSource.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package com.sincere.autho.annotation.datasource;
-
-import java.lang.annotation.*;
-
-
-/**
- * 数据源选择
- * @author owen
- * @create 2017年7月2日
- */
-@Target({ElementType.METHOD, ElementType.TYPE})
-@Retention(RetentionPolicy.RUNTIME)
-@Documented
-public @interface DataSource {
- String name();
-}
\ No newline at end of file
diff --git a/cloud/autho/src/main/java/com/sincere/autho/annotation/log/LogAnnotation.java b/cloud/autho/src/main/java/com/sincere/autho/annotation/log/LogAnnotation.java
deleted file mode 100644
index bc01d2d..0000000
--- a/cloud/autho/src/main/java/com/sincere/autho/annotation/log/LogAnnotation.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package com.sincere.autho.annotation.log;
-
-import java.lang.annotation.*;
-
-/**
- * 日志注解
- * @author owen
- * @create 2017年7月2日
- */
-@Target({ElementType.METHOD, ElementType.TYPE})
-@Retention(RetentionPolicy.RUNTIME)
-@Documented
-public @interface LogAnnotation {
-
- /**
- * 模块
- * @return
- */
- String module();
-
- /**
- * 记录执行参数
- * @return
- */
- boolean recordRequestParam() default true;
-}
diff --git a/cloud/autho/src/main/java/com/sincere/autho/autoconfigure/LoggingConfigurationSelector.java b/cloud/autho/src/main/java/com/sincere/autho/autoconfigure/LoggingConfigurationSelector.java
deleted file mode 100644
index 9caae02..0000000
--- a/cloud/autho/src/main/java/com/sincere/autho/autoconfigure/LoggingConfigurationSelector.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package com.sincere.autho.autoconfigure;
-
-import org.springframework.context.annotation.ImportSelector;
-import org.springframework.core.type.AnnotationMetadata;
-
-/**
- * @author owen
- * @create 2017年7月2日
- * 装配bean
- */
-public class LoggingConfigurationSelector implements ImportSelector {
-
- @Override
- public String[] selectImports(AnnotationMetadata importingClassMetadata) {
- // TODO Auto-generated method stub
-// importingClassMetadata.getAllAnnotationAttributes(EnableEcho.class.getName());
- return new String[] {
- "com.sincere.autho.autoconfigure.datasource.DataSourceAspect",
- "com.sincere.autho.autoconfigure.log.LogAnnotationAspect"
- };
- }
-
-}
diff --git a/cloud/autho/src/main/java/com/sincere/autho/autoconfigure/datasource/DataSourceAspect.java b/cloud/autho/src/main/java/com/sincere/autho/autoconfigure/datasource/DataSourceAspect.java
deleted file mode 100644
index 7f49439..0000000
--- a/cloud/autho/src/main/java/com/sincere/autho/autoconfigure/datasource/DataSourceAspect.java
+++ /dev/null
@@ -1,42 +0,0 @@
-package com.sincere.autho.autoconfigure.datasource;
-
-import com.sincere.autho.annotation.datasource.DataSource;
-import com.sincere.common.config.DataSourceHolder;
-import com.sincere.common.config.DataSourceKey;
-import org.aspectj.lang.JoinPoint;
-import org.aspectj.lang.annotation.After;
-import org.aspectj.lang.annotation.Aspect;
-import org.aspectj.lang.annotation.Before;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.core.annotation.Order;
-
-/**
- * 切换数据源Advice
- */
-@Aspect
-@Order(-1) // 保证该AOP在@Transactional之前执行
-public class DataSourceAspect {
-
- private static final Logger logger = LoggerFactory.getLogger(DataSourceAspect.class);
-
- @Before("@annotation(ds)")
- public void changeDataSource(JoinPoint point, DataSource ds) throws Throwable {
- String dsId = ds.name();
- try {
- DataSourceKey dataSourceKey = DataSourceKey.valueOf(dsId);
- DataSourceHolder.setDataSourceKey(dataSourceKey);
- } catch (Exception e) {
- logger.error("数据源[{}]不存在,使用默认数据源 > {}", ds.name(), point.getSignature());
- }
-
-
- }
-
- @After("@annotation(ds)")
- public void restoreDataSource(JoinPoint point, DataSource ds) {
- logger.debug("Revert DataSource : {transIdo} > {}", ds.name(), point.getSignature());
- DataSourceHolder.clearDataSourceKey();
- }
-
-}
\ No newline at end of file
diff --git a/cloud/autho/src/main/java/com/sincere/autho/autoconfigure/log/LogAnnotationAspect.java b/cloud/autho/src/main/java/com/sincere/autho/autoconfigure/log/LogAnnotationAspect.java
deleted file mode 100644
index 3ae57e9..0000000
--- a/cloud/autho/src/main/java/com/sincere/autho/autoconfigure/log/LogAnnotationAspect.java
+++ /dev/null
@@ -1,133 +0,0 @@
-package com.sincere.autho.autoconfigure.log;
-
-import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONObject;
-import com.sincere.autho.annotation.log.LogAnnotation;
-import com.sincere.autho.log.service.LogService;
-import com.sincere.autho.log.service.impl.LogServiceImpl;
-import com.sincere.autho.utils.SysUserUtil;
-import com.sincere.common.model.log.SysLog;
-import com.sincere.common.model.system.LoginAppUser;
-import com.sincere.common.util.SpringUtils;
-import org.aspectj.lang.ProceedingJoinPoint;
-import org.aspectj.lang.annotation.Around;
-import org.aspectj.lang.annotation.Aspect;
-import org.aspectj.lang.reflect.MethodSignature;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.core.annotation.Order;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.concurrent.CompletableFuture;
-import java.util.concurrent.ThreadLocalRandom;
-
-/**
- * 保存日志
- *
- * @author owen
- * @create 2017年7月2日
- */
-@Aspect
-@Order(-1) // 保证该AOP在@Transactional之前执行
-public class LogAnnotationAspect {
-
- private static final Logger logger = LoggerFactory.getLogger(LogAnnotationAspect.class);
-
- @Around("@annotation(ds)")
- public Object logSave(ProceedingJoinPoint joinPoint, LogAnnotation ds) throws Throwable {
-
- // 请求流水号
- String transid = getRandom();
- // 记录开始时间
- long start = System.currentTimeMillis();
- // 获取方法参数
- String url = null;
- String httpMethod = null;
- Object result = null;
- List