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