import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.authentication.AuthenticationManager;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.security.oauth2.server.resource.web.BearerTokenAuthenticationFilter;
import org.springframework.security.oauth2.server.resource.web.access.BearerTokenAccessDeniedHandler;
 
@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {
 
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
            // 其他配置 ...
            .exceptionHandling()
                .accessDeniedHandler(new BearerTokenAccessDeniedHandler())
            .and()
            .addFilterBefore(new BearerTokenAuthenticationFilter(authenticationManager()), UsernamePasswordAuthenticationFilter.class);
    }
 
    @Bean
    @Override
    public AuthenticationManager authenticationManager() throws Exception {
        return super.authenticationManager();
    }
}这段代码演示了如何在Spring Boot应用程序中配置OAuth2和JWT的集成。它定义了一个SecurityConfig类,继承自WebSecurityConfigurerAdapter,并覆盖了configure方法来添加处理OAuth2授权的相关配置。这包括使用BearerTokenAuthenticationFilter过滤器处理传入的Bearer Token,以及使用BearerTokenAccessDeniedHandler处理访问被拒绝的情况。