Remove usage of WebSecurityConfigurerAdapter
Switch to expose a SecurityFilterChain Bean Closes gh-52
This commit is contained in:
		
							parent
							
								
									0bf72c4580
								
							
						
					
					
						commit
						c7ee163bdc
					
				| @ -18,30 +18,27 @@ package example; | |||||||
| import org.springframework.context.annotation.Bean; | import org.springframework.context.annotation.Bean; | ||||||
| import org.springframework.security.config.annotation.web.builders.HttpSecurity; | import org.springframework.security.config.annotation.web.builders.HttpSecurity; | ||||||
| import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; | import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; | ||||||
| import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; |  | ||||||
| import org.springframework.security.core.userdetails.User; | import org.springframework.security.core.userdetails.User; | ||||||
| import org.springframework.security.core.userdetails.UserDetails; | import org.springframework.security.core.userdetails.UserDetails; | ||||||
| import org.springframework.security.core.userdetails.UserDetailsService; | import org.springframework.security.core.userdetails.UserDetailsService; | ||||||
| import org.springframework.security.provisioning.InMemoryUserDetailsManager; | import org.springframework.security.provisioning.InMemoryUserDetailsManager; | ||||||
|  | import org.springframework.security.web.SecurityFilterChain; | ||||||
| 
 | 
 | ||||||
| @EnableWebSecurity | @EnableWebSecurity | ||||||
| public class SecurityConfiguration extends WebSecurityConfigurerAdapter { | public class SecurityConfiguration { | ||||||
| 
 | 
 | ||||||
| 	// @formatter:off | 	@Bean | ||||||
| 	@Override | 	public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception { | ||||||
| 	protected void configure(HttpSecurity http) throws Exception { | 		// @formatter:off | ||||||
| 		http | 		http | ||||||
| 				.authorizeRequests((authorizeRequests) -> | 				.authorizeHttpRequests((authorize) -> authorize | ||||||
| 						authorizeRequests | 						.antMatchers("/login", "/resources/**").permitAll() | ||||||
| 								.antMatchers("/login", "/resources/**").permitAll() | 						.anyRequest().authenticated() | ||||||
| 								.anyRequest().authenticated() |  | ||||||
| 				) | 				) | ||||||
| 				.jee((jee) -> | 				.jee((jee) -> jee.mappableRoles("USER", "ADMIN")); | ||||||
| 						jee | 		// @formatter:on | ||||||
| 								.mappableRoles("USER", "ADMIN") | 		return http.build(); | ||||||
| 				); |  | ||||||
| 	} | 	} | ||||||
| 	// @formatter:on |  | ||||||
| 
 | 
 | ||||||
| 	// @formatter:off | 	// @formatter:off | ||||||
| 	@Bean | 	@Bean | ||||||
|  | |||||||
| @ -18,31 +18,30 @@ package example; | |||||||
| import org.springframework.context.annotation.Bean; | import org.springframework.context.annotation.Bean; | ||||||
| import org.springframework.security.config.annotation.web.builders.HttpSecurity; | import org.springframework.security.config.annotation.web.builders.HttpSecurity; | ||||||
| import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; | import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; | ||||||
| import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; |  | ||||||
| import org.springframework.security.core.userdetails.User; | import org.springframework.security.core.userdetails.User; | ||||||
| import org.springframework.security.core.userdetails.UserDetails; | import org.springframework.security.core.userdetails.UserDetails; | ||||||
| import org.springframework.security.core.userdetails.UserDetailsService; | import org.springframework.security.core.userdetails.UserDetailsService; | ||||||
| import org.springframework.security.provisioning.InMemoryUserDetailsManager; | import org.springframework.security.provisioning.InMemoryUserDetailsManager; | ||||||
| 
 | import org.springframework.security.web.SecurityFilterChain; | ||||||
| import static org.springframework.security.config.Customizer.withDefaults; |  | ||||||
| 
 | 
 | ||||||
| @EnableWebSecurity | @EnableWebSecurity | ||||||
| public class SecurityConfiguration extends WebSecurityConfigurerAdapter { | public class SecurityConfiguration { | ||||||
| 
 | 
 | ||||||
| 	@Override | 	@Bean | ||||||
| 	// @formatter:off | 	public SecurityFilterChain securityFilterChain(HttpSecurity http, UserDetailsService users) throws Exception { | ||||||
| 	protected void configure(HttpSecurity http) throws Exception { | 		// @formatter:off | ||||||
| 		http | 		http | ||||||
| 			.authorizeRequests((requests) -> requests | 				.authorizeRequests((authorize) -> authorize | ||||||
| 					.anyRequest().authenticated() | 						.anyRequest().authenticated() | ||||||
| 			) | 				) | ||||||
| 			.formLogin((form) -> form | 				.formLogin((form) -> form | ||||||
| 				.loginPage("/login") | 						.loginPage("/login") | ||||||
| 				.permitAll() | 						.permitAll() | ||||||
| 			) | 				) | ||||||
| 			.rememberMe(withDefaults()); | 				.rememberMe((rememberMe) -> rememberMe.userDetailsService(users)); | ||||||
|  | 		// @formatter:on | ||||||
|  | 		return http.build(); | ||||||
| 	} | 	} | ||||||
| 	// @formatter:on |  | ||||||
| 
 | 
 | ||||||
| 	// @formatter:off | 	// @formatter:off | ||||||
| 	@Bean | 	@Bean | ||||||
|  | |||||||
| @ -18,28 +18,29 @@ package example; | |||||||
| import org.springframework.context.annotation.Bean; | import org.springframework.context.annotation.Bean; | ||||||
| import org.springframework.security.config.annotation.web.builders.HttpSecurity; | import org.springframework.security.config.annotation.web.builders.HttpSecurity; | ||||||
| import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; | import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; | ||||||
| import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; |  | ||||||
| import org.springframework.security.core.userdetails.User; | import org.springframework.security.core.userdetails.User; | ||||||
| import org.springframework.security.core.userdetails.UserDetails; | import org.springframework.security.core.userdetails.UserDetails; | ||||||
| import org.springframework.security.core.userdetails.UserDetailsService; | import org.springframework.security.core.userdetails.UserDetailsService; | ||||||
| import org.springframework.security.provisioning.InMemoryUserDetailsManager; | import org.springframework.security.provisioning.InMemoryUserDetailsManager; | ||||||
|  | import org.springframework.security.web.SecurityFilterChain; | ||||||
| 
 | 
 | ||||||
| @EnableWebSecurity | @EnableWebSecurity | ||||||
| public class SecurityConfiguration extends WebSecurityConfigurerAdapter { | public class SecurityConfiguration { | ||||||
| 
 | 
 | ||||||
| 	@Override | 	@Bean | ||||||
| 	// @formatter:off | 	public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception { | ||||||
| 	protected void configure(HttpSecurity http) throws Exception { | 		// @formatter:off | ||||||
| 		http | 		http | ||||||
| 			.authorizeRequests((requests) -> requests | 				.authorizeRequests((authorize) -> authorize | ||||||
| 				.anyRequest().authenticated() | 						.anyRequest().authenticated() | ||||||
| 			) | 				) | ||||||
| 			.formLogin((form) -> form | 				.formLogin((form) -> form | ||||||
| 				.loginPage("/login") | 						.loginPage("/login") | ||||||
| 				.permitAll() | 						.permitAll() | ||||||
| 			); | 				); | ||||||
|  | 		// @formatter:on | ||||||
|  | 		return http.build(); | ||||||
| 	} | 	} | ||||||
| 	// @formatter:on |  | ||||||
| 
 | 
 | ||||||
| 	// @formatter:off | 	// @formatter:off | ||||||
| 	@Bean | 	@Bean | ||||||
|  | |||||||
| @ -17,14 +17,13 @@ package example; | |||||||
| 
 | 
 | ||||||
| import org.springframework.context.annotation.Bean; | import org.springframework.context.annotation.Bean; | ||||||
| import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; | import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; | ||||||
| import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; |  | ||||||
| import org.springframework.security.core.userdetails.User; | import org.springframework.security.core.userdetails.User; | ||||||
| import org.springframework.security.core.userdetails.UserDetails; | import org.springframework.security.core.userdetails.UserDetails; | ||||||
| import org.springframework.security.core.userdetails.UserDetailsService; | import org.springframework.security.core.userdetails.UserDetailsService; | ||||||
| import org.springframework.security.provisioning.InMemoryUserDetailsManager; | import org.springframework.security.provisioning.InMemoryUserDetailsManager; | ||||||
| 
 | 
 | ||||||
| @EnableWebSecurity | @EnableWebSecurity | ||||||
| public class SecurityConfiguration extends WebSecurityConfigurerAdapter { | public class SecurityConfiguration { | ||||||
| 
 | 
 | ||||||
| 	// @formatter:off | 	// @formatter:off | ||||||
| 	@Bean | 	@Bean | ||||||
|  | |||||||
| @ -34,7 +34,8 @@ public class DataSourceConfiguration { | |||||||
| 	@Bean | 	@Bean | ||||||
| 	public DataSource dataSource() { | 	public DataSource dataSource() { | ||||||
| 		EmbeddedDatabaseBuilder builder = new EmbeddedDatabaseBuilder(); | 		EmbeddedDatabaseBuilder builder = new EmbeddedDatabaseBuilder(); | ||||||
| 		return builder.setType(EmbeddedDatabaseType.HSQL).build(); | 		return builder.setType(EmbeddedDatabaseType.HSQL) | ||||||
|  | 				.addScript("classpath:org/springframework/security/core/userdetails/jdbc/users.ddl").build(); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| } | } | ||||||
|  | |||||||
| @ -17,28 +17,27 @@ package example; | |||||||
| 
 | 
 | ||||||
| import javax.sql.DataSource; | import javax.sql.DataSource; | ||||||
| 
 | 
 | ||||||
| import org.springframework.beans.factory.annotation.Autowired; | import org.springframework.context.annotation.Bean; | ||||||
| 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.EnableWebSecurity; | ||||||
| import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; |  | ||||||
| import org.springframework.security.core.userdetails.User; | import org.springframework.security.core.userdetails.User; | ||||||
|  | import org.springframework.security.core.userdetails.UserDetails; | ||||||
|  | import org.springframework.security.provisioning.JdbcUserDetailsManager; | ||||||
|  | import org.springframework.security.provisioning.UserDetailsManager; | ||||||
| 
 | 
 | ||||||
| @EnableWebSecurity | @EnableWebSecurity | ||||||
| public class SecurityConfiguration extends WebSecurityConfigurerAdapter { | public class SecurityConfiguration { | ||||||
| 
 | 
 | ||||||
| 	@Autowired | 	@Bean | ||||||
| 	DataSource dataSource; | 	UserDetailsManager users(DataSource dataSource) { | ||||||
| 
 | 		UserDetails user = User.builder().username("user") | ||||||
| 	// @formatter:off | 				.password("{bcrypt}$2a$10$AiyMWI4UBLozgXq6itzyVuxrtofjcPzn/WS3fOrcqgzdax9jB7Io.").roles("USER").build(); | ||||||
| 	@Autowired | 		UserDetails admin = User.builder().username("admin") | ||||||
| 	public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception { | 				.password("{bcrypt}$2a$10$AiyMWI4UBLozgXq6itzyVuxrtofjcPzn/WS3fOrcqgzdax9jB7Io.").roles("USER", "ADMIN") | ||||||
| 		auth | 				.build(); | ||||||
| 				.jdbcAuthentication() | 		JdbcUserDetailsManager users = new JdbcUserDetailsManager(dataSource); | ||||||
| 				.dataSource(this.dataSource) | 		users.createUser(user); | ||||||
| 				.withDefaultSchema() | 		users.createUser(admin); | ||||||
| 				.withUser(User.withDefaultPasswordEncoder().username("user").password("password").roles("USER")) | 		return users; | ||||||
| 				.withUser(User.withDefaultPasswordEncoder().username("admin").password("password").roles("ADMIN", "USER")); |  | ||||||
| 	} | 	} | ||||||
| 	// @formatter:on |  | ||||||
| 
 | 
 | ||||||
| } | } | ||||||
|  | |||||||
							
								
								
									
										0
									
								
								servlet/java-configuration/authentication/x509/src/main/resources/certs/curl_app.sh
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						
									
										0
									
								
								servlet/java-configuration/authentication/x509/src/main/resources/certs/curl_app.sh
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							| @ -18,28 +18,29 @@ package example; | |||||||
| import org.springframework.context.annotation.Bean; | import org.springframework.context.annotation.Bean; | ||||||
| import org.springframework.security.config.annotation.web.builders.HttpSecurity; | import org.springframework.security.config.annotation.web.builders.HttpSecurity; | ||||||
| import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; | import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; | ||||||
| import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; |  | ||||||
| import org.springframework.security.core.userdetails.User; | import org.springframework.security.core.userdetails.User; | ||||||
| import org.springframework.security.core.userdetails.UserDetails; | import org.springframework.security.core.userdetails.UserDetails; | ||||||
| import org.springframework.security.core.userdetails.UserDetailsService; | import org.springframework.security.core.userdetails.UserDetailsService; | ||||||
| import org.springframework.security.provisioning.InMemoryUserDetailsManager; | import org.springframework.security.provisioning.InMemoryUserDetailsManager; | ||||||
|  | import org.springframework.security.web.SecurityFilterChain; | ||||||
| 
 | 
 | ||||||
| import static org.springframework.security.config.Customizer.withDefaults; | import static org.springframework.security.config.Customizer.withDefaults; | ||||||
| 
 | 
 | ||||||
| @EnableWebSecurity | @EnableWebSecurity | ||||||
| public class SecurityConfiguration extends WebSecurityConfigurerAdapter { | public class SecurityConfiguration { | ||||||
| 
 | 
 | ||||||
| 	@Override | 	@Bean | ||||||
| 	// @formatter:off | 	public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception { | ||||||
| 	protected void configure(HttpSecurity http) throws Exception { | 		// @formatter:off | ||||||
| 		http | 		http | ||||||
| 				.authorizeRequests((requests) -> requests | 				.authorizeHttpRequests((authorize) -> authorize | ||||||
| 						.anyRequest().authenticated() | 						.anyRequest().authenticated() | ||||||
| 				) | 				) | ||||||
| 				.httpBasic(withDefaults()) | 				.httpBasic(withDefaults()) | ||||||
| 				.formLogin(withDefaults()); | 				.formLogin(withDefaults()); | ||||||
|  | 		// @formatter:on | ||||||
|  | 		return http.build(); | ||||||
| 	} | 	} | ||||||
| 	// @formatter:on |  | ||||||
| 
 | 
 | ||||||
| 	// @formatter:off | 	// @formatter:off | ||||||
| 	@Bean | 	@Bean | ||||||
|  | |||||||
| @ -18,28 +18,29 @@ package example; | |||||||
| import org.springframework.context.annotation.Bean; | import org.springframework.context.annotation.Bean; | ||||||
| import org.springframework.security.config.annotation.web.builders.HttpSecurity; | import org.springframework.security.config.annotation.web.builders.HttpSecurity; | ||||||
| import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; | import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; | ||||||
| import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; |  | ||||||
| import org.springframework.security.core.userdetails.User; | import org.springframework.security.core.userdetails.User; | ||||||
| import org.springframework.security.core.userdetails.UserDetails; | import org.springframework.security.core.userdetails.UserDetails; | ||||||
| import org.springframework.security.core.userdetails.UserDetailsService; | import org.springframework.security.core.userdetails.UserDetailsService; | ||||||
| import org.springframework.security.provisioning.InMemoryUserDetailsManager; | import org.springframework.security.provisioning.InMemoryUserDetailsManager; | ||||||
|  | import org.springframework.security.web.SecurityFilterChain; | ||||||
| 
 | 
 | ||||||
| import static org.springframework.security.config.Customizer.withDefaults; | import static org.springframework.security.config.Customizer.withDefaults; | ||||||
| 
 | 
 | ||||||
| @EnableWebSecurity | @EnableWebSecurity | ||||||
| public class SecurityConfiguration extends WebSecurityConfigurerAdapter { | public class SecurityConfiguration { | ||||||
| 
 | 
 | ||||||
| 	@Override | 	@Bean | ||||||
| 	// @formatter:off | 	public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception { | ||||||
| 	protected void configure(HttpSecurity http) throws Exception { | 		// @formatter:off | ||||||
| 		http | 		http | ||||||
| 				.authorizeRequests((requests) -> requests | 				.authorizeHttpRequests((authorize) -> authorize | ||||||
| 						.anyRequest().authenticated() | 						.anyRequest().authenticated() | ||||||
| 				) | 				) | ||||||
| 				.httpBasic(withDefaults()) | 				.httpBasic(withDefaults()) | ||||||
| 				.formLogin(withDefaults()); | 				.formLogin(withDefaults()); | ||||||
|  | 		// @formatter:on | ||||||
|  | 		return http.build(); | ||||||
| 	} | 	} | ||||||
| 	// @formatter:on |  | ||||||
| 
 | 
 | ||||||
| 	// @formatter:off | 	// @formatter:off | ||||||
| 	@Bean | 	@Bean | ||||||
|  | |||||||
| @ -20,17 +20,35 @@ import org.springframework.context.annotation.Bean; | |||||||
| import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity; | import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity; | ||||||
| import org.springframework.security.config.annotation.web.builders.HttpSecurity; | import org.springframework.security.config.annotation.web.builders.HttpSecurity; | ||||||
| import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; | import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; | ||||||
| import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; |  | ||||||
| import org.springframework.security.core.userdetails.User; | import org.springframework.security.core.userdetails.User; | ||||||
| import org.springframework.security.core.userdetails.UserDetails; | import org.springframework.security.core.userdetails.UserDetails; | ||||||
| import org.springframework.security.core.userdetails.UserDetailsService; | import org.springframework.security.core.userdetails.UserDetailsService; | ||||||
| import org.springframework.security.provisioning.InMemoryUserDetailsManager; | import org.springframework.security.provisioning.InMemoryUserDetailsManager; | ||||||
|  | import org.springframework.security.web.SecurityFilterChain; | ||||||
| 
 | 
 | ||||||
| import static org.springframework.security.config.Customizer.withDefaults; | import static org.springframework.security.config.Customizer.withDefaults; | ||||||
| 
 | 
 | ||||||
| @EnableWebSecurity | @EnableWebSecurity | ||||||
| @EnableGlobalMethodSecurity(prePostEnabled = true) | @EnableGlobalMethodSecurity(prePostEnabled = true) | ||||||
| public class SecurityConfiguration extends WebSecurityConfigurerAdapter { | public class SecurityConfiguration { | ||||||
|  | 
 | ||||||
|  | 	@Bean | ||||||
|  | 	public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception { | ||||||
|  | 		// @formatter:off | ||||||
|  | 		http | ||||||
|  | 				.authorizeHttpRequests((authorize) -> authorize | ||||||
|  | 						.anyRequest().authenticated() | ||||||
|  | 				) | ||||||
|  | 				.formLogin(withDefaults()) | ||||||
|  | 				.sessionManagement((sessions) -> sessions | ||||||
|  | 						.sessionConcurrency((concurrency) -> concurrency | ||||||
|  | 								.maximumSessions(1) | ||||||
|  | 								.expiredUrl("/login?expired") | ||||||
|  | 						) | ||||||
|  | 				); | ||||||
|  | 		// @formatter:on | ||||||
|  | 		return http.build(); | ||||||
|  | 	} | ||||||
| 
 | 
 | ||||||
| 	// @formatter:off | 	// @formatter:off | ||||||
| 	@Bean | 	@Bean | ||||||
| @ -44,21 +62,4 @@ public class SecurityConfiguration extends WebSecurityConfigurerAdapter { | |||||||
| 	} | 	} | ||||||
| 	// @formatter:on | 	// @formatter:on | ||||||
| 
 | 
 | ||||||
| 	// @formatter:off |  | ||||||
| 	@Override |  | ||||||
| 	protected void configure(HttpSecurity http) throws Exception { |  | ||||||
| 		http |  | ||||||
| 			.authorizeRequests((requests) -> requests |  | ||||||
| 				.anyRequest().authenticated() |  | ||||||
| 			) |  | ||||||
| 			.formLogin(withDefaults()) |  | ||||||
| 			.sessionManagement((sessions) -> sessions |  | ||||||
| 				.sessionConcurrency((concurrency) -> concurrency |  | ||||||
| 					.maximumSessions(1) |  | ||||||
| 					.expiredUrl("/login?expired") |  | ||||||
| 				) |  | ||||||
| 			); |  | ||||||
| 	} |  | ||||||
| 	// @formatter:on |  | ||||||
| 
 |  | ||||||
| } | } | ||||||
|  | |||||||
| @ -19,37 +19,36 @@ import java.security.interfaces.RSAPublicKey; | |||||||
| 
 | 
 | ||||||
| import org.springframework.beans.factory.annotation.Value; | import org.springframework.beans.factory.annotation.Value; | ||||||
| import org.springframework.context.annotation.Bean; | import org.springframework.context.annotation.Bean; | ||||||
|  | import org.springframework.context.annotation.Configuration; | ||||||
| import org.springframework.security.config.annotation.web.builders.HttpSecurity; | import org.springframework.security.config.annotation.web.builders.HttpSecurity; | ||||||
| import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; |  | ||||||
| import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; |  | ||||||
| import org.springframework.security.oauth2.jwt.JwtDecoder; | import org.springframework.security.oauth2.jwt.JwtDecoder; | ||||||
| import org.springframework.security.oauth2.jwt.NimbusJwtDecoder; | import org.springframework.security.oauth2.jwt.NimbusJwtDecoder; | ||||||
|  | import org.springframework.security.web.SecurityFilterChain; | ||||||
| 
 | 
 | ||||||
| /** | /** | ||||||
|  * OAuth2 Resource Server Configuration. |  * OAuth2 Resource Server Configuration. | ||||||
|  * |  * | ||||||
|  * @author Josh Cummings |  * @author Josh Cummings | ||||||
|  */ |  */ | ||||||
| @EnableWebSecurity | @Configuration | ||||||
| public class OAuth2ResourceServerSecurityConfiguration extends WebSecurityConfigurerAdapter { | public class OAuth2ResourceServerSecurityConfiguration { | ||||||
| 
 | 
 | ||||||
| 	@Value("${spring.security.oauth2.resourceserver.jwt.key-value}") | 	@Value("${spring.security.oauth2.resourceserver.jwt.key-value}") | ||||||
| 	RSAPublicKey key; | 	RSAPublicKey key; | ||||||
| 
 | 
 | ||||||
| 	@Override | 	@Bean | ||||||
| 	protected void configure(HttpSecurity http) throws Exception { | 	public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception { | ||||||
| 		// @formatter:off | 		// @formatter:off | ||||||
| 		http | 		http | ||||||
| 			.authorizeRequests((requests) -> requests | 				.authorizeHttpRequests((authorize) -> authorize | ||||||
| 					.mvcMatchers("/message/**").hasAuthority("SCOPE_message:read") | 						.mvcMatchers("/message/**").hasAuthority("SCOPE_message:read") | ||||||
| 					.anyRequest().authenticated() | 						.anyRequest().authenticated() | ||||||
| 			) | 				) | ||||||
| 			.oauth2ResourceServer((resourceServer) -> resourceServer | 				.oauth2ResourceServer((oauth2) -> oauth2 | ||||||
| 					.jwt((jwt) -> jwt | 						.jwt((jwt) -> jwt.decoder(jwtDecoder())) | ||||||
| 							.decoder(jwtDecoder()) | 				); | ||||||
| 					) |  | ||||||
| 			); |  | ||||||
| 		// @formatter:on | 		// @formatter:on | ||||||
|  | 		return http.build(); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	@Bean | 	@Bean | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user