Skip to content

Commit 9adf5ad

Browse files
Merge pull request #12 from LookBackInTheRain/dev
dev
2 parents 6f27ac4 + 0ade1bb commit 9adf5ad

File tree

10 files changed

+82
-41
lines changed

10 files changed

+82
-41
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ spring-security ,spring-security-oauth2 ,string boot 学习
1818
boot:
1919
oauth:
2020
# token 存储方式,可选配置
21-
token-store-type: jwt #默认为 memory, redis
21+
token-store-type: jwt #默认为 memory
2222
# token签名秘钥,可选配置,默认:OAUTHBOOT@IUY09&098#UIOKNJJ-YUIT.CLUB
2323
token-signing-key: 123qwe
2424
# 登录处理url 可选配置

UPDATE.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,21 @@
1+
2+
### 2019/3/8 更新
3+
1. 解决无法使用 `refresh_token` 更新`token`问题
4+
2. `spring-boot` 升级并测试通过
5+
6+
|框架/类库/数据库| 旧版本 | 新版本|
7+
|--|--|--|
8+
|java|11(Mac)/ 8(Win10)| - |
9+
| spring-boot | 2.0.5.RELEASE | 2.1.3.RELEASE |
10+
|spring-security|5.0.8.RELEASE | 5.0.8.RELEASE |
11+
|spring-security-oauth2-autoconfigure|2.0.6.RELEASE| 2.1.3.RELEASE |
12+
|mybatis-plus|3.0.4| 3.1.0 |
13+
|数据库连接池(druid)|1.1.11| 1.1.14 |
14+
|swagger-ui|2.9.2| - |
15+
|hibernate-validator|6.0.13.Final| - |
16+
|MySQL|5.7.22 MySQL Community Server| - |
17+
|Redis|4.0.10| - |
18+
119
### 2019/2/15 更新
220
1. 配置token存储类型增加jdbc,已测试通过
321
```

pom.xml

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
<parent>
1515
<groupId>org.springframework.boot</groupId>
1616
<artifactId>spring-boot-starter-parent</artifactId>
17-
<version>2.0.6.RELEASE</version>
17+
<version>2.1.3.RELEASE</version>
1818
<relativePath/> <!-- lookup parent from repository -->
1919
</parent>
2020

@@ -76,7 +76,7 @@
7676
<dependency>
7777
<groupId>org.springframework.security.oauth.boot</groupId>
7878
<artifactId>spring-security-oauth2-autoconfigure</artifactId>
79-
<version>2.1.0.RELEASE</version>
79+
<version>2.1.3.RELEASE</version>
8080
</dependency>
8181

8282

@@ -117,14 +117,20 @@
117117
<dependency>
118118
<groupId>com.baomidou</groupId>
119119
<artifactId>mybatis-plus-boot-starter</artifactId>
120-
<version>3.0.4</version>
120+
<version>3.1.0</version>
121+
</dependency>
122+
123+
<dependency>
124+
<groupId>com.baomidou</groupId>
125+
<artifactId>mybatis-plus-generator</artifactId>
126+
<version>3.1.0</version>
121127
</dependency>
122128

123129

124130
<dependency>
125131
<groupId>com.alibaba</groupId>
126132
<artifactId>druid</artifactId>
127-
<version>1.1.11</version>
133+
<version>1.1.14</version>
128134
</dependency>
129135

130136
<!--swagger start-->

src/main/java/club/yuit/CodeGenerator.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ public static void main(String[] args) {
4444
// 代码生成器
4545
AutoGenerator mpg = new AutoGenerator();
4646

47+
4748
// 全局配置
4849
GlobalConfig gc = new GlobalConfig();
4950
String projectPath = System.getProperty("user.dir");

src/main/java/club/yuit/oauth/boot/config/DbConfig.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
/**
1616
* @author yuit
1717
* @date time 2018/10/9 15:14
18-
*
18+
* 数据库配置
1919
**/
2020
@Configuration
2121
@ConfigurationProperties(prefix = "spring.datasource")

src/main/java/club/yuit/oauth/boot/config/SecurityConfig.java

Lines changed: 8 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -25,22 +25,21 @@
2525
@Order(1)
2626
public class SecurityConfig extends WebSecurityConfigurerAdapter {
2727

28-
@Autowired
28+
2929
private BootUserDetailService userDetailService;
3030

31-
@Autowired
32-
private BootSecurityProperties properties;
3331

34-
@Autowired
35-
private BootLoginFailureHandler handler;
32+
private BootSecurityProperties properties;
3633

37-
@Autowired
38-
private ClientDetailsService clientDetailsService;
3934

40-
@Autowired
41-
BootOAuth2AuthExceptionEntryPoint authenticationEntryPoint;
35+
private BootLoginFailureHandler handler;
4236

4337

38+
public SecurityConfig(BootUserDetailService userDetailService, BootSecurityProperties properties, BootLoginFailureHandler handler) {
39+
this.userDetailService = userDetailService;
40+
this.properties = properties;
41+
this.handler = handler;
42+
}
4443

4544
/**
4645
* 让Security 忽略这些url,不做拦截处理
@@ -86,11 +85,6 @@ protected void configure(HttpSecurity http) throws Exception {
8685
.loginProcessingUrl(properties.getLoginProcessUrl());
8786

8887
http.httpBasic().disable();
89-
90-
91-
92-
93-
9488
}
9589

9690

src/main/java/club/yuit/oauth/boot/config/auth2/OAuth2AuthorizationServerConfig.java

Lines changed: 36 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,23 @@
11
package club.yuit.oauth.boot.config.auth2;
22

33
import club.yuit.oauth.boot.filter.BootBasicAuthenticationFilter;
4-
import club.yuit.oauth.boot.support.oauth2.BootAccessDeniedHandler;
54
import club.yuit.oauth.boot.support.oauth2.BootClientDetailsService;
6-
import club.yuit.oauth.boot.support.oauth2.BootOAuth2AuthExceptionEntryPoint;
7-
import club.yuit.oauth.boot.support.oauth2.BootOAuth2WebResponseExceptionTranslator;
85
import org.springframework.beans.factory.annotation.Autowired;
9-
import org.springframework.beans.factory.annotation.Qualifier;
10-
import org.springframework.boot.autoconfigure.security.SecurityProperties;
11-
import org.springframework.context.ApplicationContext;
12-
import org.springframework.context.annotation.Bean;
136
import org.springframework.context.annotation.Configuration;
147
import org.springframework.http.HttpMethod;
158
import org.springframework.security.authentication.AuthenticationManager;
16-
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
9+
import org.springframework.security.core.userdetails.UserDetailsService;
1710
import org.springframework.security.oauth2.config.annotation.configurers.ClientDetailsServiceConfigurer;
1811
import org.springframework.security.oauth2.config.annotation.web.configuration.AuthorizationServerConfigurerAdapter;
1912
import org.springframework.security.oauth2.config.annotation.web.configuration.EnableAuthorizationServer;
2013
import org.springframework.security.oauth2.config.annotation.web.configurers.AuthorizationServerEndpointsConfigurer;
2114
import org.springframework.security.oauth2.config.annotation.web.configurers.AuthorizationServerSecurityConfigurer;
22-
import org.springframework.security.oauth2.provider.client.ClientCredentialsTokenEndpointFilter;
2315
import org.springframework.security.oauth2.provider.error.WebResponseExceptionTranslator;
2416
import org.springframework.security.oauth2.provider.token.TokenStore;
2517
import org.springframework.security.oauth2.provider.token.store.JwtAccessTokenConverter;
2618
import org.springframework.security.oauth2.provider.token.store.redis.RedisTokenStore;
2719
import org.springframework.security.web.AuthenticationEntryPoint;
2820

29-
import javax.servlet.FilterChain;
30-
3121
/**
3222
* @author yuit
3323
* @date 2018/10/15 14:52
@@ -36,28 +26,46 @@
3626
@EnableAuthorizationServer
3727
public class OAuth2AuthorizationServerConfig extends AuthorizationServerConfigurerAdapter {
3828

39-
@Autowired
29+
4030
private AuthenticationManager authenticationManager;
4131

42-
@Autowired
32+
4333
private BootClientDetailsService clientDetailsService;
4434

45-
@Autowired
35+
4636
private TokenStore tokenStore;
4737

48-
@Autowired(required = false)
38+
4939
private JwtAccessTokenConverter converter;
5040

51-
@Autowired
41+
5242
private AuthenticationEntryPoint authenticationEntryPoint;
5343

5444

55-
@Autowired
45+
5646
private WebResponseExceptionTranslator bootWebResponseExceptionTranslator;
5747

58-
@Autowired
48+
5949
private BootBasicAuthenticationFilter filter;
6050

51+
private UserDetailsService userDetailsService;
52+
53+
@Autowired(required = false)
54+
public OAuth2AuthorizationServerConfig(AuthenticationManager authenticationManager,
55+
BootClientDetailsService clientDetailsService,
56+
TokenStore tokenStore, JwtAccessTokenConverter converter,
57+
AuthenticationEntryPoint authenticationEntryPoint,
58+
WebResponseExceptionTranslator bootWebResponseExceptionTranslator,
59+
BootBasicAuthenticationFilter filter, UserDetailsService userDetailsService) {
60+
this.authenticationManager = authenticationManager;
61+
this.clientDetailsService = clientDetailsService;
62+
this.tokenStore = tokenStore;
63+
this.converter = converter;
64+
this.authenticationEntryPoint = authenticationEntryPoint;
65+
this.bootWebResponseExceptionTranslator = bootWebResponseExceptionTranslator;
66+
this.filter = filter;
67+
this.userDetailsService = userDetailsService;
68+
}
6169

6270
public OAuth2AuthorizationServerConfig() {
6371
super();
@@ -70,10 +78,13 @@ public void configure(AuthorizationServerSecurityConfigurer security) throws Exc
7078
// 允许表单登录
7179
security.allowFormAuthenticationForClients();
7280

81+
// 加载client的service
7382
filter.setClientDetailsService(clientDetailsService);
7483

84+
// 自定义异常处理端口
7585
security.authenticationEntryPoint(authenticationEntryPoint);
7686

87+
// 认证之前的过滤器
7788
security.addTokenEndpointAuthenticationFilter(filter);
7889

7990
security.tokenKeyAccess("permitAll()").checkTokenAccess("isAuthenticated()");
@@ -82,22 +93,29 @@ public void configure(AuthorizationServerSecurityConfigurer security) throws Exc
8293

8394
@Override
8495
public void configure(ClientDetailsServiceConfigurer clients) throws Exception {
96+
// 配置加载客户端的service
8597
clients.withClientDetails(clientDetailsService);
8698
}
8799

88100
@Override
89101
public void configure(AuthorizationServerEndpointsConfigurer endpoints) throws Exception {
90102

91103
endpoints
104+
// token 存储方式
92105
.tokenStore(tokenStore)
93106
.authenticationManager(authenticationManager)
107+
// 不配置会导致token无法刷新
108+
.userDetailsService(userDetailsService)
94109
.allowedTokenEndpointRequestMethods(HttpMethod.POST,HttpMethod.GET);
95110

111+
// 判断当前是否使用jwt
96112
if(!(tokenStore instanceof RedisTokenStore) && this.converter!=null){
97113
endpoints.accessTokenConverter(converter);
98114
}
99115

100116

117+
118+
101119
// 处理 ExceptionTranslationFilter 抛出的异常
102120
endpoints.exceptionTranslator(bootWebResponseExceptionTranslator);
103121

src/main/java/club/yuit/oauth/boot/config/auth2/OAuth2ResourceServerConfig.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
/**
1515
* @author yuit
1616
* @date 2018/10/15 14:57
17+
* 资源服务配置
1718
**/
1819
@Configuration
1920
@EnableResourceServer

src/main/java/club/yuit/oauth/boot/config/auth2/TokenStoreConfig.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,9 @@
2121
/**
2222
* @author yuit
2323
* @date 2018/10/17 16:38
24+
*
25+
* token 存储方式配置
26+
*
2427
**/
2528
@Configuration
2629
public class TokenStoreConfig {

src/main/resources/application.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ spring:
2424
max-wait: -1 # 连接池最大阻塞等待时间(负数代表没有限制)
2525
max-idle: 8 # 连接池最大空闲连接数
2626
min-idle: 0 # 连接池最小空闲连接数
27-
timeout: 10000 # 链接超时时间 (ms)
27+
timeout: 10000 # 链接超时时间 (ms),连接时间小会导致连接超时
2828
# 模板引擎配置
2929
thymeleaf:
3030
prefix: classpath:/views/
@@ -34,7 +34,7 @@ spring:
3434
throw-exception-if-no-handler-found: true
3535

3636

37-
logging.level.org.springframework.security: DEBUG
37+
#logging.level.org.springframework.security: DEBUG
3838

3939

4040
mybatis-plus:
@@ -48,7 +48,7 @@ mybatis-plus:
4848
db-type: mysql # 3.0 版本的必须配置 不然无法启动 nested exception is com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Error: GlobalConfigUtils setMetaData Fail ! Cause:java.lang.NullPointerException
4949
boot:
5050
oauth:
51-
token-store-type: jdbc
51+
token-store-type: jwt
5252
token-signing-key: 123123
5353

5454

0 commit comments

Comments
 (0)