diff --git a/youlai-auth/pom.xml b/youlai-auth/pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..b975e32d57dcc3942aa419758fed5f00ca12253d --- /dev/null +++ b/youlai-auth/pom.xml @@ -0,0 +1,111 @@ + + + + youlai-mall + com.youlai + 1.0.0-SNAPSHOT + + 4.0.0 + youlai-mall-auth + + + + com.fly4j + yshop-common-db + ${yshop.version} + + + + com.fly4j + yshop-common-core + ${yshop.version} + + + + + org.springframework.cloud + spring-cloud-starter-netflix-eureka-server + + + + + org.springframework.cloud + spring-cloud-starter-oauth2 + + + + + org.springframework.cloud + spring-cloud-starter-config + + + + + org.springframework.boot + spring-boot-starter-web + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + com.spotify + docker-maven-plugin + 1.0.0 + + + + + + + + ${docker.image.prefix}/${project.artifactId} + + + latest + + + java + + ${docker.image.prefix} + + + /ROOT + + + ["java","-Djava.security.egd=file:/dev/./urandom","-jar","${project.build.finalName}.jar"] + + + + https://fly4j:2376 + C:\certs\docker\fly4j + + + + /ROOT + + ${project.build.directory} + + ${project.build.finalName}.jar + + + + + + + + + \ No newline at end of file diff --git a/youlai-auth/src/main/java/com/youlai/mall/auth/AuthApplication.java b/youlai-auth/src/main/java/com/youlai/mall/auth/AuthApplication.java new file mode 100644 index 0000000000000000000000000000000000000000..719b9fdcb67833271e374dfd405609790b26b4d6 --- /dev/null +++ b/youlai-auth/src/main/java/com/youlai/mall/auth/AuthApplication.java @@ -0,0 +1,15 @@ +package com.youlai.mall.auth; + + +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; + +@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class}) +@EnableDiscoveryClient +public class AuthApplication { + public static void main(String[] args) { + SpringApplication.run(AuthApplication.class,args); + } +} diff --git a/youlai-auth/src/main/java/com/youlai/mall/auth/config/AuthorizationServerConfig.java b/youlai-auth/src/main/java/com/youlai/mall/auth/config/AuthorizationServerConfig.java new file mode 100644 index 0000000000000000000000000000000000000000..604627a220f5aca050beaf3d521b14c5e20e1371 --- /dev/null +++ b/youlai-auth/src/main/java/com/youlai/mall/auth/config/AuthorizationServerConfig.java @@ -0,0 +1,83 @@ +package com.youlai.mall.auth.config; + +import com.alibaba.druid.pool.DruidDataSource; +import com.netflix.discovery.converters.Auto; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Primary; +import org.springframework.security.authentication.AuthenticationManager; +import org.springframework.security.core.userdetails.UserDetailsService; +import org.springframework.security.oauth2.config.annotation.configurers.ClientDetailsServiceConfigurer; +import org.springframework.security.oauth2.config.annotation.web.configuration.AuthorizationServerConfigurer; +import org.springframework.security.oauth2.config.annotation.web.configuration.EnableAuthorizationServer; +import org.springframework.security.oauth2.config.annotation.web.configurers.AuthorizationServerEndpointsConfigurer; +import org.springframework.security.oauth2.config.annotation.web.configurers.AuthorizationServerSecurityConfigurer; +import org.springframework.security.oauth2.provider.ClientDetailsService; +import org.springframework.security.oauth2.provider.client.JdbcClientDetailsService; +import org.springframework.security.oauth2.provider.token.DefaultTokenServices; +import org.springframework.security.oauth2.provider.token.TokenStore; +import org.springframework.security.oauth2.provider.token.store.JdbcTokenStore; + +import javax.sql.DataSource; + +@Configuration +@EnableAuthorizationServer +public class AuthorizationServerConfig implements AuthorizationServerConfigurer { + + @Autowired + private UserDetailsService userDetailsService; + + @Autowired + private AuthenticationManager authenticationManager; + + @Autowired + private DataSource dataSource; + + @Bean + public TokenStore jdbcTokenStore() { + return new JdbcTokenStore(dataSource); + } + + @Bean + public ClientDetailsService clientDetailsService() { + return new JdbcClientDetailsService(dataSource); + } + + @Override + public void configure(ClientDetailsServiceConfigurer clients) throws Exception { + clients.withClientDetails(clientDetailsService()); + } + + @Override + public void configure(AuthorizationServerEndpointsConfigurer endpoints) throws Exception { + endpoints.tokenStore(jdbcTokenStore()) + .userDetailsService(userDetailsService) + .authenticationManager(authenticationManager); + endpoints.tokenServices(defaultTokenServices()); + } + + + @Primary + @Bean + public DefaultTokenServices defaultTokenServices(){ + DefaultTokenServices tokenServices = new DefaultTokenServices(); + tokenServices.setTokenStore(jdbcTokenStore()); + tokenServices.setSupportRefreshToken(true); + // token有效期自定义设置,默认12小时 + tokenServices.setAccessTokenValiditySeconds(60*60*12); + // refresh_token默认30天 + tokenServices.setRefreshTokenValiditySeconds(60 * 60 * 24 * 7); + return tokenServices; + } + + @Override + public void configure(AuthorizationServerSecurityConfigurer security) throws Exception { + security + .allowFormAuthenticationForClients() + .tokenKeyAccess("permitAll()") // oauth/token_key公开 + .checkTokenAccess("permitAll()"); // oauth/check_token公开 + } + +} diff --git a/youlai-auth/src/main/java/com/youlai/mall/auth/config/CorsConfig.java b/youlai-auth/src/main/java/com/youlai/mall/auth/config/CorsConfig.java new file mode 100644 index 0000000000000000000000000000000000000000..f790cee9dc9f0cd65c01b6228ab801211dddb0f5 --- /dev/null +++ b/youlai-auth/src/main/java/com/youlai/mall/auth/config/CorsConfig.java @@ -0,0 +1,27 @@ +package com.youlai.mall.auth.config; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.core.Ordered; +import org.springframework.core.annotation.Order; +import org.springframework.web.cors.CorsConfiguration; +import org.springframework.web.cors.UrlBasedCorsConfigurationSource; +import org.springframework.web.filter.CorsFilter; + +@Configuration +@Order(Ordered.HIGHEST_PRECEDENCE) +public class CorsConfig { + + @Bean + public CorsFilter corsFilter() { + final UrlBasedCorsConfigurationSource urlBasedCorsConfigurationSource = new UrlBasedCorsConfigurationSource(); + final CorsConfiguration corsConfiguration = new CorsConfiguration(); + corsConfiguration.setAllowCredentials(true); + corsConfiguration.addAllowedOrigin("*"); + corsConfiguration.addAllowedHeader("*"); + corsConfiguration.addAllowedMethod("*"); + urlBasedCorsConfigurationSource.registerCorsConfiguration("/**", corsConfiguration); + return new CorsFilter(urlBasedCorsConfigurationSource); + } + +} diff --git a/youlai-auth/src/main/java/com/youlai/mall/auth/config/DruidConfig.java b/youlai-auth/src/main/java/com/youlai/mall/auth/config/DruidConfig.java new file mode 100644 index 0000000000000000000000000000000000000000..c3444c7eda525816c4206e0318d9d330430b54c9 --- /dev/null +++ b/youlai-auth/src/main/java/com/youlai/mall/auth/config/DruidConfig.java @@ -0,0 +1,16 @@ +package com.youlai.mall.auth.config; + +import com.alibaba.druid.pool.DruidDataSource; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.context.annotation.Bean; + +import javax.sql.DataSource; + +public class DruidConfig { + + @ConfigurationProperties(prefix = "spring.datasource") + @Bean + public DataSource druidDataSource() { + return new DruidDataSource(); + } +} diff --git a/youlai-auth/src/main/java/com/youlai/mall/auth/config/ResourceServerConfig.java b/youlai-auth/src/main/java/com/youlai/mall/auth/config/ResourceServerConfig.java new file mode 100644 index 0000000000000000000000000000000000000000..7d15c7a37ba3f9f35b258c0460eec6fffe03072d --- /dev/null +++ b/youlai-auth/src/main/java/com/youlai/mall/auth/config/ResourceServerConfig.java @@ -0,0 +1,28 @@ +package com.youlai.mall.auth.config; + + +import org.springframework.context.annotation.Configuration; +import org.springframework.http.HttpMethod; +import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity; +import org.springframework.security.config.annotation.web.builders.HttpSecurity; +import org.springframework.security.oauth2.config.annotation.web.configuration.EnableResourceServer; +import org.springframework.security.oauth2.config.annotation.web.configuration.ResourceServerConfigurerAdapter; + +@Configuration +@EnableResourceServer +@EnableGlobalMethodSecurity(prePostEnabled = true, securedEnabled = true, jsr250Enabled = true) +public class ResourceServerConfig extends ResourceServerConfigurerAdapter { + @Override + public void configure(HttpSecurity http) throws Exception { + http + //允许使用iframe 嵌套,避免swagger-ui 不被加载的问题 + .headers() + .frameOptions().disable() + .and() + .authorizeRequests() + .antMatchers(HttpMethod.GET, "/user/**").permitAll() + .anyRequest().authenticated() + .and() + .csrf().disable(); + } +} \ No newline at end of file diff --git a/youlai-auth/src/main/java/com/youlai/mall/auth/config/WebSecurityConfig.java b/youlai-auth/src/main/java/com/youlai/mall/auth/config/WebSecurityConfig.java new file mode 100644 index 0000000000000000000000000000000000000000..d71961efeb56e53d62d7888688970a01bd2ebe01 --- /dev/null +++ b/youlai-auth/src/main/java/com/youlai/mall/auth/config/WebSecurityConfig.java @@ -0,0 +1,59 @@ +package com.youlai.mall.auth.config; + +import com.youlai.mall.auth.config.service.UserDetailsServiceImpl; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.core.annotation.Order; +import org.springframework.http.HttpMethod; +import org.springframework.security.authentication.AuthenticationManager; +import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; +import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity; +import org.springframework.security.config.annotation.web.builders.HttpSecurity; +import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; +import org.springframework.security.core.userdetails.UserDetailsService; +import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; + +@Configuration +@EnableWebSecurity +@EnableGlobalMethodSecurity(prePostEnabled = true, securedEnabled = true, jsr250Enabled = true) +@Order(-1) +public class WebSecurityConfig extends WebSecurityConfigurerAdapter { + + @Bean + public BCryptPasswordEncoder passwordEncoder(){ + return new BCryptPasswordEncoder(); + } + + @Bean + @Override + protected AuthenticationManager authenticationManager() throws Exception { + return super.authenticationManager(); + } + + @Bean + @Override + public UserDetailsService userDetailsService() { + return new UserDetailsServiceImpl(); + } + + @Override + protected void configure(AuthenticationManagerBuilder auth) throws Exception { + auth.userDetailsService(userDetailsService()); + } + + + @Override + protected void configure(HttpSecurity http) throws Exception { + http.requestMatchers() + .antMatchers(HttpMethod.OPTIONS,"/oauth/token") + .and() + .cors() + .and() + .csrf() + .disable() + + .authorizeRequests().anyRequest().authenticated() + .and().csrf().disable(); + } +} diff --git a/youlai-auth/src/main/java/com/youlai/mall/auth/config/service/UserDetailsServiceImpl.java b/youlai-auth/src/main/java/com/youlai/mall/auth/config/service/UserDetailsServiceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..9fb08076221a002b05510a186f9ff520b024b527 --- /dev/null +++ b/youlai-auth/src/main/java/com/youlai/mall/auth/config/service/UserDetailsServiceImpl.java @@ -0,0 +1,52 @@ +package com.youlai.mall.auth.config.service; + +import com.youlai.mall.auth.entity.SysPermission; +import com.youlai.mall.auth.entity.SysUser; +import com.youlai.mall.auth.service.ISysPermissionService; +import com.youlai.mall.auth.service.ISysUserService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.core.GrantedAuthority; +import org.springframework.security.core.authority.SimpleGrantedAuthority; +import org.springframework.security.core.userdetails.User; +import org.springframework.security.core.userdetails.UserDetails; +import org.springframework.security.core.userdetails.UserDetailsService; +import org.springframework.security.core.userdetails.UsernameNotFoundException; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + + +/** + * 自定义用户认证和授权 + */ +@Service +public class UserDetailsServiceImpl implements UserDetailsService { + + @Autowired + private ISysUserService iSysUserService; + + @Autowired + private ISysPermissionService iSysPermissionService; + + @Override + public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException { + SysUser sysUser = iSysUserService.getByUserName(username); + List grantedAuthorities = new ArrayList<>(); + if (sysUser != null) { + List permissions = iSysPermissionService.getByUserId(sysUser.getUserId()); + if(permissions!=null){ + List perms = permissions.stream().map(item -> item.getPerms()).collect(Collectors.toList()); + perms.forEach(perm->{ + grantedAuthorities.add(new SimpleGrantedAuthority(perm)); + }); + } + } + return new User(sysUser.getUserName(),sysUser.getPassword(),true,true,true,true,grantedAuthorities); + } + + + + +} diff --git a/youlai-auth/src/main/java/com/youlai/mall/auth/controller/TokenController.java b/youlai-auth/src/main/java/com/youlai/mall/auth/controller/TokenController.java new file mode 100644 index 0000000000000000000000000000000000000000..28cfe452fc12005d6de4adfbc9be6ada0ee17e88 --- /dev/null +++ b/youlai-auth/src/main/java/com/youlai/mall/auth/controller/TokenController.java @@ -0,0 +1,47 @@ +package com.youlai.mall.auth.controller; + + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.api.R; +import com.youlai.mall.auth.entity.SysUser; +import com.youlai.mall.auth.service.ISysUserService; +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpHeaders; +import org.springframework.security.oauth2.common.OAuth2AccessToken; +import org.springframework.security.oauth2.provider.token.TokenStore; +import org.springframework.web.bind.annotation.*; + +import java.security.Principal; + +@RestController +@RequestMapping("/user") +public class TokenController { + + @Autowired + private TokenStore jdbcTokenStore; + + @Autowired + private ISysUserService iSysUserService; + + @GetMapping("/current") + public R current(Principal principal) { + String username = principal.getName(); + SysUser user = iSysUserService.getOne(new LambdaQueryWrapper().eq(SysUser::getUserName, username)); + return R.ok(user); + } + + @DeleteMapping("/logout") + public R logout(@RequestHeader(value = HttpHeaders.AUTHORIZATION, required = false) String authHeader) { + if (StringUtils.isBlank(authHeader)) { + return R.failed(""); + } + String tokenValue = authHeader.replace(OAuth2AccessToken.BEARER_TYPE.toLowerCase(), "").trim(); + OAuth2AccessToken oAuth2AccessToken = jdbcTokenStore.readAccessToken(tokenValue); + if (oAuth2AccessToken == null || StringUtils.isBlank(oAuth2AccessToken.getValue())) { + return R.failed(""); + } + jdbcTokenStore.removeAccessToken(oAuth2AccessToken); + return R.ok(null); + } +} diff --git a/youlai-auth/src/main/java/com/youlai/mall/auth/entity/SysPermission.java b/youlai-auth/src/main/java/com/youlai/mall/auth/entity/SysPermission.java new file mode 100644 index 0000000000000000000000000000000000000000..6232f63258189ae9f4d5848688b5d42ed54b2e41 --- /dev/null +++ b/youlai-auth/src/main/java/com/youlai/mall/auth/entity/SysPermission.java @@ -0,0 +1,17 @@ +package com.youlai.mall.auth.entity; + +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.experimental.Accessors; + +@Data +@TableName("sys_permission") +@Accessors(chain = true) +public class SysPermission { + + @TableId + private Long permissionId; + private String permissionName; + private String perms; +} diff --git a/youlai-auth/src/main/java/com/youlai/mall/auth/entity/SysUser.java b/youlai-auth/src/main/java/com/youlai/mall/auth/entity/SysUser.java new file mode 100644 index 0000000000000000000000000000000000000000..d7fdd6f172fd99981fc5d7a348942f03f0dee0a5 --- /dev/null +++ b/youlai-auth/src/main/java/com/youlai/mall/auth/entity/SysUser.java @@ -0,0 +1,28 @@ +package com.youlai.mall.auth.entity; + +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.experimental.Accessors; + +@Data +@TableName("sys_user") +@Accessors(chain = true) +public class SysUser extends BaseEntity { + + @TableId + private Long userId; + private String userName; + private String nickName; + private Integer sex; + private String password; + private String salt; + private Long deptId; + private String delFlag; + private Integer status; + private String avatarUrl; + private String tel; + private String email; + + +} diff --git a/youlai-auth/src/main/java/com/youlai/mall/auth/mapper/SysPermissionMapper.java b/youlai-auth/src/main/java/com/youlai/mall/auth/mapper/SysPermissionMapper.java new file mode 100644 index 0000000000000000000000000000000000000000..f730ac144872eb12a13cae45fba6552ddc8eebd0 --- /dev/null +++ b/youlai-auth/src/main/java/com/youlai/mall/auth/mapper/SysPermissionMapper.java @@ -0,0 +1,22 @@ +package com.youlai.mall.auth.mapper; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.youlai.mall.auth.entity.SysPermission; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Select; + +import java.util.List; + +@Mapper +public interface SysPermissionMapper extends BaseMapper { + + @Select("SELECT e.permission_id,e.permission_name, e.perms " + + " FROM sys_user a " + + " INNER JOIN sys_user_role b ON b.user_id = a.user_id " + + " INNER JOIN sys_role c ON c.role_id = b.role_id " + + " INNER JOIN sys_role_permission d ON d.role_id = c.role_id " + + " INNER JOIN sys_permission e ON e.permission_id = d.permission_id " + + " WHERE a.user_id =#{userId}") + List selectByUserId(Long userId); +} diff --git a/youlai-auth/src/main/java/com/youlai/mall/auth/mapper/SysUserMapper.java b/youlai-auth/src/main/java/com/youlai/mall/auth/mapper/SysUserMapper.java new file mode 100644 index 0000000000000000000000000000000000000000..92cdca73d7fe28e726ca7057c9a0241154388a3d --- /dev/null +++ b/youlai-auth/src/main/java/com/youlai/mall/auth/mapper/SysUserMapper.java @@ -0,0 +1,11 @@ +package com.youlai.mall.auth.mapper; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.youlai.mall.auth.entity.SysUser; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface SysUserMapper extends BaseMapper { + +} diff --git a/youlai-auth/src/main/java/com/youlai/mall/auth/service/ISysPermissionService.java b/youlai-auth/src/main/java/com/youlai/mall/auth/service/ISysPermissionService.java new file mode 100644 index 0000000000000000000000000000000000000000..1043a194df665f841b07a327ecbeb8d3a96708aa --- /dev/null +++ b/youlai-auth/src/main/java/com/youlai/mall/auth/service/ISysPermissionService.java @@ -0,0 +1,10 @@ +package com.youlai.mall.auth.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.youlai.mall.auth.entity.SysPermission; + +import java.util.List; + +public interface ISysPermissionService extends IService { + List getByUserId(Long userId); +} diff --git a/youlai-auth/src/main/java/com/youlai/mall/auth/service/ISysUserService.java b/youlai-auth/src/main/java/com/youlai/mall/auth/service/ISysUserService.java new file mode 100644 index 0000000000000000000000000000000000000000..731fa8d75ab8d2c881cb7d0885805d9680af7bd5 --- /dev/null +++ b/youlai-auth/src/main/java/com/youlai/mall/auth/service/ISysUserService.java @@ -0,0 +1,8 @@ +package com.youlai.mall.auth.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.youlai.mall.auth.entity.SysUser; + +public interface ISysUserService extends IService { + SysUser getByUserName(String username); +} diff --git a/youlai-auth/src/main/java/com/youlai/mall/auth/service/impl/SysPermissionServiceImpl.java b/youlai-auth/src/main/java/com/youlai/mall/auth/service/impl/SysPermissionServiceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..7028c430676f3f93bb78bf1108eabdb5b9d72fa5 --- /dev/null +++ b/youlai-auth/src/main/java/com/youlai/mall/auth/service/impl/SysPermissionServiceImpl.java @@ -0,0 +1,17 @@ +package com.youlai.mall.auth.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.youlai.mall.auth.entity.SysPermission; +import com.youlai.mall.auth.mapper.SysPermissionMapper; +import com.youlai.mall.auth.service.ISysPermissionService; +import org.springframework.stereotype.Service; +import java.util.List; + +@Service +public class SysPermissionServiceImpl extends ServiceImpl implements ISysPermissionService { + + @Override + public List getByUserId(Long userId) { + return this.baseMapper.selectByUserId(userId); + } +} diff --git a/youlai-auth/src/main/java/com/youlai/mall/auth/service/impl/SysUserServiceImpl.java b/youlai-auth/src/main/java/com/youlai/mall/auth/service/impl/SysUserServiceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..cbe768cce27a1c3dac3927328b367cb746da4f5f --- /dev/null +++ b/youlai-auth/src/main/java/com/youlai/mall/auth/service/impl/SysUserServiceImpl.java @@ -0,0 +1,18 @@ +package com.youlai.mall.auth.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.youlai.mall.auth.entity.SysUser; +import com.youlai.mall.auth.mapper.SysUserMapper; +import com.youlai.mall.auth.service.ISysUserService; +import org.springframework.stereotype.Service; + +@Service +public class SysUserServiceImpl extends ServiceImpl implements ISysUserService { + + @Override + public SysUser getByUserName(String username) { + SysUser sysUser = this.baseMapper.selectOne(new LambdaQueryWrapper().eq(SysUser::getUserName, username)); + return sysUser; + } +} diff --git a/youlai-auth/src/main/resources/bootstrap.yml b/youlai-auth/src/main/resources/bootstrap.yml new file mode 100644 index 0000000000000000000000000000000000000000..8aba15978dd385b47f5744c552fccd3da67aa2a9 --- /dev/null +++ b/youlai-auth/src/main/resources/bootstrap.yml @@ -0,0 +1,9 @@ +spring: + main: + allow-bean-definition-overriding: true + application: + name: yshop-auth + cloud: + config: + uri: http://101.37.69.49:8888 + name: ${spring.application.name} diff --git a/youlai-gateway/pom.xml b/youlai-gateway/pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..a1e57e32663f20b1e106243ae16fcac54e2e2d34 --- /dev/null +++ b/youlai-gateway/pom.xml @@ -0,0 +1,85 @@ + + + + yshop + com.fly4j + 1.0.0-SNAPSHOT + + 4.0.0 + + yshop-gateway + + + + org.springframework.cloud + spring-cloud-starter-netflix-eureka-server + + + org.springframework.cloud + spring-cloud-starter-netflix-zuul + + + org.springframework.cloud + spring-cloud-starter-config + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + com.spotify + docker-maven-plugin + 1.0.0 + + + + build-image + package + + build + + + + + + + ${docker.image.prefix}/${project.artifactId} + + + latest + + + java + + ${docker.image.prefix} + + + /ROOT + + ["java","-Djava.security.egd=file:/dev/./urandom","-jar","${project.build.finalName}.jar"] + + + https://fly4k:2376 + C:\certs\docker\fly4k + + + + /ROOT + + ${project.build.directory} + + ${project.build.finalName}.jar + + + + + + + + \ No newline at end of file diff --git a/youlai-gateway/src/main/resources/bootstrap-dev.yml b/youlai-gateway/src/main/resources/bootstrap-dev.yml new file mode 100644 index 0000000000000000000000000000000000000000..29b0307e2151542616efaff85cedced080140402 --- /dev/null +++ b/youlai-gateway/src/main/resources/bootstrap-dev.yml @@ -0,0 +1,7 @@ +spring: + application: + name: yshop-gateway + cloud: + config: + uri: http://localhost:8888 + name: ${spring.application.name} diff --git a/youlai-gateway/src/main/resources/bootstrap-prod.yml b/youlai-gateway/src/main/resources/bootstrap-prod.yml new file mode 100644 index 0000000000000000000000000000000000000000..c4ce0277d62b00dc382b113dedd41ce6d4b179ea --- /dev/null +++ b/youlai-gateway/src/main/resources/bootstrap-prod.yml @@ -0,0 +1,7 @@ +spring: + application: + name: yshop-gateway + cloud: + config: + uri: http://101.37.69.49:8888 + name: ${spring.application.name} diff --git a/youlai-gateway/src/main/resources/bootstrap.yml b/youlai-gateway/src/main/resources/bootstrap.yml new file mode 100644 index 0000000000000000000000000000000000000000..2b97da3b36caedde2dbba2fafbeffd2c0a213112 --- /dev/null +++ b/youlai-gateway/src/main/resources/bootstrap.yml @@ -0,0 +1,9 @@ +spring: + application: + name: yshop-gateway + cloud: + config: + uri: http://101.37.69.49:8888 + name: ${spring.application.name} + profiles: + active: dev