首页 > 解决方案 > 使用 spring-security 和 oauth2 配置方法级别的身份验证

问题描述

我需要使用 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);
    }
}

它将我重定向到我不需要的用户名和登录屏幕。

标签: javaspring-bootspring-securityoauth-2.0spring-security-oauth2

解决方案


推荐阅读