在Spring Security中进行JDBC身份验证后重定向到localhost:8080

时间:2017-06-22 05:13:24

标签: spring spring-boot spring-security http-authentication

我有一些使用Spring Security JDBC身份验证保护的端点。当我点击我的端点时,浏览器会提示我输入用户名和密码。成功后,Spring通过显示404错误将我转发到localhost:8080。我知道它是成功的,因为如果我输入无效的用户名和密码,我会在登录表单页面上收到一条错误消息。

@Autowired 
public void configAuthentication(AuthenticationManagerBuilder auth) throws Exception{
    auth.jdbcAuthentication().dataSource(datasource).
    usersByUsernameQuery("select username,password, enabled from user where username=?").
    authoritiesByUsernameQuery("select username, role from user_roles where username=?");
}

@Override
protected void configure(HttpSecurity http) throws Exception {
    http
        .authorizeRequests()
            .antMatchers("/api/getMessages/").hasRole("user")
            .antMatchers("/api/getFollowings/").hasRole("user")
            .antMatchers("/api/getFollowers/").hasRole("user")
            .antMatchers("/api/getFollowings/").hasRole("user")
            .antMatchers("/api/follow/").hasRole("user")
            .antMatchers("/api/unfollow/").hasRole("user")
            .antMatchers("/h2-console/").permitAll()
            .and()
        .formLogin()
            .permitAll()
            .usernameParameter("username")
            .passwordParameter("password")
            .and()
        .exceptionHandling()
            .accessDeniedPage("/403")
            .and()
        .csrf()
            .and()
        .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS);
}

这是我的一个终点:

enter image description here

[点击端点后,我提示输入用户名和密码] [2]

[输入用户名和密码后,我被发送到localhost:8080,显示404] [3]

0 个答案:

没有答案