Oauth2资源服务器中AuthenticationManagerBuilder的目的是什么

时间:2018-11-02 20:29:07

标签: java spring-boot oauth-2.0

所以我有这个应用程序,仅在提供有效的oauth令牌时才允许访问其资源。我已经有一个@EnableResourceServer类,该类处理对不同端点的基于角色的访问。但是下面的代码块的目的是什么?除非我在通用块中添加一些通用用户名/密码,否则我的应用程序无法启动。这里的用户/角色/密码与访问资源无关。只要oauth令牌中的角色与@EnableResourcesServer中指定的角色匹配,调用方就会从应用程序获得正确的响应。

@EnableWebSecurity(debug = true)
public class SecurityConfig extends WebSecurityConfigurerAdapter {
...
    @Override
    protected void configure(AuthenticationManagerBuilder auth) throws Exception 
    {
        auth.inMemoryAuthentication() // creating user in memory
                .withUser("user")
                .password("password").roles("USER")
                .and().withUser("admin")
                .password("password").authorities("ROLE_ADMIN");
    }
}

1 个答案:

答案 0 :(得分:0)

我发现了问题,这是因为我将对资源的访问分为两个类,一个@EnableResourceServer和一个@EnableWebsecurity。在删除@EnableWebSecurity类并将所有访问控制移至@EnableResourceServer之后,该问题得以解决。