Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring boot spring安全登录始终以失败url结束_Spring Boot_Spring Mvc_Spring Security - Fatal编程技术网

Spring boot spring安全登录始终以失败url结束

Spring boot spring安全登录始终以失败url结束,spring-boot,spring-mvc,spring-security,Spring Boot,Spring Mvc,Spring Security,我对spring安全性的正确配置有一个问题,注册很好,限制访问很好,但是当涉及到日志时,我总是得到一个失败的url结果,有人能告诉我问题出在哪里吗 以下是我的安全配置: @Configuration @EnableWebSecurity public class SecurityConfiguration extends WebSecurityConfigurerAdapter { @Autowired private BCryptPasswordEncoder bCryptPasswordE

我对spring安全性的正确配置有一个问题,注册很好,限制访问很好,但是当涉及到日志时,我总是得到一个失败的url结果,有人能告诉我问题出在哪里吗

以下是我的安全配置:

@Configuration
@EnableWebSecurity
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {

@Autowired
private BCryptPasswordEncoder bCryptPasswordEncoder;

@Autowired
private DataSource dataSource;

@Value("${spring.queries.users-query}")
private String usersQuery;

@Value("${spring.queries.roles-query}")
private String rolesQuery;

@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
    auth.jdbcAuthentication().usersByUsernameQuery(usersQuery).authoritiesByUsernameQuery(rolesQuery)
            .dataSource(dataSource).passwordEncoder(bCryptPasswordEncoder);
}

@Override
protected void configure(HttpSecurity http) throws Exception {

    http.authorizeRequests().antMatchers("/manage/**").hasAuthority("USER").antMatchers("/").permitAll()
            .antMatchers("/business_login").permitAll().antMatchers("/business_password_recovery").permitAll()
            .antMatchers("/business_register").permitAll().anyRequest().authenticated().and().csrf().disable()
            .formLogin().loginPage("/business_login").defaultSuccessUrl("/manage")
            .loginProcessingUrl("/process_business_login").usernameParameter("username").passwordParameter("password")
            .failureUrl("/business_login").usernameParameter("email").passwordParameter("password").and().logout()
            .logoutRequestMatcher(new AntPathRequestMatcher("/logout")).logoutSuccessUrl("/").and()
            .exceptionHandling().accessDeniedPage("/access-denied");
}

@Override
public void configure(WebSecurity web) throws Exception {
    web.ignoring().antMatchers("/resources/**", "/static/**", "/css/**", "/js/**", "/images/**", "/templates/**",
            "/boomerang/**");
}

}
这是我的登录表单:

<form autocomplete="off" class="form-default" method="POST" role="form" action="/process_business_login">
                                <div class="row">
                                    <div class="col-12">
                                        <div class="form-group login-form-input">
                                            <input type="text" name="username" placeholder="email"
                                                class="form-control form-control-lg login-form-input">
                                        </div>
                                    </div>
                                </div>

                                <div class="row">
                                    <div class="col-lg-12">
                                        <div class="form-group has-feedback">
                                            <input type="password" name="password"
                                                placeholder="password"
                                                class="form-control form-control-lg login-form-input">
                                        </div>
                                    </div>
                                </div>

                                <div class="row">
                                    <div class="col-lg-12">
                                        <div class="checkbox danger-checkbox">
                                            <input type="checkbox" id="chkRemember"> <label
                                                class="light-gray-color" for="chkRemember">Remember
                                                me</label>
                                        </div>
                                    </div>
                                </div>
                                <button type="submit"
                                    class="btn btn-styled btn-lg btn-block btn-danger mt-4 no-border-radius danger-button-login">LOG
                                    IN</button>
                            </form>

登录总是重定向到失败url站点,我在哪里出错?

您的配置状态

.usernameParameter("email")
但登录表单中的参数名称表示:

<input type="text" name="username" placeholder="email"
       class="form-control form-control-lg login-form-input">
你有

name="email"
或者您从更改配置

.usernameParameter("email")


或者删除它,因为默认值是
.usernameParameter(“username”)

谢谢你,就是这样,这样的打字错误有时很难找到:D
name="email"
.usernameParameter("email")
 .usernameParameter("username")