提交 1144715d 编写于 作者: H haoxr

refactor: 项目重构,网关移除鉴权,token中继到各个资源服务器通过自定义Security实现权限校验。

上级 156a53c6
......@@ -7,6 +7,12 @@
-- 系统管理数据库
-- ----------------------------
CREATE DATABASE IF NOT EXISTS youlai DEFAULT CHARACTER SET utf8mb4 DEFAULT COLLATE utf8mb4_general_ci;
-- ----------------------------
-- OAuth2数据库
-- ----------------------------
CREATE DATABASE IF NOT EXISTS oauth2 DEFAULT CHARACTER SET utf8mb4 DEFAULT COLLATE utf8mb4_general_ci;
-- ----------------------------
-- 商城会员数据库
-- ----------------------------
......
/**
OAuth2 数据库
SQL脚本在线地址: https://github.com/spring-attic/spring-security-oauth/blob/main/spring-security-oauth2/src/test/resources/schema.sql
*/
use oauth2;
create table oauth_client_details (
client_id VARCHAR(256) PRIMARY KEY,
resource_ids VARCHAR(256),
client_secret VARCHAR(256),
scope VARCHAR(256),
authorized_grant_types VARCHAR(256),
web_server_redirect_uri VARCHAR(256),
authorities VARCHAR(256),
access_token_validity INTEGER,
refresh_token_validity INTEGER,
additional_information VARCHAR(4096),
autoapprove VARCHAR(256)
);
create table oauth_client_token (
token_id VARCHAR(256),
token LONGBLOB,
authentication_id VARCHAR(256) PRIMARY KEY,
user_name VARCHAR(256),
client_id VARCHAR(256)
);
create table oauth_access_token (
token_id VARCHAR(256),
token LONGBLOB,
authentication_id VARCHAR(256) PRIMARY KEY,
user_name VARCHAR(256),
client_id VARCHAR(256),
authentication LONGBLOB,
refresh_token VARCHAR(256)
);
create table oauth_refresh_token (
token_id VARCHAR(256),
token LONGBLOB,
authentication LONGBLOB
);
create table oauth_code (
code VARCHAR(256), authentication LONGBLOB
);
create table oauth_approvals (
userId VARCHAR(256),
clientId VARCHAR(256),
scope VARCHAR(256),
status VARCHAR(10),
expiresAt TIMESTAMP,
lastModifiedAt TIMESTAMP
);
......@@ -8,7 +8,7 @@ RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \&& echo 'Asia/Shan
VOLUME /tmp
# 复制jar到镜像
ADD target/youlai-lab.jar app.jar
ADD target/laboratory.jar app.jar
ENTRYPOINT ["java", "-Xmx128m", "-Djava.security.egd=file:/dev/./urandom", "-jar", "/app.jar"]
......
......@@ -9,7 +9,7 @@
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>youlai-lab</artifactId>
<artifactId>laboratory</artifactId>
<description>有来实验室</description>
<properties>
......
package com.youlai.lab;
package com.youlai.laboratory;
import com.youlai.mall.oms.api.OrderFeignClient;
import com.youlai.mall.pms.api.SkuFeignClient;
import com.youlai.mall.ums.api.MemberFeignClient;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.openfeign.EnableFeignClients;
......
package com.youlai.lab.base.config;
package com.youlai.laboratory.base.config;
import io.swagger.annotations.Api;
import lombok.extern.slf4j.Slf4j;
......
package com.youlai.laboratory.elasticsearch;
/**
* @author haoxr
* @date 2021/11/28 10:06
*/
public class Test {
}
package com.youlai.laboratory.rabbitmq;
/**
* @author haoxr
* @date 2021/11/28 10:06
*/
public class Test {
}
package com.youlai.laboratory.redis;
/**
* @author haoxr
* @date 2021/11/28 10:06
*/
public class Test {
}
package com.youlai.lab.seata.controller;
package com.youlai.laboratory.seata.controller;
import com.youlai.common.result.Result;
import com.youlai.lab.seata.pojo.form.SeataForm;
import com.youlai.lab.seata.pojo.vo.SeataDataVO;
import com.youlai.lab.seata.service.ISeataService;
import com.youlai.laboratory.seata.pojo.form.SeataForm;
import com.youlai.laboratory.seata.pojo.vo.SeataDataVO;
import com.youlai.laboratory.seata.service.ISeataService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
......
package com.youlai.lab.seata.pojo.vo;
package com.youlai.laboratory.seata.pojo.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
......
package com.youlai.lab.seata.service;
package com.youlai.laboratory.seata.service;
import com.youlai.lab.seata.pojo.form.SeataForm;
import com.youlai.lab.seata.pojo.vo.SeataDataVO;
import com.youlai.laboratory.seata.pojo.form.SeataForm;
import com.youlai.laboratory.seata.pojo.vo.SeataDataVO;
/**
* @author haoxr
......
package com.youlai.lab.seata.service.impl;
package com.youlai.laboratory.seata.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.youlai.lab.seata.pojo.form.SeataForm;
import com.youlai.lab.seata.pojo.vo.SeataDataVO;
import com.youlai.lab.seata.service.ISeataService;
import com.youlai.laboratory.seata.pojo.form.SeataForm;
import com.youlai.laboratory.seata.pojo.vo.SeataDataVO;
import com.youlai.laboratory.seata.service.ISeataService;
import com.youlai.mall.oms.api.OrderFeignClient;
import com.youlai.mall.oms.dto.OrderInfoDTO;
import com.youlai.mall.pms.api.SkuFeignClient;
......
package com.youlai.lab.sentinel.controller;
package com.youlai.laboratory.sentinel.controller;
import com.youlai.common.result.Result;
import io.swagger.annotations.Api;
......
package com.youlai.lab.sentinel.handler;
package com.youlai.laboratory.sentinel.handler;
import com.alibaba.csp.sentinel.adapter.spring.webmvc.callback.BlockExceptionHandler;
import com.alibaba.csp.sentinel.slots.block.BlockException;
......
package com.youlai.lab.spring;
package com.youlai.laboratory.spring;
import java.util.Objects;
......
package com.youlai.lab.spring.DI;
package com.youlai.laboratory.spring.DI;
import com.youlai.lab.spring.Bean;
import com.youlai.laboratory.spring.Bean;
/**
* 通过构造器装配
......
package com.youlai.lab.spring.DI;
package com.youlai.laboratory.spring.DI;
import com.youlai.lab.spring.Bean;
import com.youlai.laboratory.spring.Bean;
/**
*
......
package com.youlai.lab.spring.DI;
package com.youlai.laboratory.spring.DI;
import com.youlai.lab.spring.Bean;
import com.youlai.laboratory.spring.Bean;
/**
*
......
package com.youlai.lab.spring.DI;
package com.youlai.laboratory.spring.DI;
import com.youlai.lab.spring.Bean;
import com.youlai.laboratory.spring.Bean;
/**
*
......
package com.youlai.lab.spring.DI;
package com.youlai.laboratory.spring.DI;
import com.youlai.lab.spring.Bean;
import com.youlai.laboratory.spring.Bean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
......
package com.youlai.lab.spring.DI;
package com.youlai.laboratory.spring.DI;
import com.youlai.lab.spring.Bean;
import com.youlai.laboratory.spring.Bean;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
......
package com.youlai.lab.spring.aop;
package com.youlai.laboratory.spring.aop;
import org.aspectj.lang.annotation.*;
import org.springframework.context.annotation.EnableAspectJAutoProxy;
......@@ -13,7 +13,7 @@ import org.springframework.context.annotation.EnableAspectJAutoProxy;
@Aspect
public class AspectJAop {
@Before("execution(* com.youlai.lab.spring.aop.UserService.test(..))")
@Before("execution(* com.youlai.laboratory.spring.aop.UserService.test(..))")
public void before(){
System.out.println("前置通知");
}
......@@ -23,7 +23,7 @@ public class AspectJAop {
System.out.println("执行正常业务");
}
@After("execution(* com.youlai.lab.spring.aop.UserService.test(..))")
@After("execution(* com.youlai.laboratory.spring.aop.UserService.test(..))")
public void after(){
System.out.println("后置增强,不管正常或异常都会执行");
}
......@@ -33,12 +33,12 @@ public class AspectJAop {
// System.out.println("环绕增强");
// }
@AfterThrowing("execution(* com.youlai.lab.spring.aop.UserService.test(..))")
@AfterThrowing("execution(* com.youlai.laboratory.spring.aop.UserService.test(..))")
public void afterthrows(){
System.out.println("异常抛出增强");
}
@AfterReturning("execution(* com.youlai.lab.spring.aop.UserService.test(..))")
@AfterReturning("execution(* com.youlai.laboratory.spring.aop.UserService.test(..))")
public void afterReturning(){
System.out.println("正常退出的后置增强");
}
......
package com.youlai.lab.spring.aop;
package com.youlai.laboratory.spring.aop;
import lombok.SneakyThrows;
import org.aopalliance.intercept.MethodInterceptor;
......
package com.youlai.lab.spring.aop;
package com.youlai.laboratory.spring.aop;
import org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator;
import org.springframework.context.annotation.Bean;
......
package com.youlai.lab.spring.aop;
package com.youlai.laboratory.spring.aop;
import org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator;
import org.springframework.context.annotation.Bean;
......
package com.youlai.lab.spring.aop;
package com.youlai.laboratory.spring.aop;
import org.springframework.context.annotation.EnableAspectJAutoProxy;
......
package com.youlai.lab.spring.aop;
package com.youlai.laboratory.spring.aop;
import org.springframework.aop.aspectj.AspectJExpressionPointcut;
import org.springframework.aop.support.StaticMethodMatcherPointcut;
......
package com.youlai.lab.spring.aop;
package com.youlai.laboratory.spring.aop;
import org.aopalliance.aop.Advice;
import org.springframework.aop.MethodBeforeAdvice;
......
package com.youlai.lab.spring.aop;
package com.youlai.laboratory.spring.aop;
import org.springframework.transaction.annotation.Transactional;
......
package com.youlai.lab.spring.aop;
package com.youlai.laboratory.spring.aop;
/**
* 需要增强的业务类
......
package com.youlai.lab.spring.aop.transactional;
package com.youlai.laboratory.spring.aop.transactional;
import com.mysql.cj.jdbc.MysqlDataSource;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
......
package com.youlai.lab.spring.aop.transactional;
package com.youlai.laboratory.spring.aop.transactional;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import org.springframework.transaction.PlatformTransactionManager;
......
package com.youlai.lab.spring.aop.transactional;
package com.youlai.laboratory.spring.aop.transactional;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.transaction.support.TransactionTemplate;
......
package com.youlai.lab.spring.aop.transactional;
package com.youlai.laboratory.spring.aop.transactional;
import org.springframework.context.annotation.Bean;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.transaction.annotation.EnableTransactionManagement;
import javax.sql.DataSource;
......
package com.youlai.lab.spring.aop.transactional;
package com.youlai.laboratory.spring.aop.transactional;
import com.youlai.common.base.BaseEntity;
import lombok.Data;
......
package com.youlai.lab.spring.aop.transactional;
package com.youlai.laboratory.spring.aop.transactional;
import com.youlai.common.base.BaseEntity;
import lombok.Data;
......
package com.youlai.lab.spring.aop.transactional;
package com.youlai.laboratory.spring.aop.transactional;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
......
package com.youlai.lab.spring.bean;
package com.youlai.laboratory.spring.bean;
import org.springframework.beans.factory.FactoryBean;
......
package com.youlai.lab.spring.bean;
package com.youlai.laboratory.spring.bean;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.BeanPostProcessor;
......
package com.youlai.lab.spring.bean;
package com.youlai.laboratory.spring.bean;
import org.springframework.beans.factory.InitializingBean;
......
package com.youlai.lab.spring.bean;
package com.youlai.laboratory.spring.bean;
import org.springframework.context.Lifecycle;
......
package com.youlai.lab.spring.bean;
package com.youlai.laboratory.spring.bean;
import org.springframework.context.SmartLifecycle;
......
package com.youlai.lab.spring.bean;
package com.youlai.laboratory.spring.bean;
import org.springframework.context.SmartLifecycle;
......
package com.youlai.lab.spring.bean.aware;
package com.youlai.laboratory.spring.bean.aware;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
......
package com.youlai.lab.spring.bean.aware;
package com.youlai.laboratory.spring.bean.aware;
import org.springframework.context.ApplicationStartupAware;
import org.springframework.core.metrics.ApplicationStartup;
......
package com.youlai.lab.spring.bean.aware;
package com.youlai.laboratory.spring.bean.aware;
import org.springframework.beans.factory.BeanClassLoaderAware;
......
package com.youlai.lab.spring.bean.aware;
package com.youlai.laboratory.spring.bean.aware;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.BeanFactory;
......
package com.youlai.lab.spring.bean.aware;
package com.youlai.laboratory.spring.bean.aware;
import org.springframework.beans.factory.BeanNameAware;
......
package com.youlai.lab.spring.bean.aware;
package com.youlai.laboratory.spring.bean.aware;
import org.springframework.context.EmbeddedValueResolverAware;
import org.springframework.util.StringValueResolver;
......
package com.youlai.lab.spring.bean.aware;
package com.youlai.laboratory.spring.bean.aware;
import org.springframework.context.EnvironmentAware;
import org.springframework.core.env.Environment;
......
package com.youlai.lab.spring.beanDefinition;
package com.youlai.laboratory.spring.beanDefinition;
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
......
package com.youlai.lab.spring.beanDefinition;
package com.youlai.laboratory.spring.beanDefinition;
import org.springframework.beans.factory.DisposableBean;
import org.springframework.beans.factory.InitializingBean;
......
package com.youlai.lab.spring.beanDefinition;
package com.youlai.laboratory.spring.beanDefinition;
/**
* 说明描述
......
package com.youlai.lab.spring.beanDefinition;
package com.youlai.laboratory.spring.beanDefinition;
/**
* 说明描述
......
package com.youlai.lab.spring.beanDefinition;
package com.youlai.laboratory.spring.beanDefinition;
import org.springframework.context.annotation.Condition;
......
package com.youlai.lab.spring.beanDefinition;
package com.youlai.laboratory.spring.beanDefinition;
import com.youlai.lab.spring.Bean;
import com.youlai.laboratory.spring.Bean;
import org.springframework.beans.factory.config.ConfigurableBeanFactory;
import org.springframework.context.annotation.*;
......
package com.youlai.lab.spring.beanDefinition;
package com.youlai.laboratory.spring.beanDefinition;
import org.springframework.beans.factory.support.BeanDefinitionBuilder;
import org.springframework.beans.factory.xml.AbstractSingleBeanDefinitionParser;
......
package com.youlai.lab.spring.beanDefinition;
package com.youlai.laboratory.spring.beanDefinition;
import org.springframework.beans.factory.xml.NamespaceHandlerSupport;
......
package com.youlai.lab.spring.beanFactoryPostProcessor;
package com.youlai.laboratory.spring.beanFactoryPostProcessor;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
......
package com.youlai.lab.spring.beanFactoryPostProcessor;
package com.youlai.laboratory.spring.beanFactoryPostProcessor;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
......
package com.youlai.lab.spring.beanFactoryPostProcessor;
package com.youlai.laboratory.spring.beanFactoryPostProcessor;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
......
package com.youlai.lab.spring.beanFactoryPostProcessor;
package com.youlai.laboratory.spring.beanFactoryPostProcessor;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.BeanFactoryPostProcessor;
......
package com.youlai.lab.spring.beanFactoryPostProcessor;
package com.youlai.laboratory.spring.beanFactoryPostProcessor;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.BeanFactoryPostProcessor;
......
package com.youlai.lab.spring.beanFactoryPostProcessor;
package com.youlai.laboratory.spring.beanFactoryPostProcessor;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.BeanFactoryPostProcessor;
......
package com.youlai.lab.spring.beanPostProcessor;
package com.youlai.laboratory.spring.beanPostProcessor;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.BeanPostProcessor;
......
package com.youlai.lab.spring.beanPostProcessor;
package com.youlai.laboratory.spring.beanPostProcessor;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.DestructionAwareBeanPostProcessor;
......
package com.youlai.lab.spring.beanPostProcessor;
package com.youlai.laboratory.spring.beanPostProcessor;
import org.springframework.beans.factory.DisposableBean;
......
package com.youlai.lab.spring.beanPostProcessor;
package com.youlai.laboratory.spring.beanPostProcessor;
import org.springframework.beans.factory.InitializingBean;
......
package com.youlai.lab.spring.beanPostProcessor;
package com.youlai.laboratory.spring.beanPostProcessor;
import org.springframework.beans.BeansException;
import org.springframework.beans.PropertyValues;
......
package com.youlai.lab.spring.beanPostProcessor;
package com.youlai.laboratory.spring.beanPostProcessor;
import org.springframework.beans.factory.support.MergedBeanDefinitionPostProcessor;
import org.springframework.beans.factory.support.RootBeanDefinition;
......
package com.youlai.lab.spring.beanPostProcessor;
package com.youlai.laboratory.spring.beanPostProcessor;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.SmartInstantiationAwareBeanPostProcessor;
......
package com.youlai.lab.spring.constructor;
package com.youlai.laboratory.spring.constructor;
/**
* 说明描述
......
package com.youlai.lab.spring.constructor;
package com.youlai.laboratory.spring.constructor;
import org.springframework.beans.factory.annotation.Autowired;
......
package com.youlai.lab.spring.constructor;
package com.youlai.laboratory.spring.constructor;
import java.util.function.Supplier;
......
package com.youlai.lab.spring.constructor;
package com.youlai.laboratory.spring.constructor;
/**
* 说明描述
......
package com.youlai.lab.spring.constructor;
package com.youlai.laboratory.spring.constructor;
import org.springframework.beans.factory.annotation.Autowired;
......
package com.youlai.lab.spring.constructor;
package com.youlai.laboratory.spring.constructor;
import org.springframework.beans.factory.annotation.Autowired;
......
package com.youlai.lab.spring.constructor;
package com.youlai.laboratory.spring.constructor;
/**
* 说明描述
......
package com.youlai.lab.spring.constructor;
package com.youlai.laboratory.spring.constructor;
/**
* 说明描述
......
package com.youlai.lab.spring.constructor;
package com.youlai.laboratory.spring.constructor;
/**
* 说明描述
......
package com.youlai.lab.spring.constructor;
package com.youlai.laboratory.spring.constructor;
/**
* 说明描述
......
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册