Login Page with Spring Boot

216 Views Asked by At

Im making a login page with spring boot but it doesnt seem to be working. I cant login to my page. i checked all the codes multiple times, no error messages appear. I just dont know what the problem is.

here are of the code I wrote

@Controller
public class MusicrewPageController {

    @GetMapping("/")
    public String login() {
        return "login";
    }

    @GetMapping("login")
    public String showList(Authentication loginUser, Model model) {
        model.addAttribute(" username", loginUser.getUsername());
        model.addAttribute(" authority", loginUser.getPassword());
        return "user";
    }
@Configuration
public class SecurityConfig {

    @Bean
    public PasswordEncoder passwordEncoder() {
        return new BCryptPasswordEncoder();
    }

    @Bean
    public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
        http
                .authorizeHttpRequests(auth -> auth
                        .requestMatchers("/", "/login", "/memberRegirstration", "/css/**", "/images/**")
                        .permitAll().anyRequest().authenticated())
                .formLogin(login -> login.loginPage("/login")
                        .defaultSuccessUrl("/top")
                        .permitAll())
                .rememberMe();
        return http.build();

    }
    
}

public class UserDetailsServiceImpl implements UserDetailsService {

    @Autowired
    private UserRepository userReposiroty;

    @Override
    public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {

        User user = userReposiroty.findByUsername(username);
        if (user == null) {
            throw new UsernameNotFoundException("User Not Found");
        }
        return new org.springframework.security.core.userdetails.User(
                user.getUsername(),
                user.getPassword(),
                new ArrayList<>());
    }

}

@Data
@Entity
@Table(name = "Users")
public class User implements UserDetails {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @NotBlank
    @Size(max = 60)
    private String surName;

    @NotBlank
    @Size(max = 60)
    private String firstName;

    @NotBlank
    @Size(max = 60)
    private String surNameKana;

    @NotBlank
    @Size(max = 60)
    private String firstNameKana;

    @NotBlank
    @Email
    @Size(max = 254)
    private String email;

    @NotBlank
    @Size(min = 6, max = 60)
    private String username;

    @NotBlank
    @Size(min = 6, max = 60)
    private String pass;

    private String gender;

    private String birthday;

    @Override
    public Collection<? extends GrantedAuthority> getAuthorities() {
        return null;
    }

    @Override
    public String getUsername() {
        return "User.getUsername()";
    }

    @Override
    public String getPassword() {
        return "User.getPassword()";
    }

    @Override
    public boolean isAccountNonExpired() {
        return false;
    }

    @Override
    public boolean isAccountNonLocked() {
        return false;
    }

    @Override
    public boolean isCredentialsNonExpired() {
        return false;
    }

    @Override
    public boolean isEnabled() {
        return false;
    }

}

public interface UserRepository extends JpaRepository<User, Long> {
    User findByUsername(String Username);

}

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">

<head>
    <meta charset="UTF-8">
    <title>Musicrew Login</title>
    <link rel="stylesheet" th:href="@{/css/login.css}">
</head>

<body>
    <div class="login-page">
        <img th:src="@{images/loginpage.jpg}">

        <div id="login-page-rightside">
            <img th:src="@{images/MusicrewLogo.png}">
            <div>
                <form id="form" th:action="@{/top}" method="post" >
                    <label class="label-username">username</label>
                    <input class="text-box" type="text" name="username">

                    <label class="label-password">password</label>
                    <input class="text-box" type="password" name="password"><br>

                    <input class="remember-me" type="checkbox">
                    <label class="remember-me">remember me</label>
                    
                    <label class="forget-password">パスワードを忘れた方はこちら</label><br>

                    <input type="submit" value="login" id="login-button">
                    <br>
                </form>

                <form th:action="@{/memberRegistration}" id="form">
                    <input type="submit" value="sign up" id="signup-button">
                </form>
            </div>
        </div>
    </div>

</body>

</html>
spring.datasource.url=jdbc:mysql://localhost:3306/mysql
spring.datasource.username=root
spring.datasource.password=Urak4812Urak4812
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.jpa.database-platform = org.hibernate.dialect.MySQL5Dialect

since there was no error message, i didnt know which erroe to search. I watched videos and read articles regarding how to make a login page, but i seem to not find the problem

0

There are 0 best solutions below