From e1fa3582ea1046ea1dd92d76f25ad1352091eaa1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E6=98=A5=E5=85=89?= <1992lcg@163.com> Date: Sat, 29 Dec 2018 18:36:03 +0800 Subject: [PATCH 01/11] pass --- clouddo-admin/pom.xml | 297 +++++++++--------- .../clouddoadmin/config/AuthConfig.java | 34 +- .../config/Oauth2ServiceConfig.java | 64 ++++ .../config/ResourceServerConfig.java | 26 ++ .../config/SecurityConfigurerAdapter.java | 45 +++ .../controller/UserController.java | 6 + .../service/impl/UserDetailsServiceImpl.java | 23 ++ clouddo-base/pom.xml | 5 + .../clouddobase/ClouddoBaseApplication.java | 7 + .../config/ResourceServerConfig.java | 38 +++ .../clouddobase/controller/LogController.java | 2 + .../controller/UserController.java | 19 ++ .../src/main/resources/application.yml | 12 +- clouddo-common/pom.xml | 17 +- .../OAuth2FeignRequestInterceptor.java | 35 +++ clouddo-zuul/pom.xml | 7 + .../clouddozuul/ClouddoZuulApplication.java | 1 + .../clouddozuul/filter/AccessFilter.java | 48 +-- .../src/main/resources/application.yml | 9 + 19 files changed, 504 insertions(+), 191 deletions(-) create mode 100644 clouddo-admin/src/main/java/com/bootdo/clouddoadmin/config/Oauth2ServiceConfig.java create mode 100644 clouddo-admin/src/main/java/com/bootdo/clouddoadmin/config/ResourceServerConfig.java create mode 100644 clouddo-admin/src/main/java/com/bootdo/clouddoadmin/config/SecurityConfigurerAdapter.java create mode 100644 clouddo-admin/src/main/java/com/bootdo/clouddoadmin/service/impl/UserDetailsServiceImpl.java create mode 100644 clouddo-base/src/main/java/com/bootdo/clouddobase/config/ResourceServerConfig.java create mode 100644 clouddo-base/src/main/java/com/bootdo/clouddobase/controller/UserController.java create mode 100644 clouddo-common/src/main/java/com/bootdo/clouddocommon/intercepter/OAuth2FeignRequestInterceptor.java diff --git a/clouddo-admin/pom.xml b/clouddo-admin/pom.xml index 823d693..d407900 100644 --- a/clouddo-admin/pom.xml +++ b/clouddo-admin/pom.xml @@ -1,156 +1,167 @@ - 4.0.0 - - com.bootdo - clouddo-admin - 0.0.1-SNAPSHOT - jar - - clouddo-admin - Demo project for Spring Boot - - - org.springframework.boot - spring-boot-starter-parent - 2.0.4.RELEASE - - - - - UTF-8 - UTF-8 - 1.8 - Finchley.SR1 - 1.1.0.Final - - - - - org.springframework.cloud - spring-cloud-starter-netflix-eureka-server - - - - org.springframework.boot - spring-boot-starter-test - test - - - mysql - mysql-connector-java - - - org.mybatis - mybatis - 3.4.4 - - - - org.mybatis.spring.boot - mybatis-spring-boot-starter - 1.1.1 - - - - org.apache.shiro - shiro-core - 1.3.2 - - - - com.alibaba - fastjson - 1.2.42 - - - - io.jsonwebtoken - jjwt - 0.7.0 - - - - - org.springframework.boot - spring-boot-starter-websocket - - - org.springframework - spring-context-support - + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + 4.0.0 + + com.bootdo + clouddo-admin + 0.0.1-SNAPSHOT + jar + + clouddo-admin + Demo project for Spring Boot + + + org.springframework.boot + spring-boot-starter-parent + 2.0.4.RELEASE + + + + + UTF-8 + UTF-8 + 1.8 + Finchley.SR1 + 1.1.0.Final + + + + + org.springframework.cloud + spring-cloud-starter-netflix-eureka-server + + + + org.springframework.boot + spring-boot-starter-test + test + + + mysql + mysql-connector-java + + + org.mybatis + mybatis + 3.4.4 + + + + org.mybatis.spring.boot + mybatis-spring-boot-starter + 1.1.1 + + + + org.apache.shiro + shiro-core + 1.3.2 + + + + com.alibaba + fastjson + 1.2.42 + + + + io.jsonwebtoken + jjwt + 0.7.0 + + + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework + spring-context-support + com.bootdo clouddo-common 0.0.1-SNAPSHOT - - org.springframework.boot - spring-boot-starter-security - - - - net.sf.ehcache - ehcache - - - - - org.mapstruct - mapstruct-jdk8 - ${org.mapstruct.version} - - - org.mapstruct - mapstruct - ${org.mapstruct.version} - - - org.mapstruct - mapstruct-processor - ${org.mapstruct.version} - provided - + + + + + + net.sf.ehcache + ehcache + + + + + org.mapstruct + mapstruct-jdk8 + ${org.mapstruct.version} + + + org.mapstruct + mapstruct + ${org.mapstruct.version} + + + org.mapstruct + mapstruct-processor + ${org.mapstruct.version} + provided + + + org.springframework.cloud + spring-cloud-starter-security + + + org.springframework.cloud + spring-cloud-starter-oauth2 + + + org.springframework.boot + spring-boot-starter-redis + - - - - org.springframework.cloud - spring-cloud-dependencies - ${spring-cloud.version} - pom - import - - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - org.apache.maven.plugins - maven-compiler-plugin - 3.6.1 - - 1.8 - 1.8 - - - org.mapstruct - mapstruct-processor - ${org.mapstruct.version} - - - - - - + + + + org.springframework.cloud + spring-cloud-dependencies + ${spring-cloud.version} + pom + import + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + org.apache.maven.plugins + maven-compiler-plugin + 3.6.1 + + 1.8 + 1.8 + + + org.mapstruct + mapstruct-processor + ${org.mapstruct.version} + + + + + + diff --git a/clouddo-admin/src/main/java/com/bootdo/clouddoadmin/config/AuthConfig.java b/clouddo-admin/src/main/java/com/bootdo/clouddoadmin/config/AuthConfig.java index 0e14b9a..c9335c1 100644 --- a/clouddo-admin/src/main/java/com/bootdo/clouddoadmin/config/AuthConfig.java +++ b/clouddo-admin/src/main/java/com/bootdo/clouddoadmin/config/AuthConfig.java @@ -9,21 +9,21 @@ import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter @Configuration public class AuthConfig extends WebMvcConfigurerAdapter { - @Bean - public AuthIntercepter authIntercepter() { - return new AuthIntercepter(); - } - - @Override - public void addInterceptors(InterceptorRegistry registry) { - InterceptorRegistration addInterceptor = registry.addInterceptor(authIntercepter()); - - // 排除配置 - addInterceptor.excludePathPatterns("/error"); - addInterceptor.excludePathPatterns("/login**"); - addInterceptor.excludePathPatterns("/test**"); - - // 拦截配置 - addInterceptor.addPathPatterns("/**"); - } +// @Bean +// public AuthIntercepter authIntercepter() { +// return new AuthIntercepter(); +// } +// +// @Override +// public void addInterceptors(InterceptorRegistry registry) { +// InterceptorRegistration addInterceptor = registry.addInterceptor(authIntercepter()); +// +// // 排除配置 +// addInterceptor.excludePathPatterns("/error"); +// addInterceptor.excludePathPatterns("/login**"); +// addInterceptor.excludePathPatterns("/test**"); +// +// // 拦截配置 +// addInterceptor.addPathPatterns("/**"); +// } } diff --git a/clouddo-admin/src/main/java/com/bootdo/clouddoadmin/config/Oauth2ServiceConfig.java b/clouddo-admin/src/main/java/com/bootdo/clouddoadmin/config/Oauth2ServiceConfig.java new file mode 100644 index 0000000..953f5be --- /dev/null +++ b/clouddo-admin/src/main/java/com/bootdo/clouddoadmin/config/Oauth2ServiceConfig.java @@ -0,0 +1,64 @@ +package com.bootdo.clouddoadmin.config; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.security.authentication.AuthenticationManager; +import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; +import org.springframework.security.oauth2.config.annotation.configurers.ClientDetailsServiceConfigurer; +import org.springframework.security.oauth2.config.annotation.web.configuration.AuthorizationServerConfigurerAdapter; +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.token.store.JdbcTokenStore; +import org.springframework.security.oauth2.provider.token.store.redis.RedisTokenStore; + +import javax.sql.DataSource; + +/** + * @author bootdo + */ +@Configuration +@EnableAuthorizationServer +public class Oauth2ServiceConfig extends AuthorizationServerConfigurerAdapter { + @Autowired + AuthenticationManager authenticationManager; + + @Autowired + DataSource dataSource; + @Override + public void configure(ClientDetailsServiceConfigurer clients) throws Exception { + clients.inMemory() + .withClient("app") + .scopes("app") + .authorizedGrantTypes("password","authorization_code", "refresh_token") + .secret(new BCryptPasswordEncoder().encode("123456")); + } + + @Override + public void configure(AuthorizationServerEndpointsConfigurer endpoints) throws Exception { + endpoints.authenticationManager(authenticationManager); + endpoints.tokenStore(jdbcTokenStore()); + } + + JdbcTokenStore jdbcTokenStore(){ + return new JdbcTokenStore(dataSource); + } + +// @Bean +// RedisTokenStore redisTokenStore(){ +// return new RedisTokenStore(connectionFactory); +// } + + @Override + public void configure(AuthorizationServerSecurityConfigurer security) throws Exception { + security + // 开启/oauth/token_key验证端口无权限访问 + .tokenKeyAccess("permitAll()") + // 开启/oauth/check_token验证端口认证权限访问 + .checkTokenAccess("isAuthenticated()") + .allowFormAuthenticationForClients(); + } + + +} diff --git a/clouddo-admin/src/main/java/com/bootdo/clouddoadmin/config/ResourceServerConfig.java b/clouddo-admin/src/main/java/com/bootdo/clouddoadmin/config/ResourceServerConfig.java new file mode 100644 index 0000000..c5efcad --- /dev/null +++ b/clouddo-admin/src/main/java/com/bootdo/clouddoadmin/config/ResourceServerConfig.java @@ -0,0 +1,26 @@ +package com.bootdo.clouddoadmin.config; + +import org.springframework.context.annotation.Configuration; +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; + +import javax.servlet.http.HttpServletResponse; + +@Configuration +@EnableResourceServer +public class ResourceServerConfig extends ResourceServerConfigurerAdapter { + + @Override + public void configure(HttpSecurity http) throws Exception { + http + .csrf().disable() + .exceptionHandling() + .authenticationEntryPoint((request, response, authException) -> response.sendError(HttpServletResponse.SC_UNAUTHORIZED)) + .and() + .authorizeRequests() + .anyRequest().authenticated() + .and() + .httpBasic(); + } +} \ No newline at end of file diff --git a/clouddo-admin/src/main/java/com/bootdo/clouddoadmin/config/SecurityConfigurerAdapter.java b/clouddo-admin/src/main/java/com/bootdo/clouddoadmin/config/SecurityConfigurerAdapter.java new file mode 100644 index 0000000..2e2115c --- /dev/null +++ b/clouddo-admin/src/main/java/com/bootdo/clouddoadmin/config/SecurityConfigurerAdapter.java @@ -0,0 +1,45 @@ +package com.bootdo.clouddoadmin.config; + + +import com.bootdo.clouddoadmin.service.impl.UserDetailImpl; +import com.bootdo.clouddoadmin.service.impl.UserServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.security.authentication.AuthenticationManager; +import org.springframework.security.config.BeanIds; +import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; +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; +import org.springframework.security.crypto.password.PasswordEncoder; + +@Configuration +@EnableWebSecurity +public class SecurityConfigurerAdapter extends WebSecurityConfigurerAdapter { + + @Autowired + UserDetailImpl userDetail; + + @Bean(name = BeanIds.AUTHENTICATION_MANAGER) + @Override + public AuthenticationManager authenticationManagerBean() throws Exception { + return super.authenticationManagerBean(); + } + + + @Override + protected void configure(AuthenticationManagerBuilder auth) throws Exception { + auth + .userDetailsService(userDetail) + .passwordEncoder(passwordEncoder()); + + } + + + @Bean + PasswordEncoder passwordEncoder(){ + return new BCryptPasswordEncoder(); + } +} diff --git a/clouddo-admin/src/main/java/com/bootdo/clouddoadmin/controller/UserController.java b/clouddo-admin/src/main/java/com/bootdo/clouddoadmin/controller/UserController.java index 31380ce..09fa806 100644 --- a/clouddo-admin/src/main/java/com/bootdo/clouddoadmin/controller/UserController.java +++ b/clouddo-admin/src/main/java/com/bootdo/clouddoadmin/controller/UserController.java @@ -22,6 +22,7 @@ import org.springframework.ui.Model; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; +import java.security.Principal; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -125,4 +126,9 @@ public class UserController extends BaseController { // 存在,不通过,false return !userService.exits(params); } + + @GetMapping("/tokenUser") + public Principal user(Principal user){ + return user; + } } diff --git a/clouddo-admin/src/main/java/com/bootdo/clouddoadmin/service/impl/UserDetailsServiceImpl.java b/clouddo-admin/src/main/java/com/bootdo/clouddoadmin/service/impl/UserDetailsServiceImpl.java new file mode 100644 index 0000000..dba3857 --- /dev/null +++ b/clouddo-admin/src/main/java/com/bootdo/clouddoadmin/service/impl/UserDetailsServiceImpl.java @@ -0,0 +1,23 @@ +package com.bootdo.clouddoadmin.service.impl; + +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.security.crypto.bcrypt.BCryptPasswordEncoder; +import org.springframework.stereotype.Component; + +import java.util.HashSet; + +/** + * @author bootdo + */ +@Component +public class UserDetailsServiceImpl implements UserDetailsService { + @Override + public UserDetails loadUserByUsername(String s) throws UsernameNotFoundException { + + return new User("a",new BCryptPasswordEncoder().encode("b"),new HashSet<>()); + } + +} diff --git a/clouddo-base/pom.xml b/clouddo-base/pom.xml index 6990c63..4dba6ed 100644 --- a/clouddo-base/pom.xml +++ b/clouddo-base/pom.xml @@ -63,6 +63,11 @@ clouddo-common 0.0.1-SNAPSHOT + + + org.springframework.cloud + spring-cloud-starter-oauth2 + diff --git a/clouddo-base/src/main/java/com/bootdo/clouddobase/ClouddoBaseApplication.java b/clouddo-base/src/main/java/com/bootdo/clouddobase/ClouddoBaseApplication.java index 2595ae7..3ec410b 100644 --- a/clouddo-base/src/main/java/com/bootdo/clouddobase/ClouddoBaseApplication.java +++ b/clouddo-base/src/main/java/com/bootdo/clouddobase/ClouddoBaseApplication.java @@ -3,7 +3,14 @@ package com.bootdo.clouddobase; import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.autoconfigure.security.oauth2.client.EnableOAuth2Sso; +import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity; +/** + * @author bootdo + */ +@EnableOAuth2Sso +@EnableGlobalMethodSecurity(prePostEnabled = true) @MapperScan(basePackages = {"com.bootdo.*.dao"}) @SpringBootApplication public class ClouddoBaseApplication { diff --git a/clouddo-base/src/main/java/com/bootdo/clouddobase/config/ResourceServerConfig.java b/clouddo-base/src/main/java/com/bootdo/clouddobase/config/ResourceServerConfig.java new file mode 100644 index 0000000..fcdeab7 --- /dev/null +++ b/clouddo-base/src/main/java/com/bootdo/clouddobase/config/ResourceServerConfig.java @@ -0,0 +1,38 @@ +package com.bootdo.clouddobase.config; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.core.annotation.Order; +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; +import org.springframework.web.context.request.RequestContextListener; + +import javax.servlet.http.HttpServletResponse; + +@Configuration +@EnableResourceServer +public class ResourceServerConfig extends ResourceServerConfigurerAdapter { + + @Override + public void configure(HttpSecurity http) throws Exception { + http + .csrf().disable() + .antMatcher("/**") + .exceptionHandling() + .authenticationEntryPoint((request, response, authException) -> response.sendError(HttpServletResponse.SC_UNAUTHORIZED)) + .and() + .authorizeRequests() + .anyRequest().authenticated() + .and() + .httpBasic(); + } + + @Bean + @Order(0) + public RequestContextListener requestContextListener() { + return new RequestContextListener(); + } + + +} \ No newline at end of file diff --git a/clouddo-base/src/main/java/com/bootdo/clouddobase/controller/LogController.java b/clouddo-base/src/main/java/com/bootdo/clouddobase/controller/LogController.java index 71762af..555217d 100644 --- a/clouddo-base/src/main/java/com/bootdo/clouddobase/controller/LogController.java +++ b/clouddo-base/src/main/java/com/bootdo/clouddobase/controller/LogController.java @@ -50,4 +50,6 @@ public class LogController { } return R.error(); } + + } diff --git a/clouddo-base/src/main/java/com/bootdo/clouddobase/controller/UserController.java b/clouddo-base/src/main/java/com/bootdo/clouddobase/controller/UserController.java new file mode 100644 index 0000000..5843546 --- /dev/null +++ b/clouddo-base/src/main/java/com/bootdo/clouddobase/controller/UserController.java @@ -0,0 +1,19 @@ +package com.bootdo.clouddobase.controller; + +import org.aspectj.weaver.ast.HasAnnotation; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.security.Principal; + +@RestController +@RequestMapping +public class UserController { + @GetMapping("user") + @PreAuthorize("hasAuthority('query-demo')") + public Principal user(Principal user){ + return user; + } +} diff --git a/clouddo-base/src/main/resources/application.yml b/clouddo-base/src/main/resources/application.yml index 4cedf53..f373aed 100644 --- a/clouddo-base/src/main/resources/application.yml +++ b/clouddo-base/src/main/resources/application.yml @@ -12,4 +12,14 @@ spring: mybatis: mapper-locations: mapper/**Mapper.xml configuration: - map-underscore-to-camel-case: true \ No newline at end of file + map-underscore-to-camel-case: true +security: + oauth2: + client: + access-token-uri: http://localhost:8005/oauth/token + user-authorization-uri: http://localhost:8005/oauth/authorize + client-id: app + clientAuthenticationScheme: form + resource: + user-info-uri: http://localhost:8005/user/tokenUser + prefer-token-info: false \ No newline at end of file diff --git a/clouddo-common/pom.xml b/clouddo-common/pom.xml index ec6e2cc..09b3de3 100644 --- a/clouddo-common/pom.xml +++ b/clouddo-common/pom.xml @@ -81,6 +81,11 @@ RELEASE + + org.springframework.cloud + spring-cloud-starter-oauth2 + + @@ -96,13 +101,13 @@ - - - - - + + + + + - + diff --git a/clouddo-common/src/main/java/com/bootdo/clouddocommon/intercepter/OAuth2FeignRequestInterceptor.java b/clouddo-common/src/main/java/com/bootdo/clouddocommon/intercepter/OAuth2FeignRequestInterceptor.java new file mode 100644 index 0000000..ccaf0a7 --- /dev/null +++ b/clouddo-common/src/main/java/com/bootdo/clouddocommon/intercepter/OAuth2FeignRequestInterceptor.java @@ -0,0 +1,35 @@ +//package com.bootdo.clouddocommon.intercepter; +// +//import feign.RequestInterceptor; +//import feign.RequestTemplate; +//import org.springframework.security.oauth2.client.OAuth2RestTemplate; +// +//public class OAuth2FeignRequestInterceptor implements RequestInterceptor { +// +// private static final String AUTHORIZATION_HEADER = "Authorization"; +// +// private static final String BEARER_TOKEN_TYPE = "bearer"; +// +// private final OAuth2RestTemplate oAuth2RestTemplate; +// +// +// /** +// * Instantiates a new O auth 2 feign request interceptor. +// * +// * @param oAuth2RestTemplate the o auth 2 rest template +// */ +// OAuth2FeignRequestInterceptor(OAuth2RestTemplate oAuth2RestTemplate) { +// this.oAuth2RestTemplate = oAuth2RestTemplate; +// } +// +// /** +// * Apply. +// * +// * @param template the template +// */ +// @Override +// public void apply(RequestTemplate template) { +// template.header(AUTHORIZATION_HEADER, String.format("%s %s", BEARER_TOKEN_TYPE, oAuth2RestTemplate.getAccessToken().toString())); +// +// } +//} \ No newline at end of file diff --git a/clouddo-zuul/pom.xml b/clouddo-zuul/pom.xml index 15f25a5..6780ed3 100644 --- a/clouddo-zuul/pom.xml +++ b/clouddo-zuul/pom.xml @@ -25,6 +25,7 @@ Finchley.SR1 + org.springframework.cloud @@ -40,6 +41,12 @@ spring-cloud-starter-openfeign + + + + + + io.jsonwebtoken jjwt diff --git a/clouddo-zuul/src/main/java/com/bootdo/clouddozuul/ClouddoZuulApplication.java b/clouddo-zuul/src/main/java/com/bootdo/clouddozuul/ClouddoZuulApplication.java index 9fb8901..8fe1a37 100644 --- a/clouddo-zuul/src/main/java/com/bootdo/clouddozuul/ClouddoZuulApplication.java +++ b/clouddo-zuul/src/main/java/com/bootdo/clouddozuul/ClouddoZuulApplication.java @@ -11,6 +11,7 @@ import org.springframework.web.cors.CorsConfiguration; import org.springframework.web.cors.UrlBasedCorsConfigurationSource; import org.springframework.web.filter.CorsFilter; +//@EnableOAuth2Sso @EnableFeignClients @EnableZuulProxy @EnableEurekaClient diff --git a/clouddo-zuul/src/main/java/com/bootdo/clouddozuul/filter/AccessFilter.java b/clouddo-zuul/src/main/java/com/bootdo/clouddozuul/filter/AccessFilter.java index 1ddf169..383b4d7 100644 --- a/clouddo-zuul/src/main/java/com/bootdo/clouddozuul/filter/AccessFilter.java +++ b/clouddo-zuul/src/main/java/com/bootdo/clouddozuul/filter/AccessFilter.java @@ -52,30 +52,30 @@ public class AccessFilter extends ZuulFilter { @Override public Object run() { RequestContext ctx = RequestContext.getCurrentContext(); - HttpServletRequest request = ctx.getRequest(); - final String requestUri = request.getRequestURI(); - if (isStartWith(requestUri)) { - return null; - } - String accessToken = request.getHeader(CommonConstants.CONTEXT_TOKEN); - if(null == accessToken || accessToken == ""){ - accessToken = request.getParameter(CommonConstants.TOKEN); - } - if (null == accessToken) { - setFailedRequest(R.error401(), 200); - return null; - } - try { - UserToken userToken = JwtUtils.getInfoFromToken(accessToken); - } catch (Exception e) { - setFailedRequest(R.error401(), 200); - return null; - } - FilterContextHandler.setToken(accessToken); - if(!havePermission(request)){ - setFailedRequest(R.error403(), 200); - return null; - } +// HttpServletRequest request = ctx.getRequest(); +// final String requestUri = request.getRequestURI(); +// if (isStartWith(requestUri)) { +// return null; +// } +// String accessToken = request.getHeader(CommonConstants.CONTEXT_TOKEN); +// if(null == accessToken || accessToken == ""){ +// accessToken = request.getParameter(CommonConstants.TOKEN); +// } +// if (null == accessToken) { +// setFailedRequest(R.error401(), 200); +// return null; +// } +// try { +// UserToken userToken = JwtUtils.getInfoFromToken(accessToken); +// } catch (Exception e) { +// setFailedRequest(R.error401(), 200); +// return null; +// } +// FilterContextHandler.setToken(accessToken); +// if(!havePermission(request)){ +// setFailedRequest(R.error403(), 200); +// return null; +// } Set headers = (Set) ctx.get("ignoredHeaders"); //We need our JWT tokens relayed to resource servers //添加自己header diff --git a/clouddo-zuul/src/main/resources/application.yml b/clouddo-zuul/src/main/resources/application.yml index 0fc5810..e72dc6c 100644 --- a/clouddo-zuul/src/main/resources/application.yml +++ b/clouddo-zuul/src/main/resources/application.yml @@ -14,6 +14,15 @@ spring: ribbon: ReadTimeout: 60000 ConnectTimeout: 60000 +security: + oauth2: + client: + access-token-uri: http://localhost:8005/oauth/token + user-authorization-uri: http://localhost:8005/oauth/authorize + client-id: app + resource: + user-info-uri: http://localhost:8005/user + prefer-token-info: false -- Gitee From 98d4c8eb526b3555e1170535040a2c56f4be27aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E6=98=A5=E5=85=89?= <1992lcg@163.com> Date: Thu, 17 Jan 2019 17:16:05 +0800 Subject: [PATCH 02/11] =?UTF-8?q?oauth2=E9=89=B4=E6=9D=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bootdo/clouddoadmin/config/SecurityConfigurerAdapter.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/clouddo-admin/src/main/java/com/bootdo/clouddoadmin/config/SecurityConfigurerAdapter.java b/clouddo-admin/src/main/java/com/bootdo/clouddoadmin/config/SecurityConfigurerAdapter.java index 2e2115c..433a80a 100644 --- a/clouddo-admin/src/main/java/com/bootdo/clouddoadmin/config/SecurityConfigurerAdapter.java +++ b/clouddo-admin/src/main/java/com/bootdo/clouddoadmin/config/SecurityConfigurerAdapter.java @@ -1,7 +1,6 @@ package com.bootdo.clouddoadmin.config; -import com.bootdo.clouddoadmin.service.impl.UserDetailImpl; import com.bootdo.clouddoadmin.service.impl.UserServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; @@ -20,7 +19,7 @@ import org.springframework.security.crypto.password.PasswordEncoder; public class SecurityConfigurerAdapter extends WebSecurityConfigurerAdapter { @Autowired - UserDetailImpl userDetail; + UserDetailsService userDetail; @Bean(name = BeanIds.AUTHENTICATION_MANAGER) @Override -- Gitee From 941770479907f56002e5e0ab05d3a69ef207d72d Mon Sep 17 00:00:00 2001 From: lcg0124 <1992lcg@163.com> Date: Tue, 29 Jan 2019 17:46:37 +0800 Subject: [PATCH 03/11] gitignore --- .gitignore | 1 - 1 file changed, 1 deletion(-) diff --git a/.gitignore b/.gitignore index 697ec7d..3e9140c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,3 @@ - /.idea/ /clouddo.iml /clouddo-*/clouddo-*.iml -- Gitee From b8a1c7548cd613d81b7b37798f3f7df377b4adea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E6=98=A5=E5=85=89?= <1992lcg@163.com> Date: Wed, 20 Feb 2019 14:51:44 +0800 Subject: [PATCH 04/11] =?UTF-8?q?=E5=AE=8C=E5=96=84oauth2=E9=89=B4?= =?UTF-8?q?=E6=9D=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/MenuController.java | 58 +++++++++++-------- .../clouddoadmin/secuity/CurrentUser.java | 23 ++++++++ .../service/impl/UserDetailsServiceImpl.java | 22 +++++-- .../clouddoadmin/utils/SecuityUtils.java | 13 +++++ 4 files changed, 88 insertions(+), 28 deletions(-) create mode 100644 clouddo-admin/src/main/java/com/bootdo/clouddoadmin/secuity/CurrentUser.java create mode 100644 clouddo-admin/src/main/java/com/bootdo/clouddoadmin/utils/SecuityUtils.java diff --git a/clouddo-admin/src/main/java/com/bootdo/clouddoadmin/controller/MenuController.java b/clouddo-admin/src/main/java/com/bootdo/clouddoadmin/controller/MenuController.java index 1dcab5d..2e319c3 100644 --- a/clouddo-admin/src/main/java/com/bootdo/clouddoadmin/controller/MenuController.java +++ b/clouddo-admin/src/main/java/com/bootdo/clouddoadmin/controller/MenuController.java @@ -3,6 +3,7 @@ package com.bootdo.clouddoadmin.controller; import com.bootdo.clouddoadmin.domain.MenuDO; import com.bootdo.clouddoadmin.domain.Tree; import com.bootdo.clouddoadmin.service.MenuService; +import com.bootdo.clouddoadmin.utils.SecuityUtils; import com.bootdo.clouddocommon.annotation.Log; import com.bootdo.clouddocommon.context.FilterContextHandler; import com.bootdo.clouddocommon.dto.MenuDTO; @@ -24,13 +25,20 @@ public class MenuController { @Autowired MenuService menuService; + @Log("获取当前用户的菜单") + @GetMapping("currentUserMenus") + R currentUserMenus() { + return R.ok().put("currentUserMenus",menuService.RouterDTOsByUserId(SecuityUtils.getCurrentUser().getId())); + } + @Log("访问菜单") @GetMapping("tree") - Tree tree(){ + Tree tree() { return menuService.getTree(); } + @GetMapping - List> list(){ + List> list() { return menuService.getTree().getChildren(); } @@ -47,30 +55,31 @@ public class MenuController { } @PutMapping() - R update(@RequestBody MenuDO menuDO){ - if(menuService.update(menuDO)>0){ + R update(@RequestBody MenuDO menuDO) { + if (menuService.update(menuDO) > 0) { return R.ok(); } - return R.error(); + return R.error(); } + @PostMapping - R save(@RequestBody MenuDO menuDO){ - return R.operate(menuService.save(menuDO)>0); + R save(@RequestBody MenuDO menuDO) { + return R.operate(menuService.save(menuDO) > 0); } @DeleteMapping() - R remove(Long id){ - if(menuService.remove(id)>0){ + R remove(Long id) { + if (menuService.remove(id) > 0) { return R.ok(); } return R.error(); } @GetMapping("userMenus") - List userMenus(){ + List userMenus() { List menuDOS = menuService.userMenus(Long.parseLong(FilterContextHandler.getUserID())); List menuDTOS = new ArrayList<>(); - for (MenuDO menuDO:menuDOS){ + for (MenuDO menuDO : menuDOS) { MenuDTO menuDTO = new MenuDTO(); menuDTO.setMenuId(menuDO.getMenuId()); menuDTO.setUrl(menuDO.getUrl()); @@ -81,26 +90,27 @@ public class MenuController { } @GetMapping("clearCache") - R clearCache(){ + R clearCache() { Boolean flag = menuService.clearCache(Long.parseLong(FilterContextHandler.getUserID())); - if (flag){ - return R.ok(); + if (flag) { + return R.ok(); } return R.error(); } - /** - * 当前用户菜单的树形结构 - * @return - */ - @RequestMapping("/currentUserMenus") - List> currentUserMenus() { - List> menus = menuService.listMenuTree(Long.parseLong(FilterContextHandler.getUserID())); - return menus; - } +// /** +// * 当前用户菜单的树形结构 +// * +// * @return +// */ +// @RequestMapping("/currentUserMenus") +// List> currentUserMenus() { +// List> menus = menuService.listMenuTree(Long.parseLong(FilterContextHandler.getUserID())); +// return menus; +// } @GetMapping("/roleId") - List menuIdsByRoleId(Long roleId){ + List menuIdsByRoleId(Long roleId) { return menuService.MenuIdsByRoleId(roleId); } } diff --git a/clouddo-admin/src/main/java/com/bootdo/clouddoadmin/secuity/CurrentUser.java b/clouddo-admin/src/main/java/com/bootdo/clouddoadmin/secuity/CurrentUser.java new file mode 100644 index 0000000..b9feeee --- /dev/null +++ b/clouddo-admin/src/main/java/com/bootdo/clouddoadmin/secuity/CurrentUser.java @@ -0,0 +1,23 @@ +package com.bootdo.clouddoadmin.secuity; + +import org.springframework.security.core.GrantedAuthority; +import org.springframework.security.core.userdetails.User; + +import java.util.Collection; + +public class CurrentUser extends User { + public CurrentUser(String username, String password, Long id, Collection authorities) { + super(username, password, authorities); + setId(id); + } + + private Long id; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } +} diff --git a/clouddo-admin/src/main/java/com/bootdo/clouddoadmin/service/impl/UserDetailsServiceImpl.java b/clouddo-admin/src/main/java/com/bootdo/clouddoadmin/service/impl/UserDetailsServiceImpl.java index dba3857..ce2bf9e 100644 --- a/clouddo-admin/src/main/java/com/bootdo/clouddoadmin/service/impl/UserDetailsServiceImpl.java +++ b/clouddo-admin/src/main/java/com/bootdo/clouddoadmin/service/impl/UserDetailsServiceImpl.java @@ -1,5 +1,10 @@ package com.bootdo.clouddoadmin.service.impl; +import com.bootdo.clouddoadmin.dao.UserDao; +import com.bootdo.clouddoadmin.domain.UserDO; +import com.bootdo.clouddoadmin.secuity.CurrentUser; +import com.bootdo.clouddocommon.exception.CDException; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.core.userdetails.User; import org.springframework.security.core.userdetails.UserDetails; import org.springframework.security.core.userdetails.UserDetailsService; @@ -7,17 +12,26 @@ import org.springframework.security.core.userdetails.UsernameNotFoundException; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.stereotype.Component; +import java.util.HashMap; import java.util.HashSet; +import java.util.List; /** * @author bootdo */ @Component public class UserDetailsServiceImpl implements UserDetailsService { - @Override - public UserDetails loadUserByUsername(String s) throws UsernameNotFoundException { + @Autowired + UserDao userDao; - return new User("a",new BCryptPasswordEncoder().encode("b"),new HashSet<>()); + @Override + public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException { + List userDOS = userDao.list(new HashMap() {{ + put("username", username); + }}); + if (userDOS.size() < 1) { + throw new CDException("用户名或密码错误!"); + } + return new CurrentUser(username, userDOS.get(0).getPassword(), userDOS.get(0).getUserId(), new HashSet<>()); } - } diff --git a/clouddo-admin/src/main/java/com/bootdo/clouddoadmin/utils/SecuityUtils.java b/clouddo-admin/src/main/java/com/bootdo/clouddoadmin/utils/SecuityUtils.java new file mode 100644 index 0000000..7bb01c8 --- /dev/null +++ b/clouddo-admin/src/main/java/com/bootdo/clouddoadmin/utils/SecuityUtils.java @@ -0,0 +1,13 @@ +package com.bootdo.clouddoadmin.utils; + +import com.bootdo.clouddoadmin.secuity.CurrentUser; +import org.springframework.security.core.context.SecurityContextHolder; +import org.springframework.security.core.userdetails.UserDetails; + +public class SecuityUtils { + public static CurrentUser getCurrentUser() { + return (CurrentUser) SecurityContextHolder.getContext() + .getAuthentication() + .getPrincipal(); + } +} -- Gitee From f6eab449d02e69eb5ea251bdac8837475de2f919 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E6=98=A5=E5=85=89?= <1992lcg@163.com> Date: Wed, 20 Feb 2019 15:57:20 +0800 Subject: [PATCH 05/11] =?UTF-8?q?=E5=AE=8C=E5=96=84oauth2=E9=89=B4?= =?UTF-8?q?=E6=9D=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../clouddocommon/exception/CDException.java | 10 ++++ clouddo-zuul/pom.xml | 10 ++-- .../controller/LoginController.java | 50 +++++++++---------- .../clouddozuul/filter/AccessFilter.java | 46 ----------------- .../clouddozuul/prc/admin/MenuService.java | 32 ++++++------ .../ClouddoZuulApplicationTests.java | 42 ++++++++-------- 6 files changed, 76 insertions(+), 114 deletions(-) create mode 100644 clouddo-common/src/main/java/com/bootdo/clouddocommon/exception/CDException.java diff --git a/clouddo-common/src/main/java/com/bootdo/clouddocommon/exception/CDException.java b/clouddo-common/src/main/java/com/bootdo/clouddocommon/exception/CDException.java new file mode 100644 index 0000000..3eeefd6 --- /dev/null +++ b/clouddo-common/src/main/java/com/bootdo/clouddocommon/exception/CDException.java @@ -0,0 +1,10 @@ +package com.bootdo.clouddocommon.exception; + +/** + * @author bootdo + */ +public class CDException extends RuntimeException { + public CDException(String message) { + super(message); + } +} diff --git a/clouddo-zuul/pom.xml b/clouddo-zuul/pom.xml index 6780ed3..88ca065 100644 --- a/clouddo-zuul/pom.xml +++ b/clouddo-zuul/pom.xml @@ -58,11 +58,11 @@ spring-boot-starter-test test - - com.bootdo - clouddo-common - 0.0.1-SNAPSHOT - + + + + + org.springframework.cloud diff --git a/clouddo-zuul/src/main/java/com/bootdo/clouddozuul/controller/LoginController.java b/clouddo-zuul/src/main/java/com/bootdo/clouddozuul/controller/LoginController.java index acde117..a0b2e6e 100644 --- a/clouddo-zuul/src/main/java/com/bootdo/clouddozuul/controller/LoginController.java +++ b/clouddo-zuul/src/main/java/com/bootdo/clouddozuul/controller/LoginController.java @@ -1,26 +1,24 @@ -package com.bootdo.clouddozuul.controller; - -import com.bootdo.clouddocommon.constants.CommonConstants; -import com.bootdo.clouddocommon.context.FilterContextHandler; -import com.bootdo.clouddocommon.dto.MenuDTO; -import com.bootdo.clouddozuul.prc.admin.MenuService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RestController; - -import javax.servlet.http.HttpServletRequest; -import java.util.List; - -/** - * @version V1.0 - */ -@RestController -public class LoginController { - @Autowired - MenuService menuService; - @GetMapping({"/test"}) - List login(HttpServletRequest request) { - FilterContextHandler.setToken(request.getHeader(CommonConstants.CONTEXT_TOKEN)); - return menuService.userMenus(); - } -} +//package com.bootdo.clouddozuul.controller; +// +// +//import com.netflix.discovery.CommonConstants; +//import org.springframework.beans.factory.annotation.Autowired; +//import org.springframework.web.bind.annotation.GetMapping; +//import org.springframework.web.bind.annotation.RestController; +// +//import javax.servlet.http.HttpServletRequest; +//import java.util.List; +// +///** +// * @version V1.0 +// */ +//@RestController +//public class LoginController { +// @Autowired +// MenuService menuService; +// @GetMapping({"/test"}) +// List login(HttpServletRequest request) { +// FilterContextHandler.setToken(request.getHeader(CommonConstants.CONTEXT_TOKEN)); +// return menuService.userMenus(); +// } +//} diff --git a/clouddo-zuul/src/main/java/com/bootdo/clouddozuul/filter/AccessFilter.java b/clouddo-zuul/src/main/java/com/bootdo/clouddozuul/filter/AccessFilter.java index 383b4d7..766562c 100644 --- a/clouddo-zuul/src/main/java/com/bootdo/clouddozuul/filter/AccessFilter.java +++ b/clouddo-zuul/src/main/java/com/bootdo/clouddozuul/filter/AccessFilter.java @@ -1,14 +1,5 @@ package com.bootdo.clouddozuul.filter; -import com.bootdo.clouddocommon.constants.CommonConstants; -import com.bootdo.clouddocommon.context.FilterContextHandler; -import com.bootdo.clouddocommon.dto.MenuDTO; -import com.bootdo.clouddocommon.dto.UserToken; -import com.bootdo.clouddocommon.utils.JSONUtils; -import com.bootdo.clouddocommon.utils.JwtUtils; -import com.bootdo.clouddocommon.utils.R; -import com.bootdo.clouddocommon.utils.StringUtils; -import com.bootdo.clouddozuul.prc.admin.MenuService; import com.netflix.zuul.ZuulFilter; import com.netflix.zuul.context.RequestContext; import org.springframework.beans.factory.annotation.Autowired; @@ -27,8 +18,6 @@ import java.util.Set; * @Author bootdo 1992lcg@163.com */ public class AccessFilter extends ZuulFilter { - @Autowired - MenuService menuService; private String ignorePath = "/api-admin/login"; @@ -90,40 +79,5 @@ public class AccessFilter extends ZuulFilter { // return null; } - private void setFailedRequest(Object body, int code) { - RequestContext ctx = RequestContext.getCurrentContext(); - ctx.setResponseStatusCode(code); - HttpServletResponse response = ctx.getResponse(); - PrintWriter out = null; - try{ - out = response.getWriter(); - out.write(JSONUtils.beanToJson(body)); - out.flush(); - }catch(IOException e){ - e.printStackTrace(); - } - ctx.setSendZuulResponse(false); - } - - private boolean havePermission(HttpServletRequest request){ - String currentURL = request.getRequestURI(); - List menuDTOS = menuService.userMenus(); - for(MenuDTO menuDTO:menuDTOS){ - if(currentURL!=null&&null!=menuDTO.getUrl()&¤tURL.startsWith(menuDTO.getUrl())){ - return true; - } - } - return false; - } - - private boolean isStartWith(String requestUri) { - boolean flag = false; - for (String s : ignorePath.split(",")) { - if (requestUri.startsWith(s)) { - return true; - } - } - return flag; - } } diff --git a/clouddo-zuul/src/main/java/com/bootdo/clouddozuul/prc/admin/MenuService.java b/clouddo-zuul/src/main/java/com/bootdo/clouddozuul/prc/admin/MenuService.java index 9937ca4..1b45b42 100644 --- a/clouddo-zuul/src/main/java/com/bootdo/clouddozuul/prc/admin/MenuService.java +++ b/clouddo-zuul/src/main/java/com/bootdo/clouddozuul/prc/admin/MenuService.java @@ -1,16 +1,16 @@ -package com.bootdo.clouddozuul.prc.admin; - -import com.bootdo.clouddocommon.dto.MenuDTO; -import com.bootdo.clouddocommon.intercepter.FeignIntercepter; -import feign.Headers; -import org.springframework.cloud.openfeign.FeignClient; -import org.springframework.web.bind.annotation.GetMapping; - -import java.util.List; - -@Headers("Content-Type:application/json") -@FeignClient(name = "api-admin", configuration = FeignIntercepter.class) -public interface MenuService { - @GetMapping("/menu/userMenus") - List userMenus(); -} +//package com.bootdo.clouddozuul.prc.admin; +// +//import com.bootdo.clouddocommon.dto.MenuDTO; +//import com.bootdo.clouddocommon.intercepter.FeignIntercepter; +//import feign.Headers; +//import org.springframework.cloud.openfeign.FeignClient; +//import org.springframework.web.bind.annotation.GetMapping; +// +//import java.util.List; +// +//@Headers("Content-Type:application/json") +//@FeignClient(name = "api-admin", configuration = FeignIntercepter.class) +//public interface MenuService { +// @GetMapping("/menu/userMenus") +// List userMenus(); +//} diff --git a/clouddo-zuul/src/test/java/com/bootdo/clouddozuul/ClouddoZuulApplicationTests.java b/clouddo-zuul/src/test/java/com/bootdo/clouddozuul/ClouddoZuulApplicationTests.java index 4128322..b1693ca 100644 --- a/clouddo-zuul/src/test/java/com/bootdo/clouddozuul/ClouddoZuulApplicationTests.java +++ b/clouddo-zuul/src/test/java/com/bootdo/clouddozuul/ClouddoZuulApplicationTests.java @@ -1,21 +1,21 @@ -package com.bootdo.clouddozuul; - -import com.bootdo.clouddozuul.prc.admin.MenuService; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -@SpringBootTest -public class ClouddoZuulApplicationTests { - @Autowired - MenuService menuService; - - @Test - public void contextLoads() { - menuService.userMenus(); - } - -} +//package com.bootdo.clouddozuul; +// +//import com.bootdo.clouddozuul.prc.admin.MenuService; +//import org.junit.Test; +//import org.junit.runner.RunWith; +//import org.springframework.beans.factory.annotation.Autowired; +//import org.springframework.boot.test.context.SpringBootTest; +//import org.springframework.test.context.junit4.SpringRunner; +// +//@RunWith(SpringRunner.class) +//@SpringBootTest +//public class ClouddoZuulApplicationTests { +// @Autowired +// MenuService menuService; +// +// @Test +// public void contextLoads() { +// menuService.userMenus(); +// } +// +//} -- Gitee From 64129763d1533a47342b4b488e1ae41ca7cf23b0 Mon Sep 17 00:00:00 2001 From: itshixun/lichunguang Date: Mon, 25 Mar 2019 10:26:02 +0800 Subject: [PATCH 06/11] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=94=99=E8=AF=AF?= =?UTF-8?q?=E6=97=A5=E5=BF=97=E6=B2=A1=E6=9C=89=E6=89=93=E5=8D=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../clouddocommon/exception/CommonExceptionHandler.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/clouddo-common/src/main/java/com/bootdo/clouddocommon/exception/CommonExceptionHandler.java b/clouddo-common/src/main/java/com/bootdo/clouddocommon/exception/CommonExceptionHandler.java index a354bb5..76ea4e5 100644 --- a/clouddo-common/src/main/java/com/bootdo/clouddocommon/exception/CommonExceptionHandler.java +++ b/clouddo-common/src/main/java/com/bootdo/clouddocommon/exception/CommonExceptionHandler.java @@ -1,13 +1,18 @@ package com.bootdo.clouddocommon.exception; import com.bootdo.clouddocommon.utils.R; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.RestControllerAdvice; @RestControllerAdvice public class CommonExceptionHandler { + private Logger logger = LoggerFactory.getLogger(getClass()); + @ExceptionHandler(Exception.class) R exception(Exception e) { + logger.error(e.getMessage(), e); return R.error(500, e.getMessage()); } } -- Gitee From 2637026cb1251ef27ed7d45ead326ee931ca18c9 Mon Sep 17 00:00:00 2001 From: itshixun/lichunguang Date: Mon, 25 Mar 2019 10:30:48 +0800 Subject: [PATCH 07/11] =?UTF-8?q?=E7=99=BB=E5=BD=95=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- clouddo-admin/pom.xml | 5 +---- .../bootdo/clouddoadmin/service/impl/MenuServiceImpl.java | 8 +------- .../clouddoadmin/service/impl/UserDetailsServiceImpl.java | 8 +++++++- 3 files changed, 9 insertions(+), 12 deletions(-) diff --git a/clouddo-admin/pom.xml b/clouddo-admin/pom.xml index d407900..05d182e 100644 --- a/clouddo-admin/pom.xml +++ b/clouddo-admin/pom.xml @@ -120,10 +120,7 @@ org.springframework.cloud spring-cloud-starter-oauth2 - - org.springframework.boot - spring-boot-starter-redis - + diff --git a/clouddo-admin/src/main/java/com/bootdo/clouddoadmin/service/impl/MenuServiceImpl.java b/clouddo-admin/src/main/java/com/bootdo/clouddoadmin/service/impl/MenuServiceImpl.java index f8388b2..bf82d1d 100644 --- a/clouddo-admin/src/main/java/com/bootdo/clouddoadmin/service/impl/MenuServiceImpl.java +++ b/clouddo-admin/src/main/java/com/bootdo/clouddoadmin/service/impl/MenuServiceImpl.java @@ -154,13 +154,7 @@ public class MenuServiceImpl implements MenuService { @Override public Set listPerms(Long userId) { List perms = menuMapper.listUserPerms(userId); - Set permsSet = new HashSet<>(); - for (String perm : perms) { - if (StringUtils.isNotBlank(perm)) { - permsSet.addAll(Arrays.asList(perm.trim().split(","))); - } - } - return permsSet; + return new HashSet<>(perms); } /** diff --git a/clouddo-admin/src/main/java/com/bootdo/clouddoadmin/service/impl/UserDetailsServiceImpl.java b/clouddo-admin/src/main/java/com/bootdo/clouddoadmin/service/impl/UserDetailsServiceImpl.java index ce2bf9e..7918467 100644 --- a/clouddo-admin/src/main/java/com/bootdo/clouddoadmin/service/impl/UserDetailsServiceImpl.java +++ b/clouddo-admin/src/main/java/com/bootdo/clouddoadmin/service/impl/UserDetailsServiceImpl.java @@ -3,6 +3,7 @@ package com.bootdo.clouddoadmin.service.impl; import com.bootdo.clouddoadmin.dao.UserDao; import com.bootdo.clouddoadmin.domain.UserDO; import com.bootdo.clouddoadmin.secuity.CurrentUser; +import com.bootdo.clouddoadmin.service.MenuService; import com.bootdo.clouddocommon.exception.CDException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.core.userdetails.User; @@ -15,6 +16,7 @@ import org.springframework.stereotype.Component; import java.util.HashMap; import java.util.HashSet; import java.util.List; +import java.util.Set; /** * @author bootdo @@ -23,6 +25,8 @@ import java.util.List; public class UserDetailsServiceImpl implements UserDetailsService { @Autowired UserDao userDao; + @Autowired + MenuService menuService; @Override public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException { @@ -32,6 +36,8 @@ public class UserDetailsServiceImpl implements UserDetailsService { if (userDOS.size() < 1) { throw new CDException("用户名或密码错误!"); } - return new CurrentUser(username, userDOS.get(0).getPassword(), userDOS.get(0).getUserId(), new HashSet<>()); + UserDO userDO = userDOS.get(0); + Set perms = menuService.listPerms(userDO.getUserId()); + return new CurrentUser(username, userDO.getPassword(), userDO.getUserId(), new HashSet<>()); } } -- Gitee From 3bcf44e81e108245fea0042fae6d14b435ddd946 Mon Sep 17 00:00:00 2001 From: itshixun/lichunguang Date: Mon, 1 Apr 2019 11:22:31 +0800 Subject: [PATCH 08/11] =?UTF-8?q?oauth2=E5=89=8D=E5=90=8E=E7=AB=AF?= =?UTF-8?q?=E8=81=94=E8=B0=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- clouddo-admin/clouddo.sql | 138 +++++++++++++++++- .../controller/LoginController.java | 18 ++- .../controller/RoleController.java | 2 + .../service/impl/UserDetailsServiceImpl.java | 13 +- 4 files changed, 155 insertions(+), 16 deletions(-) diff --git a/clouddo-admin/clouddo.sql b/clouddo-admin/clouddo.sql index 6d3daf9..f544620 100644 --- a/clouddo-admin/clouddo.sql +++ b/clouddo-admin/clouddo.sql @@ -2,19 +2,42 @@ Navicat MySQL Data Transfer Source Server : localhost -Source Server Version : 50721 +Source Server Version : 50725 Source Host : localhost:3306 Source Database : clouddo Target Server Type : MYSQL -Target Server Version : 50721 +Target Server Version : 50725 File Encoding : 65001 -Date: 2018-05-25 15:34:34 +Date: 2019-03-27 15:56:01 */ SET FOREIGN_KEY_CHECKS=0; +-- ---------------------------- +-- Table structure for `clientdetails` +-- ---------------------------- +DROP TABLE IF EXISTS `clientdetails`; +CREATE TABLE `clientdetails` ( + `appId` varchar(128) NOT NULL, + `resourceIds` varchar(256) DEFAULT NULL, + `appSecret` varchar(256) DEFAULT NULL, + `scope` varchar(256) DEFAULT NULL, + `grantTypes` varchar(256) DEFAULT NULL, + `redirectUrl` varchar(256) DEFAULT NULL, + `authorities` varchar(256) DEFAULT NULL, + `access_token_validity` int(11) DEFAULT NULL, + `refresh_token_validity` int(11) DEFAULT NULL, + `additionalInformation` varchar(4096) DEFAULT NULL, + `autoApproveScopes` varchar(256) DEFAULT NULL, + PRIMARY KEY (`appId`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- ---------------------------- +-- Records of clientdetails +-- ---------------------------- + -- ---------------------------- -- Table structure for `cms_file` -- ---------------------------- @@ -34,6 +57,111 @@ INSERT INTO `cms_file` VALUES ('144', '1', 'http://localhost:8004/files/11/20/9f INSERT INTO `cms_file` VALUES ('145', '1', 'http://localhost:8004/files/45/44/26f1385f-c227-482a-84ad-4d97ee25ef0d', '2018-05-25 15:20:29'); INSERT INTO `cms_file` VALUES ('146', '1', 'http://localhost:8004/files/99/45/c8ea7174-1ebb-4c7c-864d-8a1defa57ff8', '2018-05-25 15:21:16'); +-- ---------------------------- +-- Table structure for `oauth_access_token` +-- ---------------------------- +DROP TABLE IF EXISTS `oauth_access_token`; +CREATE TABLE `oauth_access_token` ( + `token_id` varchar(256) DEFAULT NULL, + `token` blob, + `authentication_id` varchar(128) NOT NULL, + `user_name` varchar(256) DEFAULT NULL, + `client_id` varchar(256) DEFAULT NULL, + `authentication` blob, + `refresh_token` varchar(256) DEFAULT NULL, + PRIMARY KEY (`authentication_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- ---------------------------- +-- Records of oauth_access_token +-- ---------------------------- +INSERT INTO `oauth_access_token` VALUES ('d659bad9c980a1af0025e06271c6e063', 0xACED0005737200436F72672E737072696E676672616D65776F726B2E73656375726974792E6F61757468322E636F6D6D6F6E2E44656661756C744F4175746832416363657373546F6B656E0CB29E361B24FACE0200064C00156164646974696F6E616C496E666F726D6174696F6E74000F4C6A6176612F7574696C2F4D61703B4C000A65787069726174696F6E7400104C6A6176612F7574696C2F446174653B4C000C72656672657368546F6B656E74003F4C6F72672F737072696E676672616D65776F726B2F73656375726974792F6F61757468322F636F6D6D6F6E2F4F417574683252656672657368546F6B656E3B4C000573636F706574000F4C6A6176612F7574696C2F5365743B4C0009746F6B656E547970657400124C6A6176612F6C616E672F537472696E673B4C000576616C756571007E000578707372001E6A6176612E7574696C2E436F6C6C656374696F6E7324456D7074794D6170593614855ADCE7D002000078707372000E6A6176612E7574696C2E44617465686A81014B5974190300007870770800000169C0B8501C787372004C6F72672E737072696E676672616D65776F726B2E73656375726974792E6F61757468322E636F6D6D6F6E2E44656661756C744578706972696E674F417574683252656672657368546F6B656E2FDF47639DD0C9B70200014C000A65787069726174696F6E71007E0002787200446F72672E737072696E676672616D65776F726B2E73656375726974792E6F61757468322E636F6D6D6F6E2E44656661756C744F417574683252656672657368546F6B656E73E10E0A6354D45E0200014C000576616C756571007E0005787074002465616562333335342D633833302D346331662D623132632D6262613264643337366230617371007E000977080000016A58A3EA1878737200256A6176612E7574696C2E436F6C6C656374696F6E7324556E6D6F6469666961626C65536574801D92D18F9B80550200007872002C6A6176612E7574696C2E436F6C6C656374696F6E7324556E6D6F6469666961626C65436F6C6C656374696F6E19420080CB5EF71E0200014C0001637400164C6A6176612F7574696C2F436F6C6C656374696F6E3B7870737200176A6176612E7574696C2E4C696E6B656448617368536574D86CD75A95DD2A1E020000787200116A6176612E7574696C2E48617368536574BA44859596B8B7340300007870770C000000103F400000000000017400036170707874000662656172657274002465323234633531322D303839392D343638382D393736622D313734363061643032346637, 'b9cdd625a781099755dfb47c3de1e150', 'admin', 'app', 0xACED0005737200416F72672E737072696E676672616D65776F726B2E73656375726974792E6F61757468322E70726F76696465722E4F417574683241757468656E7469636174696F6EBD400B02166252130200024C000D73746F7265645265717565737474003C4C6F72672F737072696E676672616D65776F726B2F73656375726974792F6F61757468322F70726F76696465722F4F4175746832526571756573743B4C00127573657241757468656E7469636174696F6E7400324C6F72672F737072696E676672616D65776F726B2F73656375726974792F636F72652F41757468656E7469636174696F6E3B787200476F72672E737072696E676672616D65776F726B2E73656375726974792E61757468656E7469636174696F6E2E416273747261637441757468656E7469636174696F6E546F6B656ED3AA287E6E47640E0200035A000D61757468656E746963617465644C000B617574686F7269746965737400164C6A6176612F7574696C2F436F6C6C656374696F6E3B4C000764657461696C737400124C6A6176612F6C616E672F4F626A6563743B787000737200266A6176612E7574696C2E436F6C6C656374696F6E7324556E6D6F6469666961626C654C697374FC0F2531B5EC8E100200014C00046C6973747400104C6A6176612F7574696C2F4C6973743B7872002C6A6176612E7574696C2E436F6C6C656374696F6E7324556E6D6F6469666961626C65436F6C6C656374696F6E19420080CB5EF71E0200014C00016371007E00047870737200136A6176612E7574696C2E41727261794C6973747881D21D99C7619D03000149000473697A657870000000007704000000007871007E000C707372003A6F72672E737072696E676672616D65776F726B2E73656375726974792E6F61757468322E70726F76696465722E4F41757468325265717565737400000000000000010200075A0008617070726F7665644C000B617574686F72697469657371007E00044C000A657874656E73696F6E7374000F4C6A6176612F7574696C2F4D61703B4C000B72656469726563745572697400124C6A6176612F6C616E672F537472696E673B4C00077265667265736874003B4C6F72672F737072696E676672616D65776F726B2F73656375726974792F6F61757468322F70726F76696465722F546F6B656E526571756573743B4C000B7265736F7572636549647374000F4C6A6176612F7574696C2F5365743B4C000D726573706F6E7365547970657371007E0011787200386F72672E737072696E676672616D65776F726B2E73656375726974792E6F61757468322E70726F76696465722E426173655265717565737436287A3EA37169BD0200034C0008636C69656E74496471007E000F4C001172657175657374506172616D657465727371007E000E4C000573636F706571007E00117870740003617070737200256A6176612E7574696C2E436F6C6C656374696F6E7324556E6D6F6469666961626C654D6170F1A5A8FE74F507420200014C00016D71007E000E7870737200116A6176612E7574696C2E486173684D61700507DAC1C31660D103000246000A6C6F6164466163746F724900097468726573686F6C6478703F400000000000067708000000080000000374000A6772616E745F7479706574000870617373776F7264740009636C69656E745F6964740003617070740008757365726E616D6574000561646D696E78737200256A6176612E7574696C2E436F6C6C656374696F6E7324556E6D6F6469666961626C65536574801D92D18F9B80550200007871007E0009737200176A6176612E7574696C2E4C696E6B656448617368536574D86CD75A95DD2A1E020000787200116A6176612E7574696C2E48617368536574BA44859596B8B7340300007870770C000000103F4000000000000171007E001478017371007E0022770C000000103F40000000000000787371007E00173F40000000000000770800000010000000007870707371007E0022770C000000103F40000000000000787371007E0022770C000000103F40000000000000787372004F6F72672E737072696E676672616D65776F726B2E73656375726974792E61757468656E7469636174696F6E2E557365726E616D6550617373776F726441757468656E7469636174696F6E546F6B656E00000000000001F40200024C000B63726564656E7469616C7371007E00054C00097072696E636970616C71007E00057871007E0003017371007E00077371007E000B000000007704000000007871007E002B737200176A6176612E7574696C2E4C696E6B6564486173684D617034C04E5C106CC0FB0200015A000B6163636573734F726465727871007E00173F400000000000067708000000080000000474000D636C69656E745F73656372657474000631323334353671007E001971007E001A71007E001B71007E001C71007E001D71007E001E7800707372002B636F6D2E626F6F74646F2E636C6F7564646F61646D696E2E736563756974792E43757272656E7455736572A0F6D8499537099B0200014C000269647400104C6A6176612F6C616E672F4C6F6E673B787200326F72672E737072696E676672616D65776F726B2E73656375726974792E636F72652E7573657264657461696C732E5573657200000000000001F40200075A00116163636F756E744E6F6E457870697265645A00106163636F756E744E6F6E4C6F636B65645A001563726564656E7469616C734E6F6E457870697265645A0007656E61626C65644C000B617574686F72697469657371007E00114C000870617373776F726471007E000F4C0008757365726E616D6571007E000F7870010101017371007E001F737200116A6176612E7574696C2E54726565536574DD98509395ED875B0300007870737200466F72672E737072696E676672616D65776F726B2E73656375726974792E636F72652E7573657264657461696C732E5573657224417574686F72697479436F6D70617261746F7200000000000001F40200007870770400000000787071007E001E7372000E6A6176612E6C616E672E4C6F6E673B8BE490CC8F23DF0200014A000576616C7565787200106A6176612E6C616E672E4E756D62657286AC951D0B94E08B02000078700000000000000001, '47023366984f5c1fce7e9453bc0c7113'); + +-- ---------------------------- +-- Table structure for `oauth_approvals` +-- ---------------------------- +DROP TABLE IF EXISTS `oauth_approvals`; +CREATE TABLE `oauth_approvals` ( + `userId` varchar(256) DEFAULT NULL, + `clientId` varchar(256) DEFAULT NULL, + `scope` varchar(256) DEFAULT NULL, + `status` varchar(10) DEFAULT NULL, + `expiresAt` datetime DEFAULT NULL, + `lastModifiedAt` datetime DEFAULT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- ---------------------------- +-- Records of oauth_approvals +-- ---------------------------- + +-- ---------------------------- +-- Table structure for `oauth_client_details` +-- ---------------------------- +DROP TABLE IF EXISTS `oauth_client_details`; +CREATE TABLE `oauth_client_details` ( + `client_id` varchar(128) NOT NULL, + `resource_ids` varchar(256) DEFAULT NULL, + `client_secret` varchar(256) DEFAULT NULL, + `scope` varchar(256) DEFAULT NULL, + `authorized_grant_types` varchar(256) DEFAULT NULL, + `web_server_redirect_uri` varchar(256) DEFAULT NULL, + `authorities` varchar(256) DEFAULT NULL, + `access_token_validity` int(11) DEFAULT NULL, + `refresh_token_validity` int(11) DEFAULT NULL, + `additional_information` varchar(4096) DEFAULT NULL, + `autoapprove` varchar(256) DEFAULT NULL, + PRIMARY KEY (`client_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- ---------------------------- +-- Records of oauth_client_details +-- ---------------------------- + +-- ---------------------------- +-- Table structure for `oauth_client_token` +-- ---------------------------- +DROP TABLE IF EXISTS `oauth_client_token`; +CREATE TABLE `oauth_client_token` ( + `token_id` varchar(256) DEFAULT NULL, + `token` blob, + `authentication_id` varchar(128) NOT NULL, + `user_name` varchar(256) DEFAULT NULL, + `client_id` varchar(256) DEFAULT NULL, + PRIMARY KEY (`authentication_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- ---------------------------- +-- Records of oauth_client_token +-- ---------------------------- + +-- ---------------------------- +-- Table structure for `oauth_code` +-- ---------------------------- +DROP TABLE IF EXISTS `oauth_code`; +CREATE TABLE `oauth_code` ( + `code` varchar(256) DEFAULT NULL, + `authentication` blob +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- ---------------------------- +-- Records of oauth_code +-- ---------------------------- + +-- ---------------------------- +-- Table structure for `oauth_refresh_token` +-- ---------------------------- +DROP TABLE IF EXISTS `oauth_refresh_token`; +CREATE TABLE `oauth_refresh_token` ( + `token_id` varchar(256) DEFAULT NULL, + `token` blob, + `authentication` blob +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- ---------------------------- +-- Records of oauth_refresh_token +-- ---------------------------- +INSERT INTO `oauth_refresh_token` VALUES ('47023366984f5c1fce7e9453bc0c7113', 0xACED00057372004C6F72672E737072696E676672616D65776F726B2E73656375726974792E6F61757468322E636F6D6D6F6E2E44656661756C744578706972696E674F417574683252656672657368546F6B656E2FDF47639DD0C9B70200014C000A65787069726174696F6E7400104C6A6176612F7574696C2F446174653B787200446F72672E737072696E676672616D65776F726B2E73656375726974792E6F61757468322E636F6D6D6F6E2E44656661756C744F417574683252656672657368546F6B656E73E10E0A6354D45E0200014C000576616C75657400124C6A6176612F6C616E672F537472696E673B787074002465616562333335342D633833302D346331662D623132632D6262613264643337366230617372000E6A6176612E7574696C2E44617465686A81014B597419030000787077080000016A58A3EA1878, 0xACED0005737200416F72672E737072696E676672616D65776F726B2E73656375726974792E6F61757468322E70726F76696465722E4F417574683241757468656E7469636174696F6EBD400B02166252130200024C000D73746F7265645265717565737474003C4C6F72672F737072696E676672616D65776F726B2F73656375726974792F6F61757468322F70726F76696465722F4F4175746832526571756573743B4C00127573657241757468656E7469636174696F6E7400324C6F72672F737072696E676672616D65776F726B2F73656375726974792F636F72652F41757468656E7469636174696F6E3B787200476F72672E737072696E676672616D65776F726B2E73656375726974792E61757468656E7469636174696F6E2E416273747261637441757468656E7469636174696F6E546F6B656ED3AA287E6E47640E0200035A000D61757468656E746963617465644C000B617574686F7269746965737400164C6A6176612F7574696C2F436F6C6C656374696F6E3B4C000764657461696C737400124C6A6176612F6C616E672F4F626A6563743B787000737200266A6176612E7574696C2E436F6C6C656374696F6E7324556E6D6F6469666961626C654C697374FC0F2531B5EC8E100200014C00046C6973747400104C6A6176612F7574696C2F4C6973743B7872002C6A6176612E7574696C2E436F6C6C656374696F6E7324556E6D6F6469666961626C65436F6C6C656374696F6E19420080CB5EF71E0200014C00016371007E00047870737200136A6176612E7574696C2E41727261794C6973747881D21D99C7619D03000149000473697A657870000000007704000000007871007E000C707372003A6F72672E737072696E676672616D65776F726B2E73656375726974792E6F61757468322E70726F76696465722E4F41757468325265717565737400000000000000010200075A0008617070726F7665644C000B617574686F72697469657371007E00044C000A657874656E73696F6E7374000F4C6A6176612F7574696C2F4D61703B4C000B72656469726563745572697400124C6A6176612F6C616E672F537472696E673B4C00077265667265736874003B4C6F72672F737072696E676672616D65776F726B2F73656375726974792F6F61757468322F70726F76696465722F546F6B656E526571756573743B4C000B7265736F7572636549647374000F4C6A6176612F7574696C2F5365743B4C000D726573706F6E7365547970657371007E0011787200386F72672E737072696E676672616D65776F726B2E73656375726974792E6F61757468322E70726F76696465722E426173655265717565737436287A3EA37169BD0200034C0008636C69656E74496471007E000F4C001172657175657374506172616D657465727371007E000E4C000573636F706571007E00117870740003617070737200256A6176612E7574696C2E436F6C6C656374696F6E7324556E6D6F6469666961626C654D6170F1A5A8FE74F507420200014C00016D71007E000E7870737200116A6176612E7574696C2E486173684D61700507DAC1C31660D103000246000A6C6F6164466163746F724900097468726573686F6C6478703F400000000000067708000000080000000374000A6772616E745F7479706574000870617373776F7264740009636C69656E745F6964740003617070740008757365726E616D6574000561646D696E78737200256A6176612E7574696C2E436F6C6C656374696F6E7324556E6D6F6469666961626C65536574801D92D18F9B80550200007871007E0009737200176A6176612E7574696C2E4C696E6B656448617368536574D86CD75A95DD2A1E020000787200116A6176612E7574696C2E48617368536574BA44859596B8B7340300007870770C000000103F4000000000000171007E001478017371007E0022770C000000103F40000000000000787371007E00173F40000000000000770800000010000000007870707371007E0022770C000000103F40000000000000787371007E0022770C000000103F40000000000000787372004F6F72672E737072696E676672616D65776F726B2E73656375726974792E61757468656E7469636174696F6E2E557365726E616D6550617373776F726441757468656E7469636174696F6E546F6B656E00000000000001F40200024C000B63726564656E7469616C7371007E00054C00097072696E636970616C71007E00057871007E0003017371007E00077371007E000B000000007704000000007871007E002B737200176A6176612E7574696C2E4C696E6B6564486173684D617034C04E5C106CC0FB0200015A000B6163636573734F726465727871007E00173F400000000000067708000000080000000474000D636C69656E745F73656372657474000631323334353671007E001971007E001A71007E001B71007E001C71007E001D71007E001E7800707372002B636F6D2E626F6F74646F2E636C6F7564646F61646D696E2E736563756974792E43757272656E7455736572A0F6D8499537099B0200014C000269647400104C6A6176612F6C616E672F4C6F6E673B787200326F72672E737072696E676672616D65776F726B2E73656375726974792E636F72652E7573657264657461696C732E5573657200000000000001F40200075A00116163636F756E744E6F6E457870697265645A00106163636F756E744E6F6E4C6F636B65645A001563726564656E7469616C734E6F6E457870697265645A0007656E61626C65644C000B617574686F72697469657371007E00114C000870617373776F726471007E000F4C0008757365726E616D6571007E000F7870010101017371007E001F737200116A6176612E7574696C2E54726565536574DD98509395ED875B0300007870737200466F72672E737072696E676672616D65776F726B2E73656375726974792E636F72652E7573657264657461696C732E5573657224417574686F72697479436F6D70617261746F7200000000000001F40200007870770400000000787071007E001E7372000E6A6176612E6C616E672E4C6F6E673B8BE490CC8F23DF0200014A000576616C7565787200106A6176612E6C616E672E4E756D62657286AC951D0B94E08B02000078700000000000000001); + -- ---------------------------- -- Table structure for `sys_dept` -- ---------------------------- @@ -581,7 +709,7 @@ CREATE TABLE `sys_user` ( `user_id` bigint(20) NOT NULL AUTO_INCREMENT, `username` varchar(50) DEFAULT NULL COMMENT '用户名', `name` varchar(100) DEFAULT NULL, - `password` varchar(50) DEFAULT NULL COMMENT '密码', + `password` varchar(100) DEFAULT NULL COMMENT '密码', `dept_id` bigint(20) DEFAULT NULL, `email` varchar(100) DEFAULT NULL COMMENT '邮箱', `mobile` varchar(100) DEFAULT NULL COMMENT '手机号', @@ -603,7 +731,7 @@ CREATE TABLE `sys_user` ( -- ---------------------------- -- Records of sys_user -- ---------------------------- -INSERT INTO `sys_user` VALUES ('1', 'admin', '超级管理员', 'd0af8fa1272ef5a152d9e27763eea293', '6', 'admin@example.com', '17699999999', '1', '1', '2017-08-15 21:40:39', '2017-08-15 21:41:00', '96', '2017-12-14 00:00:00', '138', 'ccc', '', '北京市', '北京市市辖区', '东城区'); +INSERT INTO `sys_user` VALUES ('1', 'admin', '超级管理员', '$2a$10$Vp1CxPTT/QBmU88jZYzkXOYgIq04Kvfd.o.YYqFn0y6rC5hgO/Yqe', '6', 'admin@example.com', '17699999999', '1', '1', '2017-08-15 21:40:39', '2017-08-15 21:41:00', '96', '2017-12-14 00:00:00', '138', 'ccc', '', '北京市', '北京市市辖区', '东城区'); INSERT INTO `sys_user` VALUES ('2', 'test', '临时用户', '6cf3bb3deba2aadbd41ec9a22511084e', '6', 'test@bootdo.com', null, '1', '1', '2017-08-14 13:43:05', '2017-08-14 21:15:36', null, null, null, null, null, null, null, null); INSERT INTO `sys_user` VALUES ('36', 'ldh', '刘德华', 'bfd9394475754fbe45866eba97738c36', '7', 'ldh@bootdo.com', null, '1', null, null, null, null, null, null, null, null, null, null, null); INSERT INTO `sys_user` VALUES ('123', 'zxy', '张学友', '35174ba93f5fe7267f1fb3c1bf903781', '6', 'zxy@bootdo', null, '0', null, null, null, null, null, null, null, null, null, null, null); diff --git a/clouddo-admin/src/main/java/com/bootdo/clouddoadmin/controller/LoginController.java b/clouddo-admin/src/main/java/com/bootdo/clouddoadmin/controller/LoginController.java index 61a5431..11d533e 100644 --- a/clouddo-admin/src/main/java/com/bootdo/clouddoadmin/controller/LoginController.java +++ b/clouddo-admin/src/main/java/com/bootdo/clouddoadmin/controller/LoginController.java @@ -5,6 +5,7 @@ import com.bootdo.clouddoadmin.service.MenuService; import com.bootdo.clouddoadmin.service.TokenService; import com.bootdo.clouddoadmin.service.UserService; import com.bootdo.clouddoadmin.utils.MD5Utils; +import com.bootdo.clouddoadmin.utils.SecuityUtils; import com.bootdo.clouddocommon.annotation.Log; import com.bootdo.clouddocommon.context.FilterContextHandler; import com.bootdo.clouddocommon.dto.LoginDTO; @@ -45,7 +46,7 @@ public class LoginController { Map param = new HashMap<>(); param.put("username", username); List userDOs = userService.list(param); - if(userDOs.size()<1){ + if (userDOs.size() < 1) { return R.error("用户或密码错误"); } UserDO userDO = userDOs.get(0); @@ -53,9 +54,9 @@ public class LoginController { return R.error("用户或密码错误"); } UserToken userToken = new UserToken(userDO.getUsername(), userDO.getUserId().toString(), userDO.getName()); - String token=""; + String token = ""; try { - token = JwtUtils.generateToken(userToken, 2*60*60*1000); + token = JwtUtils.generateToken(userToken, 2 * 60 * 60 * 1000); } catch (Exception e) { e.printStackTrace(); } @@ -63,9 +64,14 @@ public class LoginController { menuService.clearCache(userDO.getUserId()); // String token = tokenService.createToken(userDO.getUserId()); return R.ok("登录成功") - .put("token", token).put("user",userDO) - .put("perms",menuService.PermsByUserId(userDO.getUserId())) - .put("router",menuService.RouterDTOsByUserId(userDO.getUserId())); + .put("token", token).put("user", userDO) + .put("perms", menuService.PermsByUserId(userDO.getUserId())) + .put("router", menuService.RouterDTOsByUserId(userDO.getUserId())); + } + + @GetMapping("/router") + R router() { + return R.ok().put("router", menuService.RouterDTOsByUserId(SecuityUtils.getCurrentUser().getId())); } diff --git a/clouddo-admin/src/main/java/com/bootdo/clouddoadmin/controller/RoleController.java b/clouddo-admin/src/main/java/com/bootdo/clouddoadmin/controller/RoleController.java index c176e33..932325c 100644 --- a/clouddo-admin/src/main/java/com/bootdo/clouddoadmin/controller/RoleController.java +++ b/clouddo-admin/src/main/java/com/bootdo/clouddoadmin/controller/RoleController.java @@ -7,6 +7,7 @@ import com.bootdo.clouddocommon.utils.PageUtils; import com.bootdo.clouddocommon.utils.Query; import com.bootdo.clouddocommon.utils.R; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; import java.util.List; @@ -22,6 +23,7 @@ public class RoleController { @Autowired RoleService roleService; + @PreAuthorize("hasAuthority('admin:role:role')") @GetMapping() PageUtils list(@RequestParam Map params) { Query query = new Query(params); diff --git a/clouddo-admin/src/main/java/com/bootdo/clouddoadmin/service/impl/UserDetailsServiceImpl.java b/clouddo-admin/src/main/java/com/bootdo/clouddoadmin/service/impl/UserDetailsServiceImpl.java index 7918467..5957578 100644 --- a/clouddo-admin/src/main/java/com/bootdo/clouddoadmin/service/impl/UserDetailsServiceImpl.java +++ b/clouddo-admin/src/main/java/com/bootdo/clouddoadmin/service/impl/UserDetailsServiceImpl.java @@ -4,8 +4,11 @@ import com.bootdo.clouddoadmin.dao.UserDao; import com.bootdo.clouddoadmin.domain.UserDO; import com.bootdo.clouddoadmin.secuity.CurrentUser; import com.bootdo.clouddoadmin.service.MenuService; +import com.bootdo.clouddoadmin.utils.MD5Utils; import com.bootdo.clouddocommon.exception.CDException; 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; @@ -13,10 +16,8 @@ import org.springframework.security.core.userdetails.UsernameNotFoundException; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.stereotype.Component; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Set; +import java.util.*; +import java.util.stream.Collectors; /** * @author bootdo @@ -38,6 +39,8 @@ public class UserDetailsServiceImpl implements UserDetailsService { } UserDO userDO = userDOS.get(0); Set perms = menuService.listPerms(userDO.getUserId()); - return new CurrentUser(username, userDO.getPassword(), userDO.getUserId(), new HashSet<>()); + Set authorities = perms.stream().filter(Objects::nonNull).map(SimpleGrantedAuthority::new).collect(Collectors.toSet()); + return new CurrentUser(username, userDO.getPassword(), userDO.getUserId(), authorities); } + } -- Gitee From 2f1cf9a5e7dade97cae64c91feeb26800eb839d0 Mon Sep 17 00:00:00 2001 From: itshixun/lichunguang Date: Tue, 2 Apr 2019 11:23:30 +0800 Subject: [PATCH 09/11] =?UTF-8?q?currentUser=E5=A2=9E=E5=8A=A0name?= =?UTF-8?q?=E5=B1=9E=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../clouddoadmin/controller/UserController.java | 5 +++-- .../bootdo/clouddoadmin/secuity/CurrentUser.java | 15 +++++++++++++++ .../service/impl/UserDetailsServiceImpl.java | 2 +- 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/clouddo-admin/src/main/java/com/bootdo/clouddoadmin/controller/UserController.java b/clouddo-admin/src/main/java/com/bootdo/clouddoadmin/controller/UserController.java index 09fa806..36fe8ca 100644 --- a/clouddo-admin/src/main/java/com/bootdo/clouddoadmin/controller/UserController.java +++ b/clouddo-admin/src/main/java/com/bootdo/clouddoadmin/controller/UserController.java @@ -7,6 +7,7 @@ import com.bootdo.clouddoadmin.dto.do2dto.UserConvert; import com.bootdo.clouddoadmin.service.RoleService; import com.bootdo.clouddoadmin.service.UserService; import com.bootdo.clouddoadmin.utils.MD5Utils; +import com.bootdo.clouddoadmin.utils.SecuityUtils; import com.bootdo.clouddocommon.annotation.Log; import com.bootdo.clouddocommon.context.FilterContextHandler; import com.bootdo.clouddocommon.dto.LoginUserDTO; @@ -46,9 +47,9 @@ public class UserController extends BaseController { @GetMapping("/currentUser") LoginUserDTO currentUser(){ LoginUserDTO loginUserDTO = new LoginUserDTO(); - loginUserDTO.setUserId(FilterContextHandler.getUserID()); + loginUserDTO.setUserId(SecuityUtils.getCurrentUser().getId().toString()); loginUserDTO.setUsername(FilterContextHandler.getUsername()); - loginUserDTO.setName(FilterContextHandler.getName()); + loginUserDTO.setName(SecuityUtils.getCurrentUser().getName()); return loginUserDTO; } diff --git a/clouddo-admin/src/main/java/com/bootdo/clouddoadmin/secuity/CurrentUser.java b/clouddo-admin/src/main/java/com/bootdo/clouddoadmin/secuity/CurrentUser.java index b9feeee..02fa790 100644 --- a/clouddo-admin/src/main/java/com/bootdo/clouddoadmin/secuity/CurrentUser.java +++ b/clouddo-admin/src/main/java/com/bootdo/clouddoadmin/secuity/CurrentUser.java @@ -10,9 +10,16 @@ public class CurrentUser extends User { super(username, password, authorities); setId(id); } + public CurrentUser(String username, String password, Long id,String name, Collection authorities) { + super(username, password, authorities); + setId(id); + setName(name); + } private Long id; + private String name; + public Long getId() { return id; } @@ -20,4 +27,12 @@ public class CurrentUser extends User { public void setId(Long id) { this.id = id; } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } } diff --git a/clouddo-admin/src/main/java/com/bootdo/clouddoadmin/service/impl/UserDetailsServiceImpl.java b/clouddo-admin/src/main/java/com/bootdo/clouddoadmin/service/impl/UserDetailsServiceImpl.java index 5957578..61dd194 100644 --- a/clouddo-admin/src/main/java/com/bootdo/clouddoadmin/service/impl/UserDetailsServiceImpl.java +++ b/clouddo-admin/src/main/java/com/bootdo/clouddoadmin/service/impl/UserDetailsServiceImpl.java @@ -40,7 +40,7 @@ public class UserDetailsServiceImpl implements UserDetailsService { UserDO userDO = userDOS.get(0); Set perms = menuService.listPerms(userDO.getUserId()); Set authorities = perms.stream().filter(Objects::nonNull).map(SimpleGrantedAuthority::new).collect(Collectors.toSet()); - return new CurrentUser(username, userDO.getPassword(), userDO.getUserId(), authorities); + return new CurrentUser(username, userDO.getPassword(), userDO.getUserId(), userDO.getName(),authorities); } } -- Gitee From 6eec8bd8132d3fd9348cb61ef8ae3a2f49969010 Mon Sep 17 00:00:00 2001 From: itshixun/lichunguang Date: Tue, 2 Apr 2019 16:40:40 +0800 Subject: [PATCH 10/11] =?UTF-8?q?oauth2=E9=80=80=E5=87=BA=E7=99=BB?= =?UTF-8?q?=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/LoginController.java | 39 +++---------------- 1 file changed, 5 insertions(+), 34 deletions(-) diff --git a/clouddo-admin/src/main/java/com/bootdo/clouddoadmin/controller/LoginController.java b/clouddo-admin/src/main/java/com/bootdo/clouddoadmin/controller/LoginController.java index 11d533e..8934d1d 100644 --- a/clouddo-admin/src/main/java/com/bootdo/clouddoadmin/controller/LoginController.java +++ b/clouddo-admin/src/main/java/com/bootdo/clouddoadmin/controller/LoginController.java @@ -13,6 +13,7 @@ import com.bootdo.clouddocommon.dto.UserToken; import com.bootdo.clouddocommon.utils.JwtUtils; import com.bootdo.clouddocommon.utils.R; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.oauth2.provider.token.ConsumerTokenServices; import org.springframework.web.bind.annotation.*; import javax.servlet.http.Cookie; @@ -36,38 +37,8 @@ public class LoginController { TokenService tokenService; @Autowired MenuService menuService; - - @Log("登录") - @PostMapping("/login") - R login(@Valid @RequestBody LoginDTO loginDTO, HttpServletRequest request, HttpServletResponse response) { - String username = loginDTO.getUsername().trim(); - String password = loginDTO.getPwd().trim(); - password = MD5Utils.encrypt(username, password); - Map param = new HashMap<>(); - param.put("username", username); - List userDOs = userService.list(param); - if (userDOs.size() < 1) { - return R.error("用户或密码错误"); - } - UserDO userDO = userDOs.get(0); - if (null == userDO || !userDO.getPassword().equals(password)) { - return R.error("用户或密码错误"); - } - UserToken userToken = new UserToken(userDO.getUsername(), userDO.getUserId().toString(), userDO.getName()); - String token = ""; - try { - token = JwtUtils.generateToken(userToken, 2 * 60 * 60 * 1000); - } catch (Exception e) { - e.printStackTrace(); - } - //首先清除用户缓存权限 - menuService.clearCache(userDO.getUserId()); - // String token = tokenService.createToken(userDO.getUserId()); - return R.ok("登录成功") - .put("token", token).put("user", userDO) - .put("perms", menuService.PermsByUserId(userDO.getUserId())) - .put("router", menuService.RouterDTOsByUserId(userDO.getUserId())); - } + @Autowired + private ConsumerTokenServices consumerTokenServices; @GetMapping("/router") R router() { @@ -76,8 +47,8 @@ public class LoginController { @RequestMapping("/logout") - R logout(HttpServletRequest request, HttpServletResponse response) { - menuService.clearCache(Long.parseLong(FilterContextHandler.getUserID())); + R logout(String token) { + consumerTokenServices.revokeToken(token); return R.ok(); } -- Gitee From 4295e5a1c69da4a9394e0b8ae0e77d36b127c8fd Mon Sep 17 00:00:00 2001 From: itshixun/lichunguang Date: Tue, 2 Apr 2019 16:43:04 +0800 Subject: [PATCH 11/11] =?UTF-8?q?=E6=9B=B4=E6=96=B0sql=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- clouddo-admin/clouddo.sql | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/clouddo-admin/clouddo.sql b/clouddo-admin/clouddo.sql index f544620..364ad07 100644 --- a/clouddo-admin/clouddo.sql +++ b/clouddo-admin/clouddo.sql @@ -10,7 +10,7 @@ Target Server Type : MYSQL Target Server Version : 50725 File Encoding : 65001 -Date: 2019-03-27 15:56:01 +Date: 2019-04-02 16:42:17 */ SET FOREIGN_KEY_CHECKS=0; @@ -75,7 +75,7 @@ CREATE TABLE `oauth_access_token` ( -- ---------------------------- -- Records of oauth_access_token -- ---------------------------- -INSERT INTO `oauth_access_token` VALUES ('d659bad9c980a1af0025e06271c6e063', 0xACED0005737200436F72672E737072696E676672616D65776F726B2E73656375726974792E6F61757468322E636F6D6D6F6E2E44656661756C744F4175746832416363657373546F6B656E0CB29E361B24FACE0200064C00156164646974696F6E616C496E666F726D6174696F6E74000F4C6A6176612F7574696C2F4D61703B4C000A65787069726174696F6E7400104C6A6176612F7574696C2F446174653B4C000C72656672657368546F6B656E74003F4C6F72672F737072696E676672616D65776F726B2F73656375726974792F6F61757468322F636F6D6D6F6E2F4F417574683252656672657368546F6B656E3B4C000573636F706574000F4C6A6176612F7574696C2F5365743B4C0009746F6B656E547970657400124C6A6176612F6C616E672F537472696E673B4C000576616C756571007E000578707372001E6A6176612E7574696C2E436F6C6C656374696F6E7324456D7074794D6170593614855ADCE7D002000078707372000E6A6176612E7574696C2E44617465686A81014B5974190300007870770800000169C0B8501C787372004C6F72672E737072696E676672616D65776F726B2E73656375726974792E6F61757468322E636F6D6D6F6E2E44656661756C744578706972696E674F417574683252656672657368546F6B656E2FDF47639DD0C9B70200014C000A65787069726174696F6E71007E0002787200446F72672E737072696E676672616D65776F726B2E73656375726974792E6F61757468322E636F6D6D6F6E2E44656661756C744F417574683252656672657368546F6B656E73E10E0A6354D45E0200014C000576616C756571007E0005787074002465616562333335342D633833302D346331662D623132632D6262613264643337366230617371007E000977080000016A58A3EA1878737200256A6176612E7574696C2E436F6C6C656374696F6E7324556E6D6F6469666961626C65536574801D92D18F9B80550200007872002C6A6176612E7574696C2E436F6C6C656374696F6E7324556E6D6F6469666961626C65436F6C6C656374696F6E19420080CB5EF71E0200014C0001637400164C6A6176612F7574696C2F436F6C6C656374696F6E3B7870737200176A6176612E7574696C2E4C696E6B656448617368536574D86CD75A95DD2A1E020000787200116A6176612E7574696C2E48617368536574BA44859596B8B7340300007870770C000000103F400000000000017400036170707874000662656172657274002465323234633531322D303839392D343638382D393736622D313734363061643032346637, 'b9cdd625a781099755dfb47c3de1e150', 'admin', 'app', 0xACED0005737200416F72672E737072696E676672616D65776F726B2E73656375726974792E6F61757468322E70726F76696465722E4F417574683241757468656E7469636174696F6EBD400B02166252130200024C000D73746F7265645265717565737474003C4C6F72672F737072696E676672616D65776F726B2F73656375726974792F6F61757468322F70726F76696465722F4F4175746832526571756573743B4C00127573657241757468656E7469636174696F6E7400324C6F72672F737072696E676672616D65776F726B2F73656375726974792F636F72652F41757468656E7469636174696F6E3B787200476F72672E737072696E676672616D65776F726B2E73656375726974792E61757468656E7469636174696F6E2E416273747261637441757468656E7469636174696F6E546F6B656ED3AA287E6E47640E0200035A000D61757468656E746963617465644C000B617574686F7269746965737400164C6A6176612F7574696C2F436F6C6C656374696F6E3B4C000764657461696C737400124C6A6176612F6C616E672F4F626A6563743B787000737200266A6176612E7574696C2E436F6C6C656374696F6E7324556E6D6F6469666961626C654C697374FC0F2531B5EC8E100200014C00046C6973747400104C6A6176612F7574696C2F4C6973743B7872002C6A6176612E7574696C2E436F6C6C656374696F6E7324556E6D6F6469666961626C65436F6C6C656374696F6E19420080CB5EF71E0200014C00016371007E00047870737200136A6176612E7574696C2E41727261794C6973747881D21D99C7619D03000149000473697A657870000000007704000000007871007E000C707372003A6F72672E737072696E676672616D65776F726B2E73656375726974792E6F61757468322E70726F76696465722E4F41757468325265717565737400000000000000010200075A0008617070726F7665644C000B617574686F72697469657371007E00044C000A657874656E73696F6E7374000F4C6A6176612F7574696C2F4D61703B4C000B72656469726563745572697400124C6A6176612F6C616E672F537472696E673B4C00077265667265736874003B4C6F72672F737072696E676672616D65776F726B2F73656375726974792F6F61757468322F70726F76696465722F546F6B656E526571756573743B4C000B7265736F7572636549647374000F4C6A6176612F7574696C2F5365743B4C000D726573706F6E7365547970657371007E0011787200386F72672E737072696E676672616D65776F726B2E73656375726974792E6F61757468322E70726F76696465722E426173655265717565737436287A3EA37169BD0200034C0008636C69656E74496471007E000F4C001172657175657374506172616D657465727371007E000E4C000573636F706571007E00117870740003617070737200256A6176612E7574696C2E436F6C6C656374696F6E7324556E6D6F6469666961626C654D6170F1A5A8FE74F507420200014C00016D71007E000E7870737200116A6176612E7574696C2E486173684D61700507DAC1C31660D103000246000A6C6F6164466163746F724900097468726573686F6C6478703F400000000000067708000000080000000374000A6772616E745F7479706574000870617373776F7264740009636C69656E745F6964740003617070740008757365726E616D6574000561646D696E78737200256A6176612E7574696C2E436F6C6C656374696F6E7324556E6D6F6469666961626C65536574801D92D18F9B80550200007871007E0009737200176A6176612E7574696C2E4C696E6B656448617368536574D86CD75A95DD2A1E020000787200116A6176612E7574696C2E48617368536574BA44859596B8B7340300007870770C000000103F4000000000000171007E001478017371007E0022770C000000103F40000000000000787371007E00173F40000000000000770800000010000000007870707371007E0022770C000000103F40000000000000787371007E0022770C000000103F40000000000000787372004F6F72672E737072696E676672616D65776F726B2E73656375726974792E61757468656E7469636174696F6E2E557365726E616D6550617373776F726441757468656E7469636174696F6E546F6B656E00000000000001F40200024C000B63726564656E7469616C7371007E00054C00097072696E636970616C71007E00057871007E0003017371007E00077371007E000B000000007704000000007871007E002B737200176A6176612E7574696C2E4C696E6B6564486173684D617034C04E5C106CC0FB0200015A000B6163636573734F726465727871007E00173F400000000000067708000000080000000474000D636C69656E745F73656372657474000631323334353671007E001971007E001A71007E001B71007E001C71007E001D71007E001E7800707372002B636F6D2E626F6F74646F2E636C6F7564646F61646D696E2E736563756974792E43757272656E7455736572A0F6D8499537099B0200014C000269647400104C6A6176612F6C616E672F4C6F6E673B787200326F72672E737072696E676672616D65776F726B2E73656375726974792E636F72652E7573657264657461696C732E5573657200000000000001F40200075A00116163636F756E744E6F6E457870697265645A00106163636F756E744E6F6E4C6F636B65645A001563726564656E7469616C734E6F6E457870697265645A0007656E61626C65644C000B617574686F72697469657371007E00114C000870617373776F726471007E000F4C0008757365726E616D6571007E000F7870010101017371007E001F737200116A6176612E7574696C2E54726565536574DD98509395ED875B0300007870737200466F72672E737072696E676672616D65776F726B2E73656375726974792E636F72652E7573657264657461696C732E5573657224417574686F72697479436F6D70617261746F7200000000000001F40200007870770400000000787071007E001E7372000E6A6176612E6C616E672E4C6F6E673B8BE490CC8F23DF0200014A000576616C7565787200106A6176612E6C616E672E4E756D62657286AC951D0B94E08B02000078700000000000000001, '47023366984f5c1fce7e9453bc0c7113'); +INSERT INTO `oauth_access_token` VALUES ('a6ec018d6789c01d00c838bc95467c2d', 0xACED0005737200436F72672E737072696E676672616D65776F726B2E73656375726974792E6F61757468322E636F6D6D6F6E2E44656661756C744F4175746832416363657373546F6B656E0CB29E361B24FACE0200064C00156164646974696F6E616C496E666F726D6174696F6E74000F4C6A6176612F7574696C2F4D61703B4C000A65787069726174696F6E7400104C6A6176612F7574696C2F446174653B4C000C72656672657368546F6B656E74003F4C6F72672F737072696E676672616D65776F726B2F73656375726974792F6F61757468322F636F6D6D6F6E2F4F417574683252656672657368546F6B656E3B4C000573636F706574000F4C6A6176612F7574696C2F5365743B4C0009746F6B656E547970657400124C6A6176612F6C616E672F537472696E673B4C000576616C756571007E000578707372001E6A6176612E7574696C2E436F6C6C656374696F6E7324456D7074794D6170593614855ADCE7D002000078707372000E6A6176612E7574696C2E44617465686A81014B5974190300007870770800000169DE9313F2787372004C6F72672E737072696E676672616D65776F726B2E73656375726974792E6F61757468322E636F6D6D6F6E2E44656661756C744578706972696E674F417574683252656672657368546F6B656E2FDF47639DD0C9B70200014C000A65787069726174696F6E71007E0002787200446F72672E737072696E676672616D65776F726B2E73656375726974792E6F61757468322E636F6D6D6F6E2E44656661756C744F417574683252656672657368546F6B656E73E10E0A6354D45E0200014C000576616C756571007E0005787074002433343937313131382D343864392D346365332D613136342D6232666433356334646666357371007E000977080000016A767EADEF78737200256A6176612E7574696C2E436F6C6C656374696F6E7324556E6D6F6469666961626C65536574801D92D18F9B80550200007872002C6A6176612E7574696C2E436F6C6C656374696F6E7324556E6D6F6469666961626C65436F6C6C656374696F6E19420080CB5EF71E0200014C0001637400164C6A6176612F7574696C2F436F6C6C656374696F6E3B7870737200176A6176612E7574696C2E4C696E6B656448617368536574D86CD75A95DD2A1E020000787200116A6176612E7574696C2E48617368536574BA44859596B8B7340300007870770C000000023F400000000000017400036170707874000662656172657274002463386533386634372D646662302D346163392D383030322D643438303564366139353062, 'b9cdd625a781099755dfb47c3de1e150', 'admin', 'app', 0xACED0005737200416F72672E737072696E676672616D65776F726B2E73656375726974792E6F61757468322E70726F76696465722E4F417574683241757468656E7469636174696F6EBD400B02166252130200024C000D73746F7265645265717565737474003C4C6F72672F737072696E676672616D65776F726B2F73656375726974792F6F61757468322F70726F76696465722F4F4175746832526571756573743B4C00127573657241757468656E7469636174696F6E7400324C6F72672F737072696E676672616D65776F726B2F73656375726974792F636F72652F41757468656E7469636174696F6E3B787200476F72672E737072696E676672616D65776F726B2E73656375726974792E61757468656E7469636174696F6E2E416273747261637441757468656E7469636174696F6E546F6B656ED3AA287E6E47640E0200035A000D61757468656E746963617465644C000B617574686F7269746965737400164C6A6176612F7574696C2F436F6C6C656374696F6E3B4C000764657461696C737400124C6A6176612F6C616E672F4F626A6563743B787000737200266A6176612E7574696C2E436F6C6C656374696F6E7324556E6D6F6469666961626C654C697374FC0F2531B5EC8E100200014C00046C6973747400104C6A6176612F7574696C2F4C6973743B7872002C6A6176612E7574696C2E436F6C6C656374696F6E7324556E6D6F6469666961626C65436F6C6C656374696F6E19420080CB5EF71E0200014C00016371007E00047870737200136A6176612E7574696C2E41727261794C6973747881D21D99C7619D03000149000473697A65787000000014770400000014737200426F72672E737072696E676672616D65776F726B2E73656375726974792E636F72652E617574686F726974792E53696D706C654772616E746564417574686F7269747900000000000001F40200014C0004726F6C657400124C6A6176612F6C616E672F537472696E673B787074000E61646D696E3A6D656E753A6164647371007E000D74001661646D696E3A6D656E753A626174636852656D6F76657371007E000D74000F61646D696E3A6D656E753A656469747371007E000D74000F61646D696E3A6D656E753A6C6973747371007E000D74000F61646D696E3A6D656E753A6D656E757371007E000D74001161646D696E3A6D656E753A72656D6F76657371007E000D74000E61646D696E3A726F6C653A6164647371007E000D74001661646D696E3A726F6C653A626174636852656D6F76657371007E000D74000F61646D696E3A726F6C653A656469747371007E000D74001161646D696E3A726F6C653A72656D6F76657371007E000D74000F61646D696E3A726F6C653A726F6C657371007E000D74000E61646D696E3A757365723A6164647371007E000D74001661646D696E3A757365723A626174636852656D6F76657371007E000D74001261646D696E3A757365723A64697361626C657371007E000D74000F61646D696E3A757365723A656469747371007E000D74001161646D696E3A757365723A72656D6F76657371007E000D74001361646D696E3A757365723A72657365745077647371007E000D74000F61646D696E3A757365723A757365727371007E000D74000B636D733A636F6E74656E747371007E000D740008636D733A66696C657871007E000C707372003A6F72672E737072696E676672616D65776F726B2E73656375726974792E6F61757468322E70726F76696465722E4F41757468325265717565737400000000000000010200075A0008617070726F7665644C000B617574686F72697469657371007E00044C000A657874656E73696F6E7374000F4C6A6176612F7574696C2F4D61703B4C000B726564697265637455726971007E000E4C00077265667265736874003B4C6F72672F737072696E676672616D65776F726B2F73656375726974792F6F61757468322F70726F76696465722F546F6B656E526571756573743B4C000B7265736F7572636549647374000F4C6A6176612F7574696C2F5365743B4C000D726573706F6E7365547970657371007E003A787200386F72672E737072696E676672616D65776F726B2E73656375726974792E6F61757468322E70726F76696465722E426173655265717565737436287A3EA37169BD0200034C0008636C69656E74496471007E000E4C001172657175657374506172616D657465727371007E00384C000573636F706571007E003A7870740003617070737200256A6176612E7574696C2E436F6C6C656374696F6E7324556E6D6F6469666961626C654D6170F1A5A8FE74F507420200014C00016D71007E00387870737200116A6176612E7574696C2E486173684D61700507DAC1C31660D103000246000A6C6F6164466163746F724900097468726573686F6C6478703F400000000000067708000000080000000374000A6772616E745F7479706574000870617373776F7264740009636C69656E745F6964740003617070740008757365726E616D6574000561646D696E78737200256A6176612E7574696C2E436F6C6C656374696F6E7324556E6D6F6469666961626C65536574801D92D18F9B80550200007871007E0009737200176A6176612E7574696C2E4C696E6B656448617368536574D86CD75A95DD2A1E020000787200116A6176612E7574696C2E48617368536574BA44859596B8B7340300007870770C000000103F4000000000000171007E003D78017371007E004B770C000000103F40000000000000787371007E00403F40000000000000770800000010000000007870707371007E004B770C000000103F40000000000000787371007E004B770C000000103F40000000000000787372004F6F72672E737072696E676672616D65776F726B2E73656375726974792E61757468656E7469636174696F6E2E557365726E616D6550617373776F726441757468656E7469636174696F6E546F6B656E00000000000001F40200024C000B63726564656E7469616C7371007E00054C00097072696E636970616C71007E00057871007E0003017371007E00077371007E000B0000001477040000001471007E000F71007E001171007E001371007E001571007E001771007E001971007E001B71007E001D71007E001F71007E002171007E002371007E002571007E002771007E002971007E002B71007E002D71007E002F71007E003171007E003371007E00357871007E0054737200176A6176612E7574696C2E4C696E6B6564486173684D617034C04E5C106CC0FB0200015A000B6163636573734F726465727871007E00403F400000000000067708000000080000000474000D636C69656E745F73656372657474000631323334353671007E004271007E004371007E004471007E004571007E004671007E00477800707372002B636F6D2E626F6F74646F2E636C6F7564646F61646D696E2E736563756974792E43757272656E7455736572FA08FA21BD5406A90200024C000269647400104C6A6176612F6C616E672F4C6F6E673B4C00046E616D6571007E000E787200326F72672E737072696E676672616D65776F726B2E73656375726974792E636F72652E7573657264657461696C732E5573657200000000000001F40200075A00116163636F756E744E6F6E457870697265645A00106163636F756E744E6F6E4C6F636B65645A001563726564656E7469616C734E6F6E457870697265645A0007656E61626C65644C000B617574686F72697469657371007E003A4C000870617373776F726471007E000E4C0008757365726E616D6571007E000E7870010101017371007E0048737200116A6176612E7574696C2E54726565536574DD98509395ED875B0300007870737200466F72672E737072696E676672616D65776F726B2E73656375726974792E636F72652E7573657264657461696C732E5573657224417574686F72697479436F6D70617261746F7200000000000001F4020000787077040000001471007E000F71007E001171007E001371007E001571007E001771007E001971007E001B71007E001D71007E001F71007E002171007E002371007E002571007E002771007E002971007E002B71007E002D71007E002F71007E003171007E003371007E0035787071007E00477372000E6A6176612E6C616E672E4C6F6E673B8BE490CC8F23DF0200014A000576616C7565787200106A6176612E6C616E672E4E756D62657286AC951D0B94E08B0200007870000000000000000174000FE8B685E7BAA7E7AEA1E79086E59198, 'f91f06fa89955f6805a646c74fe24639'); -- ---------------------------- -- Table structure for `oauth_approvals` @@ -160,7 +160,8 @@ CREATE TABLE `oauth_refresh_token` ( -- ---------------------------- -- Records of oauth_refresh_token -- ---------------------------- -INSERT INTO `oauth_refresh_token` VALUES ('47023366984f5c1fce7e9453bc0c7113', 0xACED00057372004C6F72672E737072696E676672616D65776F726B2E73656375726974792E6F61757468322E636F6D6D6F6E2E44656661756C744578706972696E674F417574683252656672657368546F6B656E2FDF47639DD0C9B70200014C000A65787069726174696F6E7400104C6A6176612F7574696C2F446174653B787200446F72672E737072696E676672616D65776F726B2E73656375726974792E6F61757468322E636F6D6D6F6E2E44656661756C744F417574683252656672657368546F6B656E73E10E0A6354D45E0200014C000576616C75657400124C6A6176612F6C616E672F537472696E673B787074002465616562333335342D633833302D346331662D623132632D6262613264643337366230617372000E6A6176612E7574696C2E44617465686A81014B597419030000787077080000016A58A3EA1878, 0xACED0005737200416F72672E737072696E676672616D65776F726B2E73656375726974792E6F61757468322E70726F76696465722E4F417574683241757468656E7469636174696F6EBD400B02166252130200024C000D73746F7265645265717565737474003C4C6F72672F737072696E676672616D65776F726B2F73656375726974792F6F61757468322F70726F76696465722F4F4175746832526571756573743B4C00127573657241757468656E7469636174696F6E7400324C6F72672F737072696E676672616D65776F726B2F73656375726974792F636F72652F41757468656E7469636174696F6E3B787200476F72672E737072696E676672616D65776F726B2E73656375726974792E61757468656E7469636174696F6E2E416273747261637441757468656E7469636174696F6E546F6B656ED3AA287E6E47640E0200035A000D61757468656E746963617465644C000B617574686F7269746965737400164C6A6176612F7574696C2F436F6C6C656374696F6E3B4C000764657461696C737400124C6A6176612F6C616E672F4F626A6563743B787000737200266A6176612E7574696C2E436F6C6C656374696F6E7324556E6D6F6469666961626C654C697374FC0F2531B5EC8E100200014C00046C6973747400104C6A6176612F7574696C2F4C6973743B7872002C6A6176612E7574696C2E436F6C6C656374696F6E7324556E6D6F6469666961626C65436F6C6C656374696F6E19420080CB5EF71E0200014C00016371007E00047870737200136A6176612E7574696C2E41727261794C6973747881D21D99C7619D03000149000473697A657870000000007704000000007871007E000C707372003A6F72672E737072696E676672616D65776F726B2E73656375726974792E6F61757468322E70726F76696465722E4F41757468325265717565737400000000000000010200075A0008617070726F7665644C000B617574686F72697469657371007E00044C000A657874656E73696F6E7374000F4C6A6176612F7574696C2F4D61703B4C000B72656469726563745572697400124C6A6176612F6C616E672F537472696E673B4C00077265667265736874003B4C6F72672F737072696E676672616D65776F726B2F73656375726974792F6F61757468322F70726F76696465722F546F6B656E526571756573743B4C000B7265736F7572636549647374000F4C6A6176612F7574696C2F5365743B4C000D726573706F6E7365547970657371007E0011787200386F72672E737072696E676672616D65776F726B2E73656375726974792E6F61757468322E70726F76696465722E426173655265717565737436287A3EA37169BD0200034C0008636C69656E74496471007E000F4C001172657175657374506172616D657465727371007E000E4C000573636F706571007E00117870740003617070737200256A6176612E7574696C2E436F6C6C656374696F6E7324556E6D6F6469666961626C654D6170F1A5A8FE74F507420200014C00016D71007E000E7870737200116A6176612E7574696C2E486173684D61700507DAC1C31660D103000246000A6C6F6164466163746F724900097468726573686F6C6478703F400000000000067708000000080000000374000A6772616E745F7479706574000870617373776F7264740009636C69656E745F6964740003617070740008757365726E616D6574000561646D696E78737200256A6176612E7574696C2E436F6C6C656374696F6E7324556E6D6F6469666961626C65536574801D92D18F9B80550200007871007E0009737200176A6176612E7574696C2E4C696E6B656448617368536574D86CD75A95DD2A1E020000787200116A6176612E7574696C2E48617368536574BA44859596B8B7340300007870770C000000103F4000000000000171007E001478017371007E0022770C000000103F40000000000000787371007E00173F40000000000000770800000010000000007870707371007E0022770C000000103F40000000000000787371007E0022770C000000103F40000000000000787372004F6F72672E737072696E676672616D65776F726B2E73656375726974792E61757468656E7469636174696F6E2E557365726E616D6550617373776F726441757468656E7469636174696F6E546F6B656E00000000000001F40200024C000B63726564656E7469616C7371007E00054C00097072696E636970616C71007E00057871007E0003017371007E00077371007E000B000000007704000000007871007E002B737200176A6176612E7574696C2E4C696E6B6564486173684D617034C04E5C106CC0FB0200015A000B6163636573734F726465727871007E00173F400000000000067708000000080000000474000D636C69656E745F73656372657474000631323334353671007E001971007E001A71007E001B71007E001C71007E001D71007E001E7800707372002B636F6D2E626F6F74646F2E636C6F7564646F61646D696E2E736563756974792E43757272656E7455736572A0F6D8499537099B0200014C000269647400104C6A6176612F6C616E672F4C6F6E673B787200326F72672E737072696E676672616D65776F726B2E73656375726974792E636F72652E7573657264657461696C732E5573657200000000000001F40200075A00116163636F756E744E6F6E457870697265645A00106163636F756E744E6F6E4C6F636B65645A001563726564656E7469616C734E6F6E457870697265645A0007656E61626C65644C000B617574686F72697469657371007E00114C000870617373776F726471007E000F4C0008757365726E616D6571007E000F7870010101017371007E001F737200116A6176612E7574696C2E54726565536574DD98509395ED875B0300007870737200466F72672E737072696E676672616D65776F726B2E73656375726974792E636F72652E7573657264657461696C732E5573657224417574686F72697479436F6D70617261746F7200000000000001F40200007870770400000000787071007E001E7372000E6A6176612E6C616E672E4C6F6E673B8BE490CC8F23DF0200014A000576616C7565787200106A6176612E6C616E672E4E756D62657286AC951D0B94E08B02000078700000000000000001); +INSERT INTO `oauth_refresh_token` VALUES ('47023366984f5c1fce7e9453bc0c7113', 0xACED00057372004C6F72672E737072696E676672616D65776F726B2E73656375726974792E6F61757468322E636F6D6D6F6E2E44656661756C744578706972696E674F417574683252656672657368546F6B656E2FDF47639DD0C9B70200014C000A65787069726174696F6E7400104C6A6176612F7574696C2F446174653B787200446F72672E737072696E676672616D65776F726B2E73656375726974792E6F61757468322E636F6D6D6F6E2E44656661756C744F417574683252656672657368546F6B656E73E10E0A6354D45E0200014C000576616C75657400124C6A6176612F6C616E672F537472696E673B787074002465616562333335342D633833302D346331662D623132632D6262613264643337366230617372000E6A6176612E7574696C2E44617465686A81014B597419030000787077080000016A58A3EA1878, 0xACED0005737200416F72672E737072696E676672616D65776F726B2E73656375726974792E6F61757468322E70726F76696465722E4F417574683241757468656E7469636174696F6EBD400B02166252130200024C000D73746F7265645265717565737474003C4C6F72672F737072696E676672616D65776F726B2F73656375726974792F6F61757468322F70726F76696465722F4F4175746832526571756573743B4C00127573657241757468656E7469636174696F6E7400324C6F72672F737072696E676672616D65776F726B2F73656375726974792F636F72652F41757468656E7469636174696F6E3B787200476F72672E737072696E676672616D65776F726B2E73656375726974792E61757468656E7469636174696F6E2E416273747261637441757468656E7469636174696F6E546F6B656ED3AA287E6E47640E0200035A000D61757468656E746963617465644C000B617574686F7269746965737400164C6A6176612F7574696C2F436F6C6C656374696F6E3B4C000764657461696C737400124C6A6176612F6C616E672F4F626A6563743B787000737200266A6176612E7574696C2E436F6C6C656374696F6E7324556E6D6F6469666961626C654C697374FC0F2531B5EC8E100200014C00046C6973747400104C6A6176612F7574696C2F4C6973743B7872002C6A6176612E7574696C2E436F6C6C656374696F6E7324556E6D6F6469666961626C65436F6C6C656374696F6E19420080CB5EF71E0200014C00016371007E00047870737200136A6176612E7574696C2E41727261794C6973747881D21D99C7619D03000149000473697A65787000000014770400000014737200426F72672E737072696E676672616D65776F726B2E73656375726974792E636F72652E617574686F726974792E53696D706C654772616E746564417574686F7269747900000000000001F40200014C0004726F6C657400124C6A6176612F6C616E672F537472696E673B787074000E61646D696E3A6D656E753A6164647371007E000D74001661646D696E3A6D656E753A626174636852656D6F76657371007E000D74000F61646D696E3A6D656E753A656469747371007E000D74000F61646D696E3A6D656E753A6C6973747371007E000D74000F61646D696E3A6D656E753A6D656E757371007E000D74001161646D696E3A6D656E753A72656D6F76657371007E000D74000E61646D696E3A726F6C653A6164647371007E000D74001661646D696E3A726F6C653A626174636852656D6F76657371007E000D74000F61646D696E3A726F6C653A656469747371007E000D74001161646D696E3A726F6C653A72656D6F76657371007E000D74000F61646D696E3A726F6C653A726F6C657371007E000D74000E61646D696E3A757365723A6164647371007E000D74001661646D696E3A757365723A626174636852656D6F76657371007E000D74001261646D696E3A757365723A64697361626C657371007E000D74000F61646D696E3A757365723A656469747371007E000D74001161646D696E3A757365723A72656D6F76657371007E000D74001361646D696E3A757365723A72657365745077647371007E000D74000F61646D696E3A757365723A757365727371007E000D74000B636D733A636F6E74656E747371007E000D740008636D733A66696C657871007E000C707372003A6F72672E737072696E676672616D65776F726B2E73656375726974792E6F61757468322E70726F76696465722E4F41757468325265717565737400000000000000010200075A0008617070726F7665644C000B617574686F72697469657371007E00044C000A657874656E73696F6E7374000F4C6A6176612F7574696C2F4D61703B4C000B726564697265637455726971007E000E4C00077265667265736874003B4C6F72672F737072696E676672616D65776F726B2F73656375726974792F6F61757468322F70726F76696465722F546F6B656E526571756573743B4C000B7265736F7572636549647374000F4C6A6176612F7574696C2F5365743B4C000D726573706F6E7365547970657371007E003A787200386F72672E737072696E676672616D65776F726B2E73656375726974792E6F61757468322E70726F76696465722E426173655265717565737436287A3EA37169BD0200034C0008636C69656E74496471007E000E4C001172657175657374506172616D657465727371007E00384C000573636F706571007E003A7870740003617070737200256A6176612E7574696C2E436F6C6C656374696F6E7324556E6D6F6469666961626C654D6170F1A5A8FE74F507420200014C00016D71007E00387870737200116A6176612E7574696C2E486173684D61700507DAC1C31660D103000246000A6C6F6164466163746F724900097468726573686F6C6478703F400000000000067708000000080000000374000A6772616E745F7479706574000870617373776F7264740009636C69656E745F6964740003617070740008757365726E616D6574000561646D696E78737200256A6176612E7574696C2E436F6C6C656374696F6E7324556E6D6F6469666961626C65536574801D92D18F9B80550200007871007E0009737200176A6176612E7574696C2E4C696E6B656448617368536574D86CD75A95DD2A1E020000787200116A6176612E7574696C2E48617368536574BA44859596B8B7340300007870770C000000103F4000000000000171007E003D78017371007E004B770C000000103F40000000000000787371007E00403F40000000000000770800000010000000007870707371007E004B770C000000103F40000000000000787371007E004B770C000000103F40000000000000787372004F6F72672E737072696E676672616D65776F726B2E73656375726974792E61757468656E7469636174696F6E2E557365726E616D6550617373776F726441757468656E7469636174696F6E546F6B656E00000000000001F40200024C000B63726564656E7469616C7371007E00054C00097072696E636970616C71007E00057871007E0003017371007E00077371007E000B0000001477040000001471007E000F71007E001171007E001371007E001571007E001771007E001971007E001B71007E001D71007E001F71007E002171007E002371007E002571007E002771007E002971007E002B71007E002D71007E002F71007E003171007E003371007E00357871007E0054737200176A6176612E7574696C2E4C696E6B6564486173684D617034C04E5C106CC0FB0200015A000B6163636573734F726465727871007E00403F400000000000067708000000080000000474000D636C69656E745F73656372657474000631323334353671007E004271007E004371007E004471007E004571007E004671007E00477800707372002B636F6D2E626F6F74646F2E636C6F7564646F61646D696E2E736563756974792E43757272656E7455736572A0F6D8499537099B0200014C000269647400104C6A6176612F6C616E672F4C6F6E673B787200326F72672E737072696E676672616D65776F726B2E73656375726974792E636F72652E7573657264657461696C732E5573657200000000000001F40200075A00116163636F756E744E6F6E457870697265645A00106163636F756E744E6F6E4C6F636B65645A001563726564656E7469616C734E6F6E457870697265645A0007656E61626C65644C000B617574686F72697469657371007E003A4C000870617373776F726471007E000E4C0008757365726E616D6571007E000E7870010101017371007E0048737200116A6176612E7574696C2E54726565536574DD98509395ED875B0300007870737200466F72672E737072696E676672616D65776F726B2E73656375726974792E636F72652E7573657264657461696C732E5573657224417574686F72697479436F6D70617261746F7200000000000001F4020000787077040000001471007E000F71007E001171007E001371007E001571007E001771007E001971007E001B71007E001D71007E001F71007E002171007E002371007E002571007E002771007E002971007E002B71007E002D71007E002F71007E003171007E003371007E0035787071007E00477372000E6A6176612E6C616E672E4C6F6E673B8BE490CC8F23DF0200014A000576616C7565787200106A6176612E6C616E672E4E756D62657286AC951D0B94E08B02000078700000000000000001); +INSERT INTO `oauth_refresh_token` VALUES ('f91f06fa89955f6805a646c74fe24639', 0xACED00057372004C6F72672E737072696E676672616D65776F726B2E73656375726974792E6F61757468322E636F6D6D6F6E2E44656661756C744578706972696E674F417574683252656672657368546F6B656E2FDF47639DD0C9B70200014C000A65787069726174696F6E7400104C6A6176612F7574696C2F446174653B787200446F72672E737072696E676672616D65776F726B2E73656375726974792E6F61757468322E636F6D6D6F6E2E44656661756C744F417574683252656672657368546F6B656E73E10E0A6354D45E0200014C000576616C75657400124C6A6176612F6C616E672F537472696E673B787074002433343937313131382D343864392D346365332D613136342D6232666433356334646666357372000E6A6176612E7574696C2E44617465686A81014B597419030000787077080000016A767EADEF78, 0xACED0005737200416F72672E737072696E676672616D65776F726B2E73656375726974792E6F61757468322E70726F76696465722E4F417574683241757468656E7469636174696F6EBD400B02166252130200024C000D73746F7265645265717565737474003C4C6F72672F737072696E676672616D65776F726B2F73656375726974792F6F61757468322F70726F76696465722F4F4175746832526571756573743B4C00127573657241757468656E7469636174696F6E7400324C6F72672F737072696E676672616D65776F726B2F73656375726974792F636F72652F41757468656E7469636174696F6E3B787200476F72672E737072696E676672616D65776F726B2E73656375726974792E61757468656E7469636174696F6E2E416273747261637441757468656E7469636174696F6E546F6B656ED3AA287E6E47640E0200035A000D61757468656E746963617465644C000B617574686F7269746965737400164C6A6176612F7574696C2F436F6C6C656374696F6E3B4C000764657461696C737400124C6A6176612F6C616E672F4F626A6563743B787000737200266A6176612E7574696C2E436F6C6C656374696F6E7324556E6D6F6469666961626C654C697374FC0F2531B5EC8E100200014C00046C6973747400104C6A6176612F7574696C2F4C6973743B7872002C6A6176612E7574696C2E436F6C6C656374696F6E7324556E6D6F6469666961626C65436F6C6C656374696F6E19420080CB5EF71E0200014C00016371007E00047870737200136A6176612E7574696C2E41727261794C6973747881D21D99C7619D03000149000473697A65787000000014770400000014737200426F72672E737072696E676672616D65776F726B2E73656375726974792E636F72652E617574686F726974792E53696D706C654772616E746564417574686F7269747900000000000001F40200014C0004726F6C657400124C6A6176612F6C616E672F537472696E673B787074000E61646D696E3A6D656E753A6164647371007E000D74001661646D696E3A6D656E753A626174636852656D6F76657371007E000D74000F61646D696E3A6D656E753A656469747371007E000D74000F61646D696E3A6D656E753A6C6973747371007E000D74000F61646D696E3A6D656E753A6D656E757371007E000D74001161646D696E3A6D656E753A72656D6F76657371007E000D74000E61646D696E3A726F6C653A6164647371007E000D74001661646D696E3A726F6C653A626174636852656D6F76657371007E000D74000F61646D696E3A726F6C653A656469747371007E000D74001161646D696E3A726F6C653A72656D6F76657371007E000D74000F61646D696E3A726F6C653A726F6C657371007E000D74000E61646D696E3A757365723A6164647371007E000D74001661646D696E3A757365723A626174636852656D6F76657371007E000D74001261646D696E3A757365723A64697361626C657371007E000D74000F61646D696E3A757365723A656469747371007E000D74001161646D696E3A757365723A72656D6F76657371007E000D74001361646D696E3A757365723A72657365745077647371007E000D74000F61646D696E3A757365723A757365727371007E000D74000B636D733A636F6E74656E747371007E000D740008636D733A66696C657871007E000C707372003A6F72672E737072696E676672616D65776F726B2E73656375726974792E6F61757468322E70726F76696465722E4F41757468325265717565737400000000000000010200075A0008617070726F7665644C000B617574686F72697469657371007E00044C000A657874656E73696F6E7374000F4C6A6176612F7574696C2F4D61703B4C000B726564697265637455726971007E000E4C00077265667265736874003B4C6F72672F737072696E676672616D65776F726B2F73656375726974792F6F61757468322F70726F76696465722F546F6B656E526571756573743B4C000B7265736F7572636549647374000F4C6A6176612F7574696C2F5365743B4C000D726573706F6E7365547970657371007E003A787200386F72672E737072696E676672616D65776F726B2E73656375726974792E6F61757468322E70726F76696465722E426173655265717565737436287A3EA37169BD0200034C0008636C69656E74496471007E000E4C001172657175657374506172616D657465727371007E00384C000573636F706571007E003A7870740003617070737200256A6176612E7574696C2E436F6C6C656374696F6E7324556E6D6F6469666961626C654D6170F1A5A8FE74F507420200014C00016D71007E00387870737200116A6176612E7574696C2E486173684D61700507DAC1C31660D103000246000A6C6F6164466163746F724900097468726573686F6C6478703F400000000000067708000000080000000374000A6772616E745F7479706574000870617373776F7264740009636C69656E745F6964740003617070740008757365726E616D6574000561646D696E78737200256A6176612E7574696C2E436F6C6C656374696F6E7324556E6D6F6469666961626C65536574801D92D18F9B80550200007871007E0009737200176A6176612E7574696C2E4C696E6B656448617368536574D86CD75A95DD2A1E020000787200116A6176612E7574696C2E48617368536574BA44859596B8B7340300007870770C000000103F4000000000000171007E003D78017371007E004B770C000000103F40000000000000787371007E00403F40000000000000770800000010000000007870707371007E004B770C000000103F40000000000000787371007E004B770C000000103F40000000000000787372004F6F72672E737072696E676672616D65776F726B2E73656375726974792E61757468656E7469636174696F6E2E557365726E616D6550617373776F726441757468656E7469636174696F6E546F6B656E00000000000001F40200024C000B63726564656E7469616C7371007E00054C00097072696E636970616C71007E00057871007E0003017371007E00077371007E000B0000001477040000001471007E000F71007E001171007E001371007E001571007E001771007E001971007E001B71007E001D71007E001F71007E002171007E002371007E002571007E002771007E002971007E002B71007E002D71007E002F71007E003171007E003371007E00357871007E0054737200176A6176612E7574696C2E4C696E6B6564486173684D617034C04E5C106CC0FB0200015A000B6163636573734F726465727871007E00403F400000000000067708000000080000000474000D636C69656E745F73656372657474000631323334353671007E004271007E004371007E004471007E004571007E004671007E00477800707372002B636F6D2E626F6F74646F2E636C6F7564646F61646D696E2E736563756974792E43757272656E7455736572FA08FA21BD5406A90200024C000269647400104C6A6176612F6C616E672F4C6F6E673B4C00046E616D6571007E000E787200326F72672E737072696E676672616D65776F726B2E73656375726974792E636F72652E7573657264657461696C732E5573657200000000000001F40200075A00116163636F756E744E6F6E457870697265645A00106163636F756E744E6F6E4C6F636B65645A001563726564656E7469616C734E6F6E457870697265645A0007656E61626C65644C000B617574686F72697469657371007E003A4C000870617373776F726471007E000E4C0008757365726E616D6571007E000E7870010101017371007E0048737200116A6176612E7574696C2E54726565536574DD98509395ED875B0300007870737200466F72672E737072696E676672616D65776F726B2E73656375726974792E636F72652E7573657264657461696C732E5573657224417574686F72697479436F6D70617261746F7200000000000001F4020000787077040000001471007E000F71007E001171007E001371007E001571007E001771007E001971007E001B71007E001D71007E001F71007E002171007E002371007E002571007E002771007E002971007E002B71007E002D71007E002F71007E003171007E003371007E0035787071007E00477372000E6A6176612E6C616E672E4C6F6E673B8BE490CC8F23DF0200014A000576616C7565787200106A6176612E6C616E672E4E756D62657286AC951D0B94E08B0200007870000000000000000174000FE8B685E7BAA7E7AEA1E79086E59198); -- ---------------------------- -- Table structure for `sys_dept` @@ -456,7 +457,6 @@ INSERT INTO `sys_menu` VALUES ('86', '85', '列表', '/api-base/log', null, '2', INSERT INTO `sys_menu` VALUES ('87', '81', '上传', '/file/upload', null, '2', null, null, null, null, null, null); INSERT INTO `sys_menu` VALUES ('88', '0', '系统监控', null, null, '0', 'fa fa-video-camera', null, null, null, null, null); INSERT INTO `sys_menu` VALUES ('89', '88', '服务注册', 'http://localhost:8001', null, '1', null, null, null, null, null, null); -INSERT INTO `sys_menu` VALUES ('90', '0', '系统工具', null, null, '0', 'fa fa-wrench', null, null, null, null, null); -- ---------------------------- -- Table structure for `sys_role` @@ -643,7 +643,6 @@ INSERT INTO `sys_role_menu` VALUES ('2343', '77', '84'); INSERT INTO `sys_role_menu` VALUES ('2344', '77', '72'); INSERT INTO `sys_role_menu` VALUES ('2345', '77', '-1'); INSERT INTO `sys_role_menu` VALUES ('2346', '77', '77'); -INSERT INTO `sys_role_menu` VALUES ('3195', '1', '90'); INSERT INTO `sys_role_menu` VALUES ('3196', '1', '88'); INSERT INTO `sys_role_menu` VALUES ('3197', '1', '89'); INSERT INTO `sys_role_menu` VALUES ('3198', '1', '84'); @@ -742,7 +741,7 @@ INSERT INTO `sys_user` VALUES ('132', 'lyf', '刘亦菲', '7fdb1d9008f45950c1620 INSERT INTO `sys_user` VALUES ('134', 'lyh', '李彦宏', 'dc26092b3244d9d432863f2738180e19', '8', 'lyh@bootdo.com', null, '1', null, null, null, null, '2018-03-18 00:00:00', null, null, null, null, null, null); INSERT INTO `sys_user` VALUES ('135', 'wjl', '王健林', '3967697dfced162cf6a34080259b83aa', '6', 'wjl@bootod.com', null, '1', null, null, null, null, '2018-03-19 00:00:00', null, null, null, null, null, null); INSERT INTO `sys_user` VALUES ('136', 'gdg2', '郭德纲', '3bb1bda86bc02bf6478cd91e42135d2f', '9', 'gdg@bootdo.com', null, '1', null, null, null, null, '2018-03-07 00:00:00', null, null, null, null, null, null); -INSERT INTO `sys_user` VALUES ('156', 'test2', '测试二', '9f411bc8445132fba6bef0ee865f9d08', null, 'test2@bootdo', null, null, null, null, null, null, '2018-03-06 00:00:00', null, null, null, null, null, null); +INSERT INTO `sys_user` VALUES ('156', 'test2', '测试二', '9f411bc8445132fba6bef0ee865f9d08', null, 'test2@bootdo', null, null, null, null, null, null, '2018-03-15 00:00:00', null, null, null, null, null, null); -- ---------------------------- -- Table structure for `sys_user_plus` @@ -768,7 +767,7 @@ CREATE TABLE `sys_user_role` ( `user_id` bigint(20) DEFAULT NULL COMMENT '用户ID', `role_id` bigint(20) DEFAULT NULL COMMENT '角色ID', PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=166 DEFAULT CHARSET=utf8 COMMENT='用户与角色对应关系'; +) ENGINE=InnoDB AUTO_INCREMENT=169 DEFAULT CHARSET=utf8 COMMENT='用户与角色对应关系'; -- ---------------------------- -- Records of sys_user_role @@ -795,7 +794,6 @@ INSERT INTO `sys_user_role` VALUES ('111', '2', '1'); INSERT INTO `sys_user_role` VALUES ('124', null, '48'); INSERT INTO `sys_user_role` VALUES ('127', '123', '48'); INSERT INTO `sys_user_role` VALUES ('132', '36', '48'); -INSERT INTO `sys_user_role` VALUES ('150', '156', '1'); INSERT INTO `sys_user_role` VALUES ('151', '136', '1'); INSERT INTO `sys_user_role` VALUES ('152', '135', '1'); INSERT INTO `sys_user_role` VALUES ('153', '134', '1'); @@ -806,6 +804,7 @@ INSERT INTO `sys_user_role` VALUES ('159', '131', '1'); INSERT INTO `sys_user_role` VALUES ('160', '130', '1'); INSERT INTO `sys_user_role` VALUES ('164', '124', '56'); INSERT INTO `sys_user_role` VALUES ('165', '124', '48'); +INSERT INTO `sys_user_role` VALUES ('168', '156', '1'); -- ---------------------------- -- Table structure for `sys_user_token` -- Gitee