Java Spring MVC中加密的适当组件

Java Spring MVC中加密的适当组件,java,spring-mvc,spring-security,Java,Spring Mvc,Spring Security,我是一个刚开始使用SpringMVC的新手(不幸的是,文档对我没有多大帮助),我仍然不知道在哪里使用Jasypt密码加密程序来加密通过注册表收到的密码。直接在用户模型密码设置器中执行此操作是一种不好的做法,还是应该使用服务?此外,我相信这可以与Spring Security集成,使加密机也用于身份验证?谢谢。关于身份验证 使用authenticationProvider`对认证后的密码进行编码 @Configuration @EnableWebSecurity public class Secu

我是一个刚开始使用SpringMVC的新手(不幸的是,文档对我没有多大帮助),我仍然不知道在哪里使用Jasypt密码加密程序来加密通过注册表收到的密码。直接在用户模型密码设置器中执行此操作是一种不好的做法,还是应该使用服务?此外,我相信这可以与Spring Security集成,使加密机也用于身份验证?谢谢。

关于身份验证

使用authenticationProvider`对认证后的密码进行编码

@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {

    @Autowired
    private UserDetailsService userDetailsService;

    @Override
    protected void configure(AuthenticationManagerBuilder auth) throws Exception {
        auth.authenticationProvider(authProvider());
    }

    @Bean
    public DaoAuthenticationProvider authProvider() {
        DaoAuthenticationProvider authProvider = new DaoAuthenticationProvider();
        authProvider.setUserDetailsService(userDetailsService);
        authProvider.setPasswordEncoder(encoder());
        return authProvider;
    }

    @Bean
    public PasswordEncoder passwordEncoder(){
        return new BCryptPasswordEncoder();
    }
}
关于用户创建

userService

@Autowired
private PasswordEncoder passwordEncoder;
然后

资料来源:


此外,请确保为要保护的密码定义输入

是的,您需要一个用户控制器来执行注册等操作。检查
user.setPassword(passwordEncoder.encode(userDto.getPassword()));