Skip to content

Commit 53c0dbb

Browse files
committed
Changes September
1 parent 7f8eea6 commit 53c0dbb

File tree

17 files changed

+147
-128
lines changed

17 files changed

+147
-128
lines changed

spring-security-login-error-handling/src/main/java/org/baeldung/persistence/dao/UserRepository.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,5 @@
44
import org.baeldung.persistence.model.User;
55

66
public interface UserRepository extends JpaRepository<User, Long> {
7-
public User findByUsername(String username);
7+
public User findByEmail(String email);
88
}

spring-security-login-error-handling/src/main/java/org/baeldung/persistence/model/User.java

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@ public class User {
2121
private String firstName;
2222
@Column(name = "lastName")
2323
private String lastName;
24-
@Column(name = "username")
25-
private String username;
24+
@Column(name = "email")
25+
private String email;
2626
@Column(name = "password")
2727
private String password;
2828

@@ -53,12 +53,12 @@ public void setLastName(String lastName) {
5353
this.lastName = lastName;
5454
}
5555

56-
public String getUsername() {
57-
return username;
56+
public String getEmail() {
57+
return email;
5858
}
5959

60-
public void setUsername(String username) {
61-
this.username = username;
60+
public void setEmail(String email) {
61+
this.email = email;
6262
}
6363

6464
public String getPassword() {
@@ -81,7 +81,7 @@ public void setRole(Role role) {
8181
public int hashCode() {
8282
final int prime = 31;
8383
int result = 1;
84-
result = prime * result + ((username == null) ? 0 : username.hashCode());
84+
result = prime * result + ((email == null) ? 0 : email.hashCode());
8585
return result;
8686
}
8787

@@ -94,15 +94,15 @@ public boolean equals(final Object obj) {
9494
if (getClass() != obj.getClass())
9595
return false;
9696
final User user = (User) obj;
97-
if (!username.equals(user.username))
97+
if (!email.equals(user.email))
9898
return false;
9999
return true;
100100
}
101101

102102
@Override
103103
public String toString() {
104104
final StringBuilder builder = new StringBuilder();
105-
builder.append("User [firstName=").append(firstName).append("]").append("[lastName=").append(lastName).append("]").append("[username").append(username).append("]");
105+
builder.append("User [firstName=").append(firstName).append("]").append("[lastName=").append(lastName).append("]").append("[email").append(email).append("]");
106106
return builder.toString();
107107
}
108108
}

spring-security-login-error-handling/src/main/java/org/baeldung/persistence/service/UsernameValidator.java renamed to spring-security-login-error-handling/src/main/java/org/baeldung/persistence/service/EmailValidator.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,13 @@
66
import javax.validation.ConstraintValidator;
77
import javax.validation.ConstraintValidatorContext;
88

9-
public class UsernameValidator implements ConstraintValidator<ValidUsername, String> {
9+
public class EmailValidator implements ConstraintValidator<ValidEmail, String> {
1010
private Pattern pattern;
1111
private Matcher matcher;
1212
private static final String EMAIL_PATTERN = "^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@" + "[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$";
1313

1414
@Override
15-
public void initialize(ValidUsername constraintAnnotation) {
15+
public void initialize(ValidEmail constraintAnnotation) {
1616
}
1717

1818
@Override
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package org.baeldung.persistence.service;
2+
3+
import org.baeldung.persistence.model.User;
4+
5+
public interface IUserService {
6+
7+
public User registerNewUserAccount(UserDto userAccountData) throws EmailExistsException;
8+
9+
}

spring-security-login-error-handling/src/main/java/org/baeldung/persistence/service/RepositoryService.java

Lines changed: 0 additions & 46 deletions
This file was deleted.

spring-security-login-error-handling/src/main/java/org/baeldung/persistence/service/UserDto.java

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,18 @@ public class UserDto {
1616
@NotNull
1717
@NotEmpty
1818
private String matchingPassword;
19-
@ValidUsername
19+
@ValidEmail
2020
@NotNull
2121
@NotEmpty
22-
private String username;
22+
private String email;
23+
public String getEmail() {
24+
return email;
25+
}
26+
27+
public void setEmail(String email) {
28+
this.email = email;
29+
}
30+
2331
private Integer role;
2432

2533
public Integer getRole() {
@@ -30,14 +38,6 @@ public void setRole(Integer role) {
3038
this.role = role;
3139
}
3240

33-
public String getUsername() {
34-
return username;
35-
}
36-
37-
public void setUsername(String username) {
38-
this.username = username;
39-
}
40-
4141
public String getFirstName() {
4242
return firstName;
4343
}
@@ -71,7 +71,7 @@ public void setMatchingPassword(String matchingPassword) {
7171
@Override
7272
public String toString() {
7373
final StringBuilder builder = new StringBuilder();
74-
builder.append("User [firstName=").append(firstName).append("]").append("[lastName=").append(lastName).append("]").append("[username").append(username).append("]").append("[password").append(password).append("]");
74+
builder.append("User [firstName=").append(firstName).append("]").append("[lastName=").append(lastName).append("]").append("[email").append(email).append("]").append("[password").append(password).append("]");
7575
return builder.toString();
7676
}
7777
}
Lines changed: 32 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,39 @@
11
package org.baeldung.persistence.service;
22

3+
import javax.transaction.Transactional;
4+
import org.baeldung.persistence.dao.UserRepository;
5+
import org.baeldung.persistence.model.Role;
36
import org.baeldung.persistence.model.User;
7+
import org.springframework.beans.factory.annotation.Autowired;
8+
import org.springframework.stereotype.Service;
49

5-
public interface UserService {
10+
@Service
11+
public class UserService implements IUserService {
12+
@Autowired
13+
private UserRepository repository;
14+
15+
@Transactional
16+
@Override
17+
public User registerNewUserAccount(UserDto userAccountData) throws EmailExistsException {
18+
if (emailExist(userAccountData.getEmail())) {
619

7-
public User registerNewUserAccount(UserDto userAccountData) throws EmailExistsException;
20+
throw new EmailExistsException("There is an account with that email adress: " + userAccountData.getEmail());
21+
}
22+
User user = new User();
23+
user.setFirstName(userAccountData.getFirstName());
24+
user.setLastName(userAccountData.getLastName());
25+
user.setPassword(userAccountData.getPassword());
26+
user.setEmail(userAccountData.getEmail());
27+
//ROLE WILL ALWAYS BE USER. HARDCODING IT
28+
user.setRole(new Role(Integer.valueOf(1),user));
29+
return repository.save(user);
30+
}
831

32+
private boolean emailExist(String email) {
33+
User user = repository.findByEmail(email);
34+
if (user != null) {
35+
return true;
36+
}
37+
return false;
38+
}
939
}

spring-security-login-error-handling/src/main/java/org/baeldung/persistence/service/ValidUsername.java renamed to spring-security-login-error-handling/src/main/java/org/baeldung/persistence/service/ValidEmail.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@
1212

1313
@Target({ TYPE, FIELD, ANNOTATION_TYPE })
1414
@Retention(RUNTIME)
15-
@Constraint(validatedBy = UsernameValidator.class)
15+
@Constraint(validatedBy = EmailValidator.class)
1616
@Documented
17-
public @interface ValidUsername {
17+
public @interface ValidEmail {
1818

1919
String message() default "Invalid Email";
2020

spring-security-login-error-handling/src/main/java/org/baeldung/security/MyUserDetailsService.java

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -21,19 +21,20 @@
2121
@Transactional
2222
public class MyUserDetailsService implements UserDetailsService {
2323

24-
private static final Logger LOGGER = LoggerFactory.getLogger(UserDetailsService.class);
24+
private final Logger LOGGER = LoggerFactory.getLogger(getClass());
2525

26+
@Autowired
2627
private UserRepository userRepository;
2728

28-
@Autowired
29-
public MyUserDetailsService(UserRepository repository) {
30-
this.userRepository = repository;
31-
}
29+
// @Autowired
30+
// public MyUserDetailsService(UserRepository repository) {
31+
// this.userRepository = repository;
32+
// }
3233

33-
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
34+
public UserDetails loadUserByUsername(String email) throws UsernameNotFoundException {
3435
try {
35-
LOGGER.debug("Loading user by username: {}", username);
36-
User user = userRepository.findByUsername(username);
36+
LOGGER.debug("Loading user by username: {}", email);
37+
User user = userRepository.findByEmail(email);
3738
LOGGER.debug("Found user: {}", user);
3839
if (user == null) {
3940
// throw new UsernameNotFoundException("No user found with username: " + username);
@@ -44,7 +45,7 @@ public UserDetails loadUserByUsername(String username) throws UsernameNotFoundEx
4445
boolean accountNonExpired = true;
4546
boolean credentialsNonExpired = true;
4647
boolean accountNonLocked = true;
47-
return new org.springframework.security.core.userdetails.User(user.getUsername(), user.getPassword().toLowerCase(), enabled, accountNonExpired, credentialsNonExpired, accountNonLocked, getAuthorities(user.getRole().getRole()));
48+
return new org.springframework.security.core.userdetails.User(user.getEmail(), user.getPassword().toLowerCase(), enabled, accountNonExpired, credentialsNonExpired, accountNonLocked, getAuthorities(user.getRole().getRole()));
4849

4950
} catch (Exception e) {
5051
throw new RuntimeException(e);

spring-security-login-error-handling/src/main/java/org/baeldung/spring/MvcConfig.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import java.util.Locale;
44

55
import org.baeldung.persistence.service.PasswordMatchesValidator;
6-
import org.baeldung.persistence.service.UsernameValidator;
6+
import org.baeldung.persistence.service.EmailValidator;
77
import org.springframework.context.MessageSource;
88
import org.springframework.context.annotation.Bean;
99
import org.springframework.context.annotation.ComponentScan;
@@ -85,8 +85,8 @@ public MessageSource messageSource() {
8585
}
8686

8787
@Bean
88-
public UsernameValidator usernameValidator() {
89-
UsernameValidator userNameValidator = new UsernameValidator();
88+
public EmailValidator usernameValidator() {
89+
EmailValidator userNameValidator = new EmailValidator();
9090
return userNameValidator;
9191
}
9292

0 commit comments

Comments
 (0)