当前位置: 首页 > 知识库问答 >
问题:

Spring引导安全-inMemoryAuthentication不工作

夏令秋
2023-03-14

这是我的安全配置代码:

@EnableWebSecurity
@EnableGlobalMethodSecurity (
        prePostEnabled=true
    )
@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(AuthenticationManagerBuilder auth) throws Exception{
        auth.inMemoryAuthentication()
                .withUser("chandra").password("{noop}1234").roles("USER").and()
                .withUser("admin").password("{noop}admin123").roles("ADMIN");
    }

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.authorizeRequests()
                .antMatchers("/addItem","/delete").hasRole("ADMIN")
                .antMatchers("/getAllItems").hasRole("USER")
                .and().csrf().disable().headers().frameOptions().disable()
                .and()
                .formLogin();
    }
}

但在编译spring时,仍在为我生成密码。

Using generated security password: 49f04bde-ac1f-4e30-870b-ba0dd93d50f3

我通过print语句检查了配置是否正在加载,发现安全配置正在加载。我是否应该对给定的用户ID和密码进行任何更改。

提前感谢。

共有1个答案

笪俊迈
2023-03-14

只是一个关于纯文本密码的默认提示,你可以想象,接下来会发生什么。:-)

无论如何,出于测试目的,您可以在配置类中定义这样的无操作密码编码器:

要使预先设置的noop正常工作,请确保公开以下bean:

@Bean
public PasswordEncoder passwordEncoder() {
    return PasswordEncoderFactories.createDelegatingPasswordEncoder();
}

有关更多信息,请参阅参考手册中的相应章节。作为替代方案,您可以提供好的旧密码管理器:

import org.springframework.security.crypto.password.PasswordEncoder;

[…]

@Bean
public NoOpPasswordEncoder passwordEncoder() {
    return NoOpPasswordEncoder.getInstance();
}
 类似资料:
  • 你好,我在使用Ldap创建简单登录时遇到问题。我已经从spring.io网站下载了入门项目:入门LDAP。 它可以很好地与ldif文件配合使用,但我想用运行ldap服务器来代替它。我已经试了好几天了,没有任何进展。我用这段代码获得了最好的结果(替换为getting started project的WebSecurity配置) 如果我尝试使用格式为“用户名”“密码”的良好用户名和密码登录控制台输出:

  • 尝试在调用以下命令时保护spring Actuctor服务/管理上下文路径: http://localhost:9091/manage/metrics 在yalm.properties中使用此配置 。 带有安全执行器服务层Git分支 Spring Security配置: '@override protected void configure(HttpSecurity http)引发异常{

  • 我遵循这里描述的方法:https://github.com/jeroenbellen/blog-manage-and-reload-spring-properties,唯一的区别是,在我的例子中,属性在多个类中使用,所以我将它们放在一个实用工具类中,并使用getter引用它的变量。这就是类的样子: 我在其他类中使用变量,比如。我能够加载的属性启动只是很好,但我不能动态更新他们在飞行。有人能说出我做

  • 我正在为我的应用程序编写单元测试,我在服务内部执行的步骤之一是从SpringSecurityContext获取当前经过身份验证的用户。 我知道,如果我想模拟Spring Security Authentication,我可以使用@SusMockUser,但它对我不起作用,因为当测试方法到达getAuthentication()方法调用时,它总是返回null... 我已经搜索了很多问题和博客帖子,但

  • 我正在使用Spring引导2.0.1。释放,使用Spring引导启动器胸腺。我有两个版本的个人电脑和手机页面。 下面是我的项目结构的一个简单版本 我想让该网站自动检测PC浏览器和手机浏览器,这样它就可以根据浏览器的类型将相同的请求URL映射到不同的页面 html文件非常简单,如下所示。 这是我的控制器的代码。 为了检测设备,我编写了以下配置类 然后当我试图运行应用程序时。我总是得到下面的错误。它似

  • 我是spring boot的新手,我只想知道是否有可能为camel REST应用spring boot安全性-DSL impls。 正如我所看到的,Camel rest dsl通过它自己的servlet(CamelHttpTransportServlet)提供服务,但是spring有它自己的servlet(DispatcherServlet)。因此,正如我所猜测的,默认情况下,spring sec