首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当使用auth.inMemoryAuthentication()或auth.userDetailsService(userDetailsService())时

当使用auth.inMemoryAuthentication()或auth.userDetailsService(userDetailsService())时
EN

Stack Overflow用户
提问于 2017-08-24 21:00:44
回答 1查看 957关注 0票数 1

我和Spring Security一起工作

关于配置,我通过一些来源看到了以下两种方法:

One

代码语言:javascript
复制
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
    auth.inMemoryAuthentication().withUser("someuser").password("somepassword").authorities("ROLE_ADMIN", "ROLE_USER");
    //more as above
}

2

代码语言:javascript
复制
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
    auth.userDetailsService(userDetailsService());
}

@Bean
@Override
public UserDetailsService userDetailsService() {
    InMemoryUserDetailsManager inMemoryUserDetailsManager = new InMemoryUserDetailsManager();
    inMemoryUserDetailsManager.createUser(User.withUsername("someuser").password("somepassword").authorities("ROLE_ADMIN", "ROLE_USER").build());
    //more as above
    return inMemoryUserDetailsManager;
}

在此之前,目的或目标是为开发创建一些内存中的用户。实际上,都能工作。因此:

  • 当一个选项比另一个选项是强制性的?
EN

回答 1

Stack Overflow用户

发布于 2017-08-24 21:21:00

第二个变体更通用,因此更灵活,并且使用org.springframework.security.config.annotation.authentication.configurers.userdetails.DaoAuthenticationConfigurer注册。它接受选择内存标准实现的任何UserDetailsProvider。

第一个是更紧凑的,因为InMemoryUserDetailsManagerConfigurer是标准的。

但是最终的结果是相同的,因为org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder#apply被调用了:它接受三种类型: DAO (您的第2种)、内存中的(您的第1种)和JDBC。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45870806

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档