Commit a387036b by yw

项目初始化

parent f173a2a5
...@@ -5,21 +5,17 @@ import cn.datax.common.redis.annotation.EnableDataRedis; ...@@ -5,21 +5,17 @@ import cn.datax.common.redis.annotation.EnableDataRedis;
import cn.datax.common.security.annotation.EnableDataAuthExceptionHandler; import cn.datax.common.security.annotation.EnableDataAuthExceptionHandler;
import cn.datax.common.security.annotation.EnableDataServerProtect; import cn.datax.common.security.annotation.EnableDataServerProtect;
import org.springframework.boot.SpringApplication; import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.SpringCloudApplication;
import org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.openfeign.EnableFeignClients; import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.ComponentScan;
@EnableDiscoveryClient
@EnableCircuitBreaker
@EnableDataAuthExceptionHandler @EnableDataAuthExceptionHandler
@EnableDataServerProtect @EnableDataServerProtect
@EnableDataMybatis @EnableDataMybatis
@EnableDataRedis @EnableDataRedis
@EnableFeignClients @EnableFeignClients(basePackages = {"cn.datax.service.system.api.feign"})
@ComponentScan({"cn.datax"}) @ComponentScan(basePackages = {"cn.datax"})
@SpringBootApplication @SpringCloudApplication
public class DataxAuthApplication { public class DataxAuthApplication {
public static void main(String[] args) { public static void main(String[] args) {
......
package cn.datax.common.security.annotation;
import java.lang.annotation.*;
/**
* 服务调用不鉴权注解
*/
@Target({ ElementType.PARAMETER, ElementType.METHOD })
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface DataInner {
/**
* 是否AOP统一处理
*
* @return false, true
*/
boolean value() default true;
}
package cn.datax.common.security.annotation; package cn.datax.common.security.annotation;
import cn.datax.common.security.config.DataSecurityApplicationSelector; import cn.datax.common.security.config.DataAuthExceptionConfiguration;
import cn.datax.common.security.config.DataOAuth2FeignConfiguration;
import cn.datax.common.security.config.DataServerProtectConfiguration;
import org.springframework.context.annotation.Import; import org.springframework.context.annotation.Import;
import java.lang.annotation.*; import java.lang.annotation.*;
...@@ -9,6 +11,6 @@ import java.lang.annotation.*; ...@@ -9,6 +11,6 @@ import java.lang.annotation.*;
@Retention(RetentionPolicy.RUNTIME) @Retention(RetentionPolicy.RUNTIME)
@Documented @Documented
@Inherited @Inherited
@Import({DataSecurityApplicationSelector.class}) @Import({DataAuthExceptionConfiguration.class, DataOAuth2FeignConfiguration.class, DataServerProtectConfiguration.class})
public @interface EnableDataSecurityApplication { public @interface EnableDataSecurity {
} }
package cn.datax.common.security.config; package cn.datax.common.security.config;
import cn.datax.common.security.feign.DataFeignRequestInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.ComponentScan;
/** /**
...@@ -12,8 +10,4 @@ import org.springframework.context.annotation.ComponentScan; ...@@ -12,8 +10,4 @@ import org.springframework.context.annotation.ComponentScan;
@ComponentScan({"cn.datax.common.security.feign"}) @ComponentScan({"cn.datax.common.security.feign"})
public class DataOAuth2FeignConfiguration { public class DataOAuth2FeignConfiguration {
@Bean
public DataFeignRequestInterceptor dataFeignRequestInterceptor() {
return new DataFeignRequestInterceptor();
}
} }
package cn.datax.common.security.config;
import org.springframework.context.annotation.ImportSelector;
import org.springframework.core.type.AnnotationMetadata;
public class DataSecurityApplicationSelector implements ImportSelector {
@Override
public String[] selectImports(AnnotationMetadata annotationMetadata) {
return new String[]{
DataAuthExceptionConfiguration.class.getName(),
DataOAuth2FeignConfiguration.class.getName(),
DataServerProtectConfiguration.class.getName()
};
}
}
package cn.datax.common.security.config;
import cn.datax.common.security.annotation.DataInner;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.springframework.stereotype.Component;
/**
* 服务间接口不鉴权处理逻辑
*/
@Slf4j
@Aspect
@Component
public class DataSecurityInnerAspect {
@SneakyThrows
@Around("@annotation(dataInner)")
public Object around(ProceedingJoinPoint point, DataInner dataInner) {
log.info("feign内部接口访问 {} 不鉴权处理", point.getSignature().getName());
return point.proceed();
}
}
...@@ -4,10 +4,12 @@ import cn.datax.common.core.DataConstant; ...@@ -4,10 +4,12 @@ import cn.datax.common.core.DataConstant;
import com.google.common.net.HttpHeaders; import com.google.common.net.HttpHeaders;
import feign.RequestInterceptor; import feign.RequestInterceptor;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.security.oauth2.provider.authentication.OAuth2AuthenticationDetails; import org.springframework.security.oauth2.provider.authentication.OAuth2AuthenticationDetails;
import org.springframework.util.Base64Utils; import org.springframework.util.Base64Utils;
@Configuration
public class DataFeignRequestInterceptor { public class DataFeignRequestInterceptor {
@Bean @Bean
......
...@@ -2,11 +2,15 @@ package cn.datax.service.email.api.entity; ...@@ -2,11 +2,15 @@ package cn.datax.service.email.api.entity;
import cn.datax.common.base.BaseEntity; import cn.datax.common.base.BaseEntity;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.File; import java.io.File;
import java.util.List; import java.util.List;
@Data @Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
public class EmailEntity extends BaseEntity { public class EmailEntity extends BaseEntity {
/** /**
......
...@@ -36,7 +36,7 @@ public class FileController extends BaseController { ...@@ -36,7 +36,7 @@ public class FileController extends BaseController {
@GetMapping("/page") @GetMapping("/page")
public R getFilePage(Page page, FileEntity file) { public R getFilePage(Page page, FileEntity file) {
return R.ok().setData(fileService.page(page, null)); return R.ok().setData(fileService.page(page, Wrappers.query(file)));
} }
@PostMapping("/upload") @PostMapping("/upload")
......
...@@ -3,25 +3,19 @@ package cn.datax.service.system; ...@@ -3,25 +3,19 @@ package cn.datax.service.system;
import cn.datax.common.log.annotation.EnableDataLog; import cn.datax.common.log.annotation.EnableDataLog;
import cn.datax.common.mybatis.annotation.EnableDataMybatis; import cn.datax.common.mybatis.annotation.EnableDataMybatis;
import cn.datax.common.redis.annotation.EnableDataRedis; import cn.datax.common.redis.annotation.EnableDataRedis;
import cn.datax.common.security.annotation.EnableDataAuthExceptionHandler; import cn.datax.common.security.annotation.EnableDataSecurity;
import cn.datax.common.security.annotation.EnableDataServerProtect;
import org.springframework.boot.SpringApplication; import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.SpringCloudApplication;
import org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.openfeign.EnableFeignClients; import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.ComponentScan;
@EnableDataAuthExceptionHandler @EnableDataSecurity
@EnableDataServerProtect
@EnableDataMybatis @EnableDataMybatis
@EnableDataRedis @EnableDataRedis
@EnableDataLog @EnableDataLog
@EnableDiscoveryClient
@EnableCircuitBreaker
@EnableFeignClients @EnableFeignClients
@ComponentScan({"cn.datax"}) @ComponentScan(basePackages = {"cn.datax"})
@SpringBootApplication @SpringCloudApplication
public class DataxSystemApplication { public class DataxSystemApplication {
public static void main(String[] args) { public static void main(String[] args) {
......
...@@ -57,7 +57,8 @@ public class ResourceServerConfig extends ResourceServerConfigurerAdapter { ...@@ -57,7 +57,8 @@ public class ResourceServerConfig extends ResourceServerConfigurerAdapter {
"/swagger-ui.html", "/swagger-ui.html",
"/doc.html", "/doc.html",
"/swagger-resources/**", "/swagger-resources/**",
"/webjars/**").permitAll() "/webjars/**",
"/users/username/**").permitAll()
.anyRequest().authenticated() .anyRequest().authenticated()
.and().csrf().disable(); .and().csrf().disable();
} }
......
package cn.datax.service.system.controller; package cn.datax.service.system.controller;
import cn.datax.common.core.R; import cn.datax.common.core.R;
import cn.datax.common.security.annotation.DataInner;
import cn.datax.common.validate.ValidateGroupForSave; import cn.datax.common.validate.ValidateGroupForSave;
import cn.datax.common.validate.ValidateGroupForUpdate; import cn.datax.common.validate.ValidateGroupForUpdate;
import cn.datax.service.system.api.dto.UserDto; import cn.datax.service.system.api.dto.UserDto;
...@@ -17,6 +18,7 @@ import io.swagger.annotations.Api; ...@@ -17,6 +18,7 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
...@@ -31,6 +33,7 @@ import cn.datax.common.base.BaseController; ...@@ -31,6 +33,7 @@ import cn.datax.common.base.BaseController;
* @author yuwei * @author yuwei
* @since 2019-09-04 * @since 2019-09-04
*/ */
@Slf4j
@Api(value="系统管理接口", tags = {"系统管理"}) @Api(value="系统管理接口", tags = {"系统管理"})
@RestController @RestController
@RequestMapping("/users") @RequestMapping("/users")
...@@ -50,13 +53,14 @@ public class UserController extends BaseController { ...@@ -50,13 +53,14 @@ public class UserController extends BaseController {
return R.ok().setData(userMapper.toVO(userEntity)); return R.ok().setData(userMapper.toVO(userEntity));
} }
@DataInner
@ApiOperation(value = "获取用户详细信息", notes = "根据url的username来获取用户详细信息") @ApiOperation(value = "获取用户详细信息", notes = "根据url的username来获取用户详细信息")
@ApiImplicitParam(name = "username", value = "用户名", required = true, dataType = "String", paramType = "path") @ApiImplicitParam(name = "username", value = "用户名", required = true, dataType = "String", paramType = "path")
@GetMapping("/username/{username}") @GetMapping("/username/{username}")
public R getUserByUsername(@PathVariable String username) { public R getUserByUsername(@PathVariable String username) {
UserEntity userEntity = userService.getOne(Wrappers.<UserEntity>query() UserEntity userEntity = userService.getOne(Wrappers.<UserEntity>query()
.lambda().eq(UserEntity::getUsername, username)); .lambda().eq(UserEntity::getUsername, username));
return R.ok().setData(userEntity); return R.ok().setData(userMapper.toVO(userEntity));
} }
@ApiOperation(value = "用户分页查询", notes = "") @ApiOperation(value = "用户分页查询", notes = "")
......
...@@ -144,6 +144,7 @@ ...@@ -144,6 +144,7 @@
<plugin> <plugin>
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId> <artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration> <configuration>
<target>${maven.compiler.target}</target> <target>${maven.compiler.target}</target>
<source>${maven.compiler.source}</source> <source>${maven.compiler.source}</source>
...@@ -153,6 +154,7 @@ ...@@ -153,6 +154,7 @@
<plugin> <plugin>
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId> <artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M3</version>
<configuration> <configuration>
<skipTests>true</skipTests> <skipTests>true</skipTests>
</configuration> </configuration>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment