我需要使用oauth2使用方法级别范围检查来配置preAuthorize。 我添加了所有配置,如下所示。它总是将我重定向到用户名,密码控制台。就我而言,我只想验证给定访问令牌的范围,并且必须禁用用户名和登录屏幕。
//configuration class
@Configuration
@EnableGlobalMethodSecurity(prePostEnabled = true)
public class MethodSecurityConfig extends GlobalMethodSecurityConfiguration {
@Override
protected MethodSecurityExpressionHandler createExpressionHandler() {
OAuth2MethodSecurityExpressionHandler expressionHandler = new OAuth2MethodSecurityExpressionHandler();
return expressionHandler;
}
}
//controller class
@RestController
public class UserInformationController {
@PreAuthorize("#oauth2.hasScope('testscope')")
@RequestMapping("/me")
public UserInformation getUserDetails (@RequestHeader(required = false, value = "Authorization" ) String token) {
return getUserInformation(token);
}
}
//spring-boot class
@SpringBootApplication
public class MindsphereSampleApplication {
public static void main(String[] args) {
SpringApplication.run(MindsphereSampleApplication.class, args);
}
}
它将我重定向到不需要的用户名和登录屏幕。