【问题标题】:Migrating from spring to spring boot (spring security auth not working)从 spring 迁移到 spring boot(spring security auth 不起作用)
【发布时间】:2021-09-23 04:51:30
【问题描述】:
@Override
        protected void configure(HttpSecurity http) throws Exception {
            http.csrf().and().headers().and().anonymous().disable()
                    .formLogin().loginPage("/login.html").failureHandler(this.authenticationFailureHandler)
                    .defaultSuccessUrl("/main").loginProcessingUrl("/j_spring_security_check")
                    .usernameParameter("j_username").passwordParameter("j_password")
                    .and()
                    .logout().logoutUrl("/j_spring_security_logout").logoutSuccessUrl("/login.html");
}

当我点击登录按钮时,它会将我重定向到

【问题讨论】:

  • 您提到了基本身份验证,但已配置表单登录。那么它是基本身份验证还是基于表单的登录。
  • @M.Deinum form auth
  • 您需要在passwordParemeter 之后添加permitAll() 以允许访问,否则一切都会受到保护。你得到一个 403,这意味着你没有访问权限,所以要么你不被允许访问那个 URL,要么你被转发/重定向到的任何东西。
  • @M.Deinum 添加但仍然出现同样的错误
  • 我很确定 j_spring_security_check 已被弃用并删除了默认登录 url 是一个 POST 到 /login 的用户名和密码作为表单参数

标签: spring spring-boot spring-security spring-security-ldap


【解决方案1】:
  • 将此添加到您的安全配置类中 .authorizeRequests().antMatchers("/login*").permitAll()

  • 删除以下内容 and().headers().and().anonymous()

@Override
        protected void configure(HttpSecurity http) throws Exception {
            http.csrf().disable()
                    .formLogin().loginPage("/login.html").failureHandler(this.authenticationFailureHandler)
                    .defaultSuccessUrl("/main").loginProcessingUrl("/j_spring_security_check")
                    .usernameParameter("j_username").passwordParameter("j_password")
                    .and()
                    .logout().logoutUrl("/j_spring_security_logout").logoutSuccessUrl("/login.html");
}

【讨论】:

    猜你喜欢
    • 2020-07-07
    • 2016-06-03
    • 2015-04-10
    • 2020-02-27
    • 2023-01-25
    • 1970-01-01
    • 1970-01-01
    • 2017-05-30
    • 2019-05-24
    相关资源
    最近更新 更多