не работает авторизация в spring security

Я делаю авторизацию с помощью Spring Security. Но когда я ввожу логин и пароль, меня не перенаправляет в личный кабинет пользователя. Более того, когда я ввожу неверный логин и пароль, меня тоже не перенаправляет на страницу с ошибкой.Хотя в классе конфигурации WebSecurityConfig, я задал перенаправление на личный кабинет пользователя(/cabinet), в случае успешной авторизации, и в случае неудачи на страницу(/invalidAuth) Код класса WebSecurityConfig:

package com.greatproject.dishonline.config;

import com.greatproject.dishonline.entity.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.security.crypto.password.NoOpPasswordEncoder;

import org.springframework.security.crypto.password.MessageDigestPasswordEncoder;

import javax.sql.DataSource;

@Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
    @Autowired
    private DataSource dataSource;

    @Override
    protected void configure(HttpSecurity http) throws Exception {
       http.csrf().disable()
                .authorizeRequests()
                    .antMatchers("/", "/registration","/createUser","/sendEmail").permitAll()
                    .anyRequest().authenticated()
                .and()
                    .formLogin().defaultSuccessUrl("/cabinet",true).failureUrl("/invalidAuth")
                    .loginPage("/login")
                    .permitAll()
                .and()
                    .logout()
                    .permitAll();
    }

    @Override
    protected void configure(AuthenticationManagerBuilder auth) throws Exception {

        auth.jdbcAuthentication()
                .dataSource(dataSource)
                .passwordEncoder(new MessageDigestPasswordEncoder("SHA-512"))
                .usersByUsernameQuery("select login, password from users where login=?")
                .authoritiesByUsernameQuery("select u.login, ra.roles from users u inner join role_auth ra on u.id = ra.id where u.login=?");
    }
}

Код сущности User:

package com.greatproject.dishonline.entity;

import org.springframework.security.crypto.password.MessageDigestPasswordEncoder;

import java.io.UnsupportedEncodingException;
import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.time.LocalDateTime;
import java.util.Set;
import javax.persistence.*;

@Entity
@Table(name="Users")
public class User {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long ID;

    @Column
    private Long External_ID;

    @Column
    private String FirstName;

    @Column
    private String SecondName;

    @Column
    private String Email;

    @Column
    private String Login;

    @Column
    private String Password;

    @Column
    private String Phone;

    @Column
    private String Photo;

   /* @Column
    private Long ID_Role;*/

    public Set<RoleAuth> getRoles() {
        return roles;
    }

    public void setRoles(Set<RoleAuth> roles) {
        this.roles = roles;
    }

    @ElementCollection(targetClass = RoleAuth.class, fetch = FetchType.EAGER)
    @CollectionTable(name = "role_auth", joinColumns = @JoinColumn(name = "id"))
    @Enumerated(EnumType.STRING)
    private Set<RoleAuth> roles;



    public User() {
    }

    public void setID_USER(Long ID) {
        this.ID = ID;
    }

    public void setExternal_ID(Long external_ID) {
        External_ID = external_ID;
    }

    public void setFirstName(String firstName) {
        FirstName = firstName;
    }

    public void setSecondName(String secondName) {
        SecondName = secondName;
    }

    public void setEmail(String email) {
        Email = email;
    }

    public void setLogin(String login) {
        Login = login;
    }

    public void setPassword(String password) throws NoSuchAlgorithmException, UnsupportedEncodingException {
        /*Password = password;
        byte[] dataPassword =  Password.getBytes("UTF-8");

        MessageDigest messageDigest = MessageDigest.getInstance("SHA-512");
        byte[] digest = messageDigest.digest(dataPassword);
        String buf = new String(digest,StandardCharsets.UTF_8);

        StringBuffer stringBuffer = new StringBuffer();

        for (byte bytes : digest) {
            stringBuffer.append(String.format("%02x", bytes & 0xff));
        }

        Password=stringBuffer.toString();*/

        MessageDigestPasswordEncoder MDPE=new MessageDigestPasswordEncoder("SHA-512");


      this.Password=MDPE.encode(password);

    }

    public void setPhone(String phone) {
        Phone = phone;
    }

    public void setPhoto(String photo) {
        Photo = photo;
    }



    public Long getID_USER() {
        return ID;
    }

    public Long getExternal_ID() {
        return External_ID;
    }

    public String getFirstName() {
        return FirstName;
    }

    public String getSecondName() {
        return SecondName;
    }

    public String getEmail() {
        return Email;
    }

    public String getLogin() {
        return Login;
    }

    public String getPassword() {
        return Password;
    }

    public String getPhone() {
        return Phone;
    }

    public String getPhoto() {
        return Photo;
    }



    @Override
    public String toString() {
        return "User{" +
                "ID=" + ID +
                ", External_ID=" + External_ID +
                ", FirstName='" + FirstName + '\'' +
                ", SecondName='" + SecondName + '\'' +
                ", Email='" + Email + '\'' +
                ", Login='" + Login + '\'' +
                ", Password='" + Password + '\'' +
                ", Phone='" + Phone + '\'' +
                ", Photo='" + Photo + '\'' +
              //  ", ID_Role=" + ID_Role +
                '}';
    }
}

Код перечисления package com.greatproject.dishonline.entity;

public enum RoleAuth {

    USER;
}

код страницы входа login.hml:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Bootstrap Simple Login Form</title>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
    <style type="text/css">
        .login-form {
            width: 340px;
            margin: 50px auto;
        }
        .login-form form {
            margin-bottom: 15px;
            background: #f7f7f7;
            box-shadow: 0px 2px 2px rgba(0, 0, 0, 0.3);
            padding: 30px;
        }
        .login-form h2 {
            margin: 0 0 15px;
        }
        .form-control, .btn {
            min-height: 38px;
            border-radius: 2px;
        }
        .btn {
            font-size: 15px;
            font-weight: bold;
        }
    </style>
</head>
<body>
<div class="login-form">
    <form action="/examples/actions/confirmation.php" method="post">
        <h2 class="text-center">Log in</h2>
        <div class="form-group">
            <input type="text" id="login" name="login" class="form-control" placeholder="Login" required="required">
        </div>
        <div class="form-group">
            <input type="password" id="password" name="password" class="form-control" placeholder="Password" required="required">
        </div>
        <div class="form-group">
            <button type="submit" class="btn btn-primary btn-block">Log in</button>
        </div>
        <div class="clearfix">
            <label class="pull-left checkbox-inline"><input type="checkbox"> Remember me</label>
            <a href="#" class="pull-right">Forgot Password?</a>
        </div>
    </form>
    <p class="text-center"><a href="#">Create an Account</a></p>
</div>
</body>
</html>  

Помогите, пожалуйста, разобраться с данной проблемой.


Ответы (0 шт):