11package com .park .utmstack .config ;
22
3+ import com .park .utmstack .loggin .api_key .ApiKeyUsageLoggingService ;
34import com .park .utmstack .loggin .filter .MdcCleanupFilter ;
5+ import com .park .utmstack .repository .UserRepository ;
46import com .park .utmstack .security .AuthoritiesConstants ;
7+ import com .park .utmstack .security .api_key .ApiKeyConfigurer ;
8+ import com .park .utmstack .security .api_key .ApiKeyFilter ;
59import com .park .utmstack .security .internalApiKey .InternalApiKeyConfigurer ;
610import com .park .utmstack .security .internalApiKey .InternalApiKeyProvider ;
711import com .park .utmstack .security .jwt .JWTConfigurer ;
12+ import com .park .utmstack .security .jwt .JWTFilter ;
813import com .park .utmstack .security .jwt .TokenProvider ;
14+ import com .park .utmstack .service .api_key .ApiKeyService ;
15+ import lombok .RequiredArgsConstructor ;
16+ import org .apache .commons .net .util .SubnetUtils ;
917import org .springframework .beans .factory .BeanInitializationException ;
1018import org .springframework .boot .web .servlet .FilterRegistrationBean ;
1119import org .springframework .context .annotation .Bean ;
2937
3038import javax .annotation .PostConstruct ;
3139import javax .servlet .http .HttpServletResponse ;
40+ import java .util .concurrent .ConcurrentHashMap ;
41+ import java .util .concurrent .ConcurrentMap ;
3242
3343@ Configuration
44+ @ RequiredArgsConstructor
3445@ EnableWebSecurity
3546@ EnableGlobalMethodSecurity (prePostEnabled = true , securedEnabled = true )
3647@ Import (SecurityProblemSupport .class )
@@ -41,17 +52,7 @@ public class SecurityConfiguration extends WebSecurityConfigurerAdapter {
4152 private final TokenProvider tokenProvider ;
4253 private final CorsFilter corsFilter ;
4354 private final InternalApiKeyProvider internalApiKeyProvider ;
44-
45- public SecurityConfiguration (AuthenticationManagerBuilder authenticationManagerBuilder ,
46- UserDetailsService userDetailsService ,
47- TokenProvider tokenProvider ,
48- CorsFilter corsFilter , InternalApiKeyProvider internalApiKeyProvider ) {
49- this .authenticationManagerBuilder = authenticationManagerBuilder ;
50- this .userDetailsService = userDetailsService ;
51- this .tokenProvider = tokenProvider ;
52- this .corsFilter = corsFilter ;
53- this .internalApiKeyProvider = internalApiKeyProvider ;
54- }
55+ private final ApiKeyFilter apiKeyFilter ;
5556
5657 @ PostConstruct
5758 public void init () {
@@ -127,7 +128,10 @@ public void configure(HttpSecurity http) throws Exception {
127128 .and ()
128129 .apply (securityConfigurerAdapterForJwt ())
129130 .and ()
130- .apply (securityConfigurerAdapterForInternalApiKey ());
131+ .apply (securityConfigurerAdapterForInternalApiKey ())
132+ .and ()
133+ .apply (securityConfigurerAdapterForApiKey ()) ;
134+
131135
132136 }
133137
@@ -138,4 +142,9 @@ private JWTConfigurer securityConfigurerAdapterForJwt() {
138142 private InternalApiKeyConfigurer securityConfigurerAdapterForInternalApiKey () {
139143 return new InternalApiKeyConfigurer (internalApiKeyProvider );
140144 }
145+
146+ private ApiKeyConfigurer securityConfigurerAdapterForApiKey () {
147+ return new ApiKeyConfigurer (apiKeyFilter );
148+ }
149+
141150}
0 commit comments