我有一个使用Spring Security和OAuth2的Spring引导应用
在扩展了AuthorizationServerConfigurerAdapter的OAuth2Config类中,我拥有
@Override
public void configure(final ClientDetailsServiceConfigurer clients) throws Exception {
clients.inMemory()
.withClient("name")
.secret(passwordEncoder.encode("password"))
.scopes("read", "write")
.authorizedGrantTypes("password", "refresh_token", "client_credentials")
.accessTokenValiditySeconds(20000)
.refreshTokenValiditySeconds(20000);
}
在扩展WebSecurityConfigurerAdapter的SecurityConfig类中,我拥有
@Override
@Autowired
protected void configure(final AuthenticationManagerBuilder auth) throws Exception {
auth.userDetailsService(userDetailsService)
.passwordEncoder(encoder());
}
这意味着我需要使用“名称”和“密码”进行基本身份验证,并使用“ someUserInUserDatabase”和“ someUserInUserDatabasePassword”将表单数据提交到/ oauth / token端点,以便获得令牌。
但是,我只想提交“ someUserInUserDatabase”和“ someUserInUserDatabasePassword”,因为我看不到在我的应用程序使用的登录表单中提交“名称”和“密码”的好处,因为每个人都需要知道“名称”和“密码”,这对所有用户都是通用的,因此没有任何好处。
这可能吗?