Spring安全认证如何摆脱

时间:2018-05-19 21:05:23

标签: testing spring-security mocking

尝试进行简单的spring boot安全测试。 我只能通过不推荐使用的NoOpPasswordEncoder传递测试 SpringSecurityConfig中的globalConfigure()方法。

它工作正常,但是可以摆脱弃用的NoOpPasswordEncoder吗?

class A(object):
    def __init__(self):
        self.my_var = 7

1 个答案:

答案 0 :(得分:0)

这取决于你想要做什么。如果您只是希望测试通过并取消弃用,则可以删除密码编码器并在{noop}方法中为密码添加configureGlobal前缀:

@Autowired
public void configureGlobal(AuthenticationManagerBuilder authBuilder) throws Exception {
    authBuilder.inMemoryAuthentication()
        .withUser("user").password("{noop}user").roles("USER")
        .and()
        .withUser("admin").password("{noop}admin").roles("USER", "ADMIN");
}

Spring Security 5将默认密码编码器更改为Delegating Password Encoder,它使用花括号中的前缀来确定要使用的密码编码器,s。 https://docs.spring.io/spring-security/site/docs/5.0.5.RELEASE/reference/htmlsingle/#pe-dpe-format

但是,如果你想在生产中使用这个安全配置,你应该使用不同的编码器。