Skip to content

Commit 4ecceba

Browse files
committed
2.10.4 add HttpSecurityCustomer
1 parent 11d8219 commit 4ecceba

File tree

11 files changed

+91
-17
lines changed

11 files changed

+91
-17
lines changed

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515

1616
<groupId>com.codingapi.springboot</groupId>
1717
<artifactId>springboot-parent</artifactId>
18-
<version>2.10.3</version>
18+
<version>2.10.4</version>
1919

2020
<url>https://github.com/codingapi/springboot-framewrok</url>
2121
<name>springboot-parent</name>

springboot-starter-data-authorization/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<parent>
77
<artifactId>springboot-parent</artifactId>
88
<groupId>com.codingapi.springboot</groupId>
9-
<version>2.10.3</version>
9+
<version>2.10.4</version>
1010
</parent>
1111

1212
<artifactId>springboot-starter-data-authorization</artifactId>

springboot-starter-data-fast/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<parent>
66
<artifactId>springboot-parent</artifactId>
77
<groupId>com.codingapi.springboot</groupId>
8-
<version>2.10.3</version>
8+
<version>2.10.4</version>
99
</parent>
1010
<modelVersion>4.0.0</modelVersion>
1111

springboot-starter-flow/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<parent>
77
<artifactId>springboot-parent</artifactId>
88
<groupId>com.codingapi.springboot</groupId>
9-
<version>2.10.3</version>
9+
<version>2.10.4</version>
1010
</parent>
1111

1212
<name>springboot-starter-flow</name>

springboot-starter-security/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<parent>
77
<artifactId>springboot-parent</artifactId>
88
<groupId>com.codingapi.springboot</groupId>
9-
<version>2.10.3</version>
9+
<version>2.10.4</version>
1010
</parent>
1111

1212
<artifactId>springboot-starter-security</artifactId>

springboot-starter-security/src/main/java/com/codingapi/springboot/security/AutoConfiguration.java

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
import com.codingapi.springboot.security.configurer.HttpSecurityConfigurer;
44
import com.codingapi.springboot.security.controller.VersionController;
5+
import com.codingapi.springboot.security.customer.DefaultHttpSecurityCustomer;
6+
import com.codingapi.springboot.security.customer.HttpSecurityCustomer;
57
import com.codingapi.springboot.security.dto.request.LoginRequest;
68
import com.codingapi.springboot.security.dto.response.LoginResponse;
79
import com.codingapi.springboot.security.filter.*;
@@ -67,6 +69,11 @@ public AuthenticationTokenFilter authenticationTokenFilter() {
6769
};
6870
}
6971

72+
@Bean
73+
@ConditionalOnMissingBean
74+
public HttpSecurityCustomer httpSecurityCustomer(CodingApiSecurityProperties properties){
75+
return new DefaultHttpSecurityCustomer(properties);
76+
}
7077

7178
@Bean
7279
@ConditionalOnMissingBean
@@ -91,16 +98,15 @@ public LoginResponse postHandle(HttpServletRequest request, HttpServletResponse
9198

9299
@Bean
93100
@ConditionalOnMissingBean
94-
public SecurityFilterChain filterChain(HttpSecurity security, TokenGateway tokenGateway, SecurityLoginHandler loginHandler,
95-
CodingApiSecurityProperties properties, AuthenticationTokenFilter authenticationTokenFilter) throws Exception {
96-
//disable basic auth
97-
security.httpBasic().disable();
98-
99-
//before add addCorsMappings to enable cors.
100-
security.cors();
101-
if (properties.isDisableCsrf()) {
102-
security.csrf().disable();
103-
}
101+
public SecurityFilterChain filterChain(HttpSecurity security,
102+
HttpSecurityCustomer httpSecurityCustomer,
103+
TokenGateway tokenGateway,
104+
SecurityLoginHandler loginHandler,
105+
CodingApiSecurityProperties properties,
106+
AuthenticationTokenFilter authenticationTokenFilter) throws Exception {
107+
108+
httpSecurityCustomer.customize(security);
109+
104110
security.apply(new HttpSecurityConfigurer(tokenGateway, loginHandler, properties, authenticationTokenFilter));
105111
security
106112
.exceptionHandling()
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
package com.codingapi.springboot.security.customer;
2+
3+
import com.codingapi.springboot.security.properties.CodingApiSecurityProperties;
4+
import lombok.AllArgsConstructor;
5+
import org.springframework.security.config.Customizer;
6+
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
7+
import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer;
8+
import org.springframework.security.config.annotation.web.configurers.HeadersConfigurer;
9+
10+
@AllArgsConstructor
11+
public class DefaultHttpSecurityCustomer implements HttpSecurityCustomer {
12+
13+
private final CodingApiSecurityProperties properties;
14+
15+
@Override
16+
public void customize(HttpSecurity security) throws Exception {
17+
//disable basic auth
18+
if (properties.isDisableBasicAuth()) {
19+
security.httpBasic(AbstractHttpConfigurer::disable);
20+
}
21+
22+
//disable frame options
23+
if (properties.isDisableFrameOptions()) {
24+
security.headers(new Customizer<HeadersConfigurer<HttpSecurity>>() {
25+
@Override
26+
public void customize(HeadersConfigurer<HttpSecurity> httpSecurityHeadersConfigurer) {
27+
httpSecurityHeadersConfigurer.frameOptions(new Customizer<HeadersConfigurer<HttpSecurity>.FrameOptionsConfig>() {
28+
@Override
29+
public void customize(HeadersConfigurer<HttpSecurity>.FrameOptionsConfig frameOptionsConfig) {
30+
frameOptionsConfig.disable();
31+
}
32+
});
33+
}
34+
});
35+
}
36+
37+
//before add addCorsMappings to enable cors.
38+
security.cors(httpSecurityCorsConfigurer -> {
39+
if (properties.isDisableCors()) {
40+
httpSecurityCorsConfigurer.disable();
41+
}
42+
});
43+
44+
security.csrf(httpSecurityCsrfConfigurer -> {
45+
if (properties.isDisableCsrf()) {
46+
httpSecurityCsrfConfigurer.disable();
47+
}
48+
});
49+
}
50+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package com.codingapi.springboot.security.customer;
2+
3+
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
4+
5+
public interface HttpSecurityCustomer {
6+
7+
void customize(HttpSecurity security) throws Exception;
8+
9+
}

springboot-starter-security/src/main/java/com/codingapi/springboot/security/properties/CodingApiSecurityProperties.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,15 @@ public class CodingApiSecurityProperties {
3838
*/
3939
private String aseIv = "QUNYRkdIQEVEUyNYQ1phcw==";
4040

41+
/**
42+
* 禁用Basic Auth
43+
*/
44+
private boolean disableBasicAuth = true;
45+
46+
/**
47+
* 禁用FrameOptions
48+
*/
49+
private boolean disableFrameOptions = true;
4150

4251
/**
4352
* 启用禁用CSRF

springboot-starter/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<parent>
66
<groupId>com.codingapi.springboot</groupId>
77
<artifactId>springboot-parent</artifactId>
8-
<version>2.10.3</version>
8+
<version>2.10.4</version>
99
</parent>
1010
<artifactId>springboot-starter</artifactId>
1111

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
------------------------------------------------------
2-
CodingApi SpringBoot-Starter 2.10.3
2+
CodingApi SpringBoot-Starter 2.10.4
33
springboot version (${spring-boot.version})
44
------------------------------------------------------

0 commit comments

Comments
 (0)