请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

为什么我自己注册的没得加密!

    private static final String KEY = "yangmd.com";

    @Autowired
    private UserDetailsService userDetailsService;

    @Autowired
    private PasswordEncoder passwordEncoder;

    @Bean
    public PasswordEncoder passwordEncoder() {
        return new BCryptPasswordEncoder();   // 使用 BCrypt 加密
    }

    @Bean
    public AuthenticationProvider authenticationProvider() {
        DaoAuthenticationProvider authenticationProvider = new DaoAuthenticationProvider();
        authenticationProvider.setUserDetailsService(userDetailsService);
        authenticationProvider.setPasswordEncoder(passwordEncoder); // 设置密码加密方式
        return authenticationProvider;
    }

    /**
     * 自定义配置
     * @param
     * @param
     * @return
     */
    @Override
    protected void configure(HttpSecurity http) throws Exception {
//        http.headers().frameOptions().disable();
//        http.authorizeRequests()
//            .antMatchers("/css/**","js/**","fonts/**","index").permitAll() //这些都可以访问
//            .antMatchers("/users/**").hasRole("ADMIN") //需要对应角色才能访问
//            .and()
//            .formLogin()   //基于form表单登录验证
//            .loginPage("/login").failureUrl("/login-error"); //自定义登录界面

        http.headers().frameOptions().disable();
        http.authorizeRequests().antMatchers("/css/**", "/js/**", "/fonts/**", "/index").permitAll() // 都可以访问
                .antMatchers("/h2-console/**").permitAll() // 都可以访问
                .antMatchers("/admins/**").hasRole("ADMIN") // 需要相应的角色才能访问
                .and()
                .formLogin()   //基于 Form 表单登录验证
                .loginPage("/login").failureUrl("/login-error") // 自定义登录界面
                .and().rememberMe().key(KEY) // 启用 remember me
                .and().exceptionHandling().accessDeniedPage("/403");  // 处理异常,拒绝访问就重定向到 403 页面
        http.csrf().ignoringAntMatchers("/h2-console/**"); // 禁用 H2 控制台的 CSRF 防护
        http.headers().frameOptions().sameOrigin(); // 允许来自同一来源的H2 控制台的请求



    }

    /**
     * 认证信息管理
     * @param auth
     * @param
     * @return Exception
     */
    @Autowired
    public void configureGlobal(AuthenticationManagerBuilder auth)throws Exception{
//        auth.inMemoryAuthentication()    //认证信息存储于内存中
//            .withUser("admin").password("111111").roles("ADMIN");  //先初始化了信息
        auth.userDetailsService(userDetailsService);
        auth.authenticationProvider(authenticationProvider());

    }

//img1.sycdn.imooc.com//szimg/5a674bdb000182ec07150132.jpg

正在回答 回答被采纳积分+3

1回答

老卫 2018-01-23 22:55:53

那你启用了加密的配置没有呢 ?

SecurityConfig.java  看下这个配置是否配对了~

0 回复 有任何疑惑可以回复我~
  • 提问者 慕UI8313479 #1
    配置的和你一样的,到注册保存的时候,我断点调试,发现哪个时候的user密码也没加密
    回复 有任何疑惑可以回复我~ 2018-01-23 23:05:14
  • 老卫 回复 提问者 慕UI8313479 #2
    注入 BCryptPasswordEncoder 了吗?
    回复 有任何疑惑可以回复我~ 2018-01-23 23:07:27
  • 提问者 慕UI8313479 回复 老卫 #3
    @Autowired
        private PasswordEncoder passwordEncoder;
    回复 有任何疑惑可以回复我~ 2018-01-23 23:25:32
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信