diff --git a/src/main/java/org/springframework/cheapy/configuration/SecurityConfiguration.java b/src/main/java/org/springframework/cheapy/configuration/SecurityConfiguration.java index 46e1b8600..2fbdc84ad 100644 --- a/src/main/java/org/springframework/cheapy/configuration/SecurityConfiguration.java +++ b/src/main/java/org/springframework/cheapy/configuration/SecurityConfiguration.java @@ -58,7 +58,7 @@ public class SecurityConfiguration extends WebSecurityConfigurerAdapter { public void configure(final AuthenticationManagerBuilder auth) throws Exception { auth.jdbcAuthentication().dataSource(this.dataSource) //[login de admin,owner y vet] .usersByUsernameQuery("select username,password,enabled " + "from users " + "where username = ?") - .usersByUsernameQuery("select nombre_usuario,contra,enabled from usuarios where nombre_usuario=?").authoritiesByUsernameQuery("select username, authority " + "from authorities " + "where username = ?") //[login de tallerespaco] + .usersByUsernameQuery("select username, password, enabled from users where username=?").authoritiesByUsernameQuery("select username, authority " + "from authorities " + "where username = ?") //[login de tallerespaco] .passwordEncoder(this.passwordEncoder()); } diff --git a/src/main/java/org/springframework/cheapy/model/Authorities.java b/src/main/java/org/springframework/cheapy/model/Authorities.java index aaaa01f6c..7ec1f6666 100644 --- a/src/main/java/org/springframework/cheapy/model/Authorities.java +++ b/src/main/java/org/springframework/cheapy/model/Authorities.java @@ -1,26 +1,36 @@ package org.springframework.cheapy.model; import javax.persistence.Entity; -import javax.persistence.Id; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; import javax.persistence.Table; +import javax.validation.constraints.Size; @Entity @Table(name = "authorities") -public class Authorities { +public class Authorities extends BaseEntity{ - @Id - String username; + + /** + * + */ + private static final long serialVersionUID = 1L; - String authority; - - public String getUsername() { - return username; + @ManyToOne + @JoinColumn(name = "username") + private Usuario user; + + @Size(min = 3, max = 50) + private String authority; + + public Usuario getUser() { + return user; } - - public void setUser(String username) { - this.username = username; + + public void setUser(Usuario usern) { + this.user = usern; } - + public String getAuthority() { return authority; } @@ -29,4 +39,9 @@ public class Authorities { this.authority = authority; } + public static long getSerialversionuid() { + return serialVersionUID; + } + + } diff --git a/src/main/java/org/springframework/cheapy/model/Client.java b/src/main/java/org/springframework/cheapy/model/Client.java index 37ba216fa..b249311ff 100644 --- a/src/main/java/org/springframework/cheapy/model/Client.java +++ b/src/main/java/org/springframework/cheapy/model/Client.java @@ -11,7 +11,10 @@ import javax.validation.constraints.NotEmpty; @Entity @Table(name = "clients") public class Client extends User { - + + @NotEmpty + private String email; + @NotEmpty private String address; @@ -42,7 +45,15 @@ public class Client extends User { @OneToMany private Set timeOffers; - + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + public String getAddress() { return address; } diff --git a/src/main/java/org/springframework/cheapy/model/User.java b/src/main/java/org/springframework/cheapy/model/User.java index ef31368b3..36d495444 100644 --- a/src/main/java/org/springframework/cheapy/model/User.java +++ b/src/main/java/org/springframework/cheapy/model/User.java @@ -1,30 +1,34 @@ package org.springframework.cheapy.model; +import java.util.List; +import java.util.Set; + +import javax.persistence.CascadeType; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.MappedSuperclass; +import javax.persistence.OneToMany; import javax.persistence.OneToOne; import javax.persistence.Table; import javax.validation.constraints.Email; import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; -@Entity -@Table(name = "users") -public class User extends BaseEntity { - - @NotBlank - String username; - - @NotBlank - String password; - - @Email - @NotBlank - String email; +//@Entity +//@Table(name = "users") +@MappedSuperclass +public class User{ + + @Id + private String username; + + @NotBlank + private String password; + + boolean enabled; + - @OneToOne - Authorities authority; public String getUsername() { return username; @@ -42,19 +46,11 @@ public class User extends BaseEntity { this.password = password; } - public String getEmail() { - return email; - } - - public void setEmail(String email) { - this.email = email; - } - - public Authorities getAuthority() { - return authority; - } - - public void setAuthority(Authorities authority) { - this.authority = authority; - } +// public Set getAuthority() { +// return authorities; +// } +// +// public void setAuthorities(Set authorities) { +// this.authorities = authorities; +// } } diff --git a/src/main/java/org/springframework/cheapy/model/Usuario.java b/src/main/java/org/springframework/cheapy/model/Usuario.java new file mode 100644 index 000000000..3556ff16c --- /dev/null +++ b/src/main/java/org/springframework/cheapy/model/Usuario.java @@ -0,0 +1,26 @@ +package org.springframework.cheapy.model; + +import java.util.Set; + +import javax.persistence.CascadeType; +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.OneToMany; +import javax.persistence.Table; + +@Entity +@Table(name = "users") +public class Usuario extends User{ + + @OneToMany(cascade = CascadeType.ALL, mappedBy = "user") + private Set authorities; + + public Set getAuthorities() { + return authorities; + } + + public void setAuthorities(Set authorities) { + this.authorities = authorities; + } + +} diff --git a/src/main/java/org/springframework/cheapy/repository/UserRepository.java b/src/main/java/org/springframework/cheapy/repository/UserRepository.java deleted file mode 100644 index a109afcb6..000000000 --- a/src/main/java/org/springframework/cheapy/repository/UserRepository.java +++ /dev/null @@ -1,11 +0,0 @@ - -package org.springframework.cheapy.repository; - -import org.springframework.data.repository.CrudRepository; -import org.springframework.cheapy.model.User; - -public interface UserRepository extends CrudRepository { - - User findByUsername(String currentPrincipalName); - -} diff --git a/src/main/java/org/springframework/cheapy/repository/UsuarioRepository.java b/src/main/java/org/springframework/cheapy/repository/UsuarioRepository.java new file mode 100644 index 000000000..3b5ffc987 --- /dev/null +++ b/src/main/java/org/springframework/cheapy/repository/UsuarioRepository.java @@ -0,0 +1,12 @@ + +package org.springframework.cheapy.repository; + +import org.springframework.data.repository.CrudRepository; +import org.springframework.cheapy.model.User; +import org.springframework.cheapy.model.Usuario; + +public interface UsuarioRepository extends CrudRepository { + + Usuario findByUsername(String currentPrincipalName); + +} diff --git a/src/main/java/org/springframework/cheapy/service/UserService.java b/src/main/java/org/springframework/cheapy/service/UserService.java index 5576184a1..d719f8b47 100644 --- a/src/main/java/org/springframework/cheapy/service/UserService.java +++ b/src/main/java/org/springframework/cheapy/service/UserService.java @@ -21,7 +21,7 @@ import java.util.Optional; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.dao.DataAccessException; import org.springframework.cheapy.model.User; -import org.springframework.cheapy.repository.UserRepository; +import org.springframework.cheapy.repository.UsuarioRepository; import org.springframework.security.core.Authentication; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.stereotype.Service; diff --git a/src/main/resources/db/mysql/data.sql b/src/main/resources/db/mysql/data.sql index b7c6309f9..3dd3b74c7 100644 --- a/src/main/resources/db/mysql/data.sql +++ b/src/main/resources/db/mysql/data.sql @@ -12,4 +12,11 @@ INSERT INTO owners VALUES (10, 'Carlos', 'Estaban', '2335 Independence La.', 'Wa INSERT INTO food_offers(start, end, code, type, client_id, food, discount, units) VALUES ('2021-06-15 12:00:00', '2021-06-16 12:00:00', 'jkhlljk', 'active', null, 'macarrones', '15%', 10); -INSERT INTO time_offers(start, end, code, type, client_id, init, finish, discount) VALUES ('2021-06-15 12:00:00', '2021-06-16 12:00:00', 'jkhlljk', 'active', null, '12:00:00', '13:00:00', '10%'); \ No newline at end of file +INSERT INTO time_offers(start, end, code, type, client_id, init, finish, discount) VALUES ('2021-06-15 12:00:00', '2021-06-16 12:00:00', 'jkhlljk', 'active', null, '12:00:00', '13:00:00', '10%'); + +--insert into usuarios(username, password, enabled) values ('admin3', 'admin', true); +--insert into authorities(id ,usuario, authority) values (42,'admin3', 'admin'); + +INSERT INTO users(username,password,enabled) VALUES ('admin1','4dm1n',TRUE); +INSERT INTO authorities(id,username,authority) VALUES (1,'admin1','admin'); +