добавила картинки и насилую классы юзеров, чтоб как-то впихнуть туда поле isAdmin

This commit is contained in:
Елена Бакальская 2024-05-13 01:21:22 +04:00
parent 793f596fa4
commit c633283fc0
14 changed files with 454 additions and 72 deletions

Binary file not shown.

View File

@ -12,6 +12,7 @@ public class UserPrincipal implements UserDetails {
private final long id;
private final String username;
private final String password;
private final boolean isAdmin;
private final Set<? extends GrantedAuthority> roles;
private final boolean active;
@ -19,6 +20,7 @@ public class UserPrincipal implements UserDetails {
this.id = user.getId();
this.username = user.getLogin();
this.password = user.getPassword();
this.isAdmin = user.getIsAdmin();
this.roles = Set.of(user.getRole());
this.active = true;
}
@ -37,6 +39,10 @@ public class UserPrincipal implements UserDetails {
return password;
}
public boolean getIsAdmin() {
return isAdmin;
}
@Override
public Collection<? extends GrantedAuthority> getAuthorities() {
return roles;

View File

@ -1,66 +1,61 @@
package com.example.backend.users.api;
// package com.example.backend.users.api;
import java.util.List;
// import org.modelmapper.ModelMapper;
// import org.springframework.stereotype.Controller;
// import org.springframework.ui.Model;
// import org.springframework.validation.BindingResult;
// import org.springframework.web.bind.annotation.GetMapping;
// import org.springframework.web.bind.annotation.ModelAttribute;
// import org.springframework.web.bind.annotation.PostMapping;
// import org.springframework.web.bind.annotation.RequestMapping;
// import org.springframework.web.bind.annotation.RestController;
import org.modelmapper.ModelMapper;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
// import com.example.backend.core.configurations.Constants;
// import com.example.backend.users.model.UserEntity;
// import com.example.backend.users.service.UserService;
import com.example.backend.core.configurations.Constants;
import com.example.backend.users.model.UserEntity;
import com.example.backend.users.service.UserService;
// import jakarta.validation.Valid;
// import org.springframework.web.bind.annotation.RequestBody;
import jakarta.validation.Valid;
// @Controller
// // @RequestMapping(Constants.API_URL + "/user")
// public class UserController {
@RestController
@RequestMapping(Constants.API_URL + "/user")
public class UserController {
// private static final String CATEGORIES_VIEW = "categories";
// private static final String LOGIN_VIEW = "login";
// private static final String USER_ATTRIBUTE = "user";
private final UserService userService;
private final ModelMapper modelMapper;
// private final UserService userService;
// private final ModelMapper modelMapper;
public UserController(UserService userService, ModelMapper modelMapper) {
this.modelMapper = modelMapper;
this.userService = userService;
}
// public UserController(UserService userService, ModelMapper modelMapper) {
// this.modelMapper = modelMapper;
// this.userService = userService;
// }
private UserEntity toEntity(UserDTO dto) {
return modelMapper.map(dto, UserEntity.class);
}
// private UserEntity toEntity(UserDTO dto) {
// return modelMapper.map(dto, UserEntity.class);
// }
private UserDTO toDto(UserEntity entity) {
return modelMapper.map(entity, UserDTO.class);
}
// private UserDTO toDto(UserEntity entity) {
// return modelMapper.map(entity, UserDTO.class);
// }
@GetMapping()
public List<UserDTO> getAll() {
return userService.getAll().stream().map(this::toDto).toList();
}
// @GetMapping("/edit/")
// public String create(Model model) {
// model.addAttribute(CATEGORIES_VIEW, new UserDTO());
// return LOGIN_VIEW;
// }
@GetMapping("/{id}")
public UserDTO get(@PathVariable(name = "id") Integer id) {
return toDto(userService.get(id));
}
@PostMapping
public UserDTO create(@RequestBody @Valid UserDTO userDTO) {
return toDto(userService.create(toEntity(userDTO)));
}
@PutMapping("/{id}")
public UserDTO update(@PathVariable(name = "id") Integer id, @RequestBody UserDTO userDTO) {
return toDto(userService.update(id, toEntity(userDTO)));
}
@DeleteMapping("/{id}")
public UserDTO delete(@PathVariable(name = "id") Integer id) {
return toDto(userService.delete(id));
}
}
// @PostMapping("/edit/")
// public String create(
// @ModelAttribute(name = USER_ATTRIBUTE) @Valid UserDTO userDTO,
// BindingResult bindingResult,
// Model model) {
// if (bindingResult.hasErrors()) {
// return LOGIN_VIEW + "/login";
// }
// userService.create(toEntity(userDTO));
// return Constants.REDIRECT_VIEW + "/user";
// }
// }

View File

@ -13,16 +13,19 @@ public class UserDTO {
private Integer id;
@NotBlank
@Size(min = 2, max = 50)
@Size(min = 2, max = 90)
private String login;
@NotBlank
@Size(min = 2, max = 10)
@Size(min = 2, max = 90)
private String password;
@NotNull
private UserRole role;
@NotNull
private boolean isAdmin;
@JsonProperty(access = JsonProperty.Access.READ_ONLY)
public Integer getId() {
return id;
@ -55,4 +58,12 @@ public class UserDTO {
public void setRole(UserRole role) {
this.role = role;
}
public boolean getIsAdmin() {
return isAdmin;
}
public void setIsAdmin(boolean isAdmin) {
this.isAdmin = isAdmin;
}
}

View File

@ -61,5 +61,4 @@ public class UserSignupController {
userService.create(toEntity(user));
return Constants.REDIRECT_VIEW + Constants.LOGIN_URL + "?signup";
}
}

View File

@ -1,19 +1,28 @@
package com.example.backend.users.api;
import com.example.backend.users.model.UserRole;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Size;
public class UserSignupDTO {
@NotBlank
@Size(min = 3, max = 20)
@Size(min = 3, max = 100)
private String login;
@NotBlank
@Size(min = 3, max = 20)
@Size(min = 3, max = 90)
private String password;
@NotBlank
@Size(min = 3, max = 20)
private UserRole role;
@NotBlank
@Size(min = 3, max = 90)
private String passwordConfirm;
private boolean isAdmin; // Новое поле для определения роли пользователя
public String getLogin() {
return login;
}
@ -37,4 +46,20 @@ public class UserSignupDTO {
public void setPasswordConfirm(String passwordConfirm) {
this.passwordConfirm = passwordConfirm;
}
public boolean getIsAdmin() {
return isAdmin;
}
public void setIsAdmin(boolean isAdmin) {
this.isAdmin = isAdmin;
}
public UserRole getRole() {
return role;
}
public void setRole(UserRole role) {
this.role = role;
}
}

View File

@ -4,6 +4,7 @@ import java.util.Objects;
import com.example.backend.core.model.BaseEntity;
import io.micrometer.common.lang.NonNull;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.Table;
@ -12,21 +13,25 @@ import jakarta.persistence.Table;
@Table(name = "users")
public class UserEntity extends BaseEntity {
@Column(nullable = false, unique = true, length = 15)
@Column(nullable = false, unique = true, length = 90)
private String login;
@Column(nullable = false, length = 5)
@Column(nullable = false, length = 90)
private String password;
@NonNull
private boolean isAdmin;
private UserRole role;
public UserEntity() {
}
public UserEntity(Integer id, String login, String password) {
public UserEntity(Integer id, String login, String password, boolean isAdmin) {
this.login = login;
this.password = password;
this.isAdmin = isAdmin;
this.role = UserRole.USER;
}
@ -46,6 +51,14 @@ public class UserEntity extends BaseEntity {
this.password = password;
}
public boolean getIsAdmin() {
return isAdmin;
}
public void setIsAdmin(boolean isAdmin) {
this.isAdmin = isAdmin;
}
public UserRole getRole() {
return role;
}
@ -69,6 +82,7 @@ public class UserEntity extends BaseEntity {
return Objects.equals(other.getId(), id) &&
Objects.equals(other.getLogin(), login) &&
Objects.equals(other.getRole(), role) &&
Objects.equals(other.getIsAdmin(), isAdmin) &&
Objects.equals(other.getPassword(), password);
}
}

View File

@ -59,11 +59,16 @@ public class UserService implements UserDetailsService {
if (entity == null) {
throw new IllegalArgumentException("Entity is null");
}
entity.setLogin(null);
checkLogin(null, entity.getLogin());
final String password = Optional.ofNullable(entity.getPassword()).orElse("");
entity.setPassword(
passwordEncoder.encode(StringUtils.hasText(password.strip()) ? password : Constants.DEFAULT_PASSWORD));
entity.setRole(Optional.ofNullable(entity.getRole()).orElse(UserRole.USER));
if (entity.getIsAdmin() == true) {
entity.setRole(UserRole.ADMIN);
} else {
entity.setRole(UserRole.USER);
}
repository.save(entity);
return repository.save(entity);
}

View File

@ -1,9 +1,8 @@
@font-face {
font-family: Candara;
src: url("backend\src\main\resources\public\fonts\candara-light.ttf");
src: url("../fonts/candara-light.ttf");
}
/* NAVBAR */
.my-navbar {
font-family: Candara;
@ -12,13 +11,13 @@
color: white;
}
.my-navbar .link a:hover {
.my-navbar.link a:hover {
font-family: Candara;
text-decoration: underline !important;
color: rgb(251, 158, 149);
}
.my-navbar .logo {
.my-navbar.logo {
height: 30px;
}
@ -28,4 +27,108 @@
background-color: #3C2C72;
color: white;
height: 32px;
}
/* SIGNUP РЕГИСТРАЦИЯ!!! */
#login-page {
font-family: Candara;
background-image: url("../images/logo_light.png");
background-color: rgb(0, 0, 0);
background-position: center;
background-size: cover;
background-repeat: no-repeat;
color: #ffffff;
}
.col {
opacity: 0.6;
}
.input-fill {
font-size: 3vh;
text-align: center;
}
.btn {
width: 300px;
height: 50px;
font-size: 25px;
transition: 0.3s;
}
.btn:hover {
transform: scale(1.1);
}
@media screen and (max-width: 576px) {
p,
.are-you-admin {
font-size: min(10vw, 25px);
}
.btn {
font-size: min(10vw, 18px);
width: 30vh;
}
}
.are-you-admin {
font-size: 20px;
}
/* LOGIN ВХОД!!! */
.main-bg-into {
/* background-color: black; */
background-color: rgb(92, 55, 137);
background-image: url("../images/logotip_LC.png");
background-position: center;
background-size: cover;
background-repeat: no-repeat;
}
#into-page {
font-family: Candara;
background-color: rgba(0, 0, 0, 0.6);
background-blend-mode: multiply;
color: white;
}
.text-label {
font-size: 25px;
text-align: center;
}
.btn {
width: 300px;
height: 50px;
font-size: 25px;
transition: 0.9s;
}
.btn:hover {
transform: scale(1.1);
}
@media screen and (max-width: 576px) {
.p {
font-size: min(10vw, 36px);
}
.btn {
font-size: min(10vw, 25px);
width: 30vh;
}
}
.error {
font-family: CandaraBold;
color: #f1ff56;
text-align: center;
font-size: 3.5vh;
text-decoration: underline;
}

View File

@ -1,3 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-cart2" viewBox="0 0 16 16">
<path d="M0 2.5A.5.5 0 0 1 .5 2H2a.5.5 0 0 1 .485.379L2.89 4H14.5a.5.5 0 0 1 .485.621l-1.5 6A.5.5 0 0 1 13 11H4a.5.5 0 0 1-.485-.379L1.61 3H.5a.5.5 0 0 1-.5-.5zM3.14 5l1.25 5h8.22l1.25-5H3.14zM5 13a1 1 0 1 0 0 2 1 1 0 0 0 0-2zm-2 1a2 2 0 1 1 4 0 2 2 0 0 1-4 0zm9-1a1 1 0 1 0 0 2 1 1 0 0 0 0-2zm-2 1a2 2 0 1 1 4 0 2 2 0 0 1-4 0z"/>
</svg>

Before

Width:  |  Height:  |  Size: 463 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 458 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 118 KiB

Binary file not shown.

View File

@ -72,3 +72,230 @@ insert into users (is_admin,password,username,id) values (?,?,?,?) [22001-224]
org.h2.jdbc.JdbcSQLDataException: Значение слишком длинное для поля "PASSWORD CHARACTER VARYING(5)": "'string' (6)"
Value too long for column "PASSWORD CHARACTER VARYING(5)": "'string' (6)"; SQL statement:
insert into users (is_admin,password,username,id) values (?,?,?,?) [22001-224]
2024-05-12 10:12:25.785506+04:00 database: flush
org.h2.message.DbException: Внутренняя ошибка: "org.h2.mvstore.MVStoreException: The file is locked: D:/code/PIbd-21_Bakalskaya_E.D._INTERNET_PROGRAMMING_BACKEND/data.mv.db [2.2.224/7]"
General error: "org.h2.mvstore.MVStoreException: The file is locked: D:/code/PIbd-21_Bakalskaya_E.D._INTERNET_PROGRAMMING_BACKEND/data.mv.db [2.2.224/7]" [50000-224]
at org.h2.message.DbException.get(DbException.java:212)
at org.h2.message.DbException.convert(DbException.java:407)
at org.h2.mvstore.db.Store.lambda$new$0(Store.java:122)
at org.h2.mvstore.MVStore.handleException(MVStore.java:1546)
at org.h2.mvstore.MVStore.panic(MVStore.java:371)
at org.h2.mvstore.MVStore.<init>(MVStore.java:291)
at org.h2.mvstore.MVStore$Builder.open(MVStore.java:2035)
at org.h2.mvstore.db.Store.<init>(Store.java:133)
at org.h2.engine.Database.<init>(Database.java:326)
at org.h2.engine.Engine.openSession(Engine.java:92)
at org.h2.engine.Engine.openSession(Engine.java:222)
at org.h2.engine.Engine.createSession(Engine.java:201)
at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:343)
at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:125)
at org.h2.Driver.connect(Driver.java:59)
at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:138)
at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:359)
at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:201)
at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:470)
at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:561)
at com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:100)
at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:112)
at org.springframework.boot.autoconfigure.h2.H2ConsoleAutoConfiguration.getConnectionUrl(H2ConsoleAutoConfiguration.java:94)
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
at java.base/java.util.stream.SortedOps$RefSortingSink.end(SortedOps.java:395)
at java.base/java.util.stream.Sink$ChainedReference.end(Sink.java:258)
at java.base/java.util.stream.Sink$ChainedReference.end(Sink.java:258)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:510)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:575)
at java.base/java.util.stream.AbstractPipeline.evaluateToArrayNode(AbstractPipeline.java:260)
at java.base/java.util.stream.ReferencePipeline.toArray(ReferencePipeline.java:616)
at java.base/java.util.stream.ReferencePipeline.toArray(ReferencePipeline.java:622)
at java.base/java.util.stream.ReferencePipeline.toList(ReferencePipeline.java:627)
at org.springframework.boot.autoconfigure.h2.H2ConsoleAutoConfiguration.logDataSources(H2ConsoleAutoConfiguration.java:86)
at org.springframework.boot.autoconfigure.h2.H2ConsoleAutoConfiguration.lambda$h2Console$0(H2ConsoleAutoConfiguration.java:69)
at org.springframework.boot.autoconfigure.h2.H2ConsoleAutoConfiguration.withThreadContextClassLoader(H2ConsoleAutoConfiguration.java:78)
at org.springframework.boot.autoconfigure.h2.H2ConsoleAutoConfiguration.h2Console(H2ConsoleAutoConfiguration.java:69)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:140)
at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:644)
at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:636)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1335)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1165)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:562)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:522)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:326)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:324)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:205)
at org.springframework.boot.web.servlet.ServletContextInitializerBeans.getOrderedBeansOfType(ServletContextInitializerBeans.java:210)
at org.springframework.boot.web.servlet.ServletContextInitializerBeans.getOrderedBeansOfType(ServletContextInitializerBeans.java:201)
at org.springframework.boot.web.servlet.ServletContextInitializerBeans.addServletContextInitializerBeans(ServletContextInitializerBeans.java:96)
at org.springframework.boot.web.servlet.ServletContextInitializerBeans.<init>(ServletContextInitializerBeans.java:85)
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.getServletContextInitializerBeans(ServletWebServerApplicationContext.java:266)
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.selfInitialize(ServletWebServerApplicationContext.java:240)
at org.springframework.boot.web.embedded.tomcat.TomcatStarter.onStartup(TomcatStarter.java:52)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4880)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1332)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1322)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:145)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:866)
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:845)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1332)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1322)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:145)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:866)
at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:240)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171)
at org.apache.catalina.core.StandardService.startInternal(StandardService.java:433)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171)
at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:921)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171)
at org.apache.catalina.startup.Tomcat.start(Tomcat.java:437)
at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.initialize(TomcatWebServer.java:126)
at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.<init>(TomcatWebServer.java:105)
at org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory.getTomcatWebServer(TomcatServletWebServerFactory.java:499)
at org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory.getWebServer(TomcatServletWebServerFactory.java:218)
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.createWebServer(ServletWebServerApplicationContext.java:188)
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.onRefresh(ServletWebServerApplicationContext.java:162)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:618)
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754)
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:456)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:334)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1354)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1343)
at com.example.backend.BackendApplication.main(BackendApplication.java:32)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:50)
Caused by: org.h2.jdbc.JdbcSQLNonTransientException: Внутренняя ошибка: "org.h2.mvstore.MVStoreException: The file is locked: D:/code/PIbd-21_Bakalskaya_E.D._INTERNET_PROGRAMMING_BACKEND/data.mv.db [2.2.224/7]"
General error: "org.h2.mvstore.MVStoreException: The file is locked: D:/code/PIbd-21_Bakalskaya_E.D._INTERNET_PROGRAMMING_BACKEND/data.mv.db [2.2.224/7]" [50000-224]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:566)
at org.h2.message.DbException.getJdbcSQLException(DbException.java:489)
... 103 more
Caused by: org.h2.mvstore.MVStoreException: The file is locked: D:/code/PIbd-21_Bakalskaya_E.D._INTERNET_PROGRAMMING_BACKEND/data.mv.db [2.2.224/7]
at org.h2.mvstore.DataUtils.newMVStoreException(DataUtils.java:996)
at org.h2.mvstore.SingleFileStore.lockFileChannel(SingleFileStore.java:143)
at org.h2.mvstore.SingleFileStore.open(SingleFileStore.java:117)
at org.h2.mvstore.SingleFileStore.open(SingleFileStore.java:81)
at org.h2.mvstore.MVStore.<init>(MVStore.java:286)
... 97 more
2024-05-12 10:12:27.410246+04:00 database: flush
org.h2.message.DbException: Внутренняя ошибка: "org.h2.mvstore.MVStoreException: The file is locked: D:/code/PIbd-21_Bakalskaya_E.D._INTERNET_PROGRAMMING_BACKEND/data.mv.db [2.2.224/7]"
General error: "org.h2.mvstore.MVStoreException: The file is locked: D:/code/PIbd-21_Bakalskaya_E.D._INTERNET_PROGRAMMING_BACKEND/data.mv.db [2.2.224/7]" [50000-224]
at org.h2.message.DbException.get(DbException.java:212)
at org.h2.message.DbException.convert(DbException.java:407)
at org.h2.mvstore.db.Store.lambda$new$0(Store.java:122)
at org.h2.mvstore.MVStore.handleException(MVStore.java:1546)
at org.h2.mvstore.MVStore.panic(MVStore.java:371)
at org.h2.mvstore.MVStore.<init>(MVStore.java:291)
at org.h2.mvstore.MVStore$Builder.open(MVStore.java:2035)
at org.h2.mvstore.db.Store.<init>(Store.java:133)
at org.h2.engine.Database.<init>(Database.java:326)
at org.h2.engine.Engine.openSession(Engine.java:92)
at org.h2.engine.Engine.openSession(Engine.java:222)
at org.h2.engine.Engine.createSession(Engine.java:201)
at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:343)
at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:125)
at org.h2.Driver.connect(Driver.java:59)
at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:138)
at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:359)
at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:201)
at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:470)
at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:561)
at com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:100)
at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:112)
at org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.getConnection(DatasourceConnectionProviderImpl.java:122)
at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator$ConnectionProviderJdbcConnectionAccess.obtainConnection(JdbcEnvironmentInitiator.java:428)
at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcIsolationDelegate.delegateWork(JdbcIsolationDelegate.java:61)
at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.getJdbcEnvironmentUsingJdbcMetadata(JdbcEnvironmentInitiator.java:276)
at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:107)
at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:68)
at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.initiateService(StandardServiceRegistryImpl.java:130)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:263)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:238)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:215)
at org.hibernate.boot.model.relational.Database.<init>(Database.java:45)
at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.getDatabase(InFlightMetadataCollectorImpl.java:223)
at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.<init>(InFlightMetadataCollectorImpl.java:191)
at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:170)
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.metadata(EntityManagerFactoryBuilderImpl.java:1432)
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1503)
at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:75)
at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:390)
at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:409)
at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:396)
at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet(LocalContainerEntityManagerFactoryBean.java:366)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1833)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1782)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:600)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:522)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:326)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:324)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200)
at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1234)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:952)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:624)
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754)
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:456)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:334)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1354)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1343)
at com.example.backend.BackendApplication.main(BackendApplication.java:32)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:50)
Caused by: org.h2.jdbc.JdbcSQLNonTransientException: Внутренняя ошибка: "org.h2.mvstore.MVStoreException: The file is locked: D:/code/PIbd-21_Bakalskaya_E.D._INTERNET_PROGRAMMING_BACKEND/data.mv.db [2.2.224/7]"
General error: "org.h2.mvstore.MVStoreException: The file is locked: D:/code/PIbd-21_Bakalskaya_E.D._INTERNET_PROGRAMMING_BACKEND/data.mv.db [2.2.224/7]" [50000-224]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:566)
at org.h2.message.DbException.getJdbcSQLException(DbException.java:489)
... 66 more
Caused by: org.h2.mvstore.MVStoreException: The file is locked: D:/code/PIbd-21_Bakalskaya_E.D._INTERNET_PROGRAMMING_BACKEND/data.mv.db [2.2.224/7]
at org.h2.mvstore.DataUtils.newMVStoreException(DataUtils.java:996)
at org.h2.mvstore.SingleFileStore.lockFileChannel(SingleFileStore.java:143)
at org.h2.mvstore.SingleFileStore.open(SingleFileStore.java:117)
at org.h2.mvstore.SingleFileStore.open(SingleFileStore.java:81)
at org.h2.mvstore.MVStore.<init>(MVStore.java:286)
... 60 more
2024-05-12 21:34:34.174331+04:00 jdbc[3]: exception
org.h2.jdbc.JdbcSQLDataException: Значение слишком длинное для поля "PASSWORD CHARACTER VARYING(5)": "'$2a$10$Rf07keY4Z/WhQLBEqbMbyu56QuCA5xbmHeAVPNg/odAvY47yE8GjC' (60)"
Value too long for column "PASSWORD CHARACTER VARYING(5)": "'$2a$10$Rf07keY4Z/WhQLBEqbMbyu56QuCA5xbmHeAVPNg/odAvY47yE8GjC' (60)"; SQL statement:
insert into users (is_admin,login,password,role,id) values (?,?,?,?,?) [22001-224]
2024-05-12 21:38:56.147601+04:00 jdbc[3]: exception
org.h2.jdbc.JdbcSQLDataException: Значение слишком длинное для поля "PASSWORD CHARACTER VARYING(20)": "'$2a$10$7XkFYCPQBOF7yXXQ6kEkO.0QBBtiCOPDjxucmGsrxBXHXfoaAP8Tu' (60)"
Value too long for column "PASSWORD CHARACTER VARYING(20)": "'$2a$10$7XkFYCPQBOF7yXXQ6kEkO.0QBBtiCOPDjxucmGsrxBXHXfoaAP8Tu' (60)"; SQL statement:
insert into users (is_admin,login,password,role,id) values (?,?,?,?,?) [22001-224]
2024-05-12 21:39:04.953731+04:00 jdbc[3]: exception
org.h2.jdbc.JdbcSQLDataException: Значение слишком длинное для поля "PASSWORD CHARACTER VARYING(20)": "'$2a$10$ZAbf6WfHePM5ns4r4DZWmuj9yTPKjm.VfT4q95Tc3qiROTPzlb6Sq' (60)"
Value too long for column "PASSWORD CHARACTER VARYING(20)": "'$2a$10$ZAbf6WfHePM5ns4r4DZWmuj9yTPKjm.VfT4q95Tc3qiROTPzlb6Sq' (60)"; SQL statement:
insert into users (is_admin,login,password,role,id) values (?,?,?,?,?) [22001-224]
2024-05-12 21:39:08.584296+04:00 jdbc[3]: exception
org.h2.jdbc.JdbcSQLDataException: Значение слишком длинное для поля "PASSWORD CHARACTER VARYING(20)": "'$2a$10$abhWyp7BEpM/f5iR8lbXJ.1TtCLvd7ZR48Z.oJZFQfDeJqkCaEPQi' (60)"
Value too long for column "PASSWORD CHARACTER VARYING(20)": "'$2a$10$abhWyp7BEpM/f5iR8lbXJ.1TtCLvd7ZR48Z.oJZFQfDeJqkCaEPQi' (60)"; SQL statement:
insert into users (is_admin,login,password,role,id) values (?,?,?,?,?) [22001-224]
2024-05-12 21:39:30.388688+04:00 jdbc[3]: exception
org.h2.jdbc.JdbcSQLDataException: Значение слишком длинное для поля "PASSWORD CHARACTER VARYING(20)": "'$2a$10$wO/abVNIh838IC9VTQLrB.JfG7qsWsAxTebHZXXTVK8ln7jkMpxiK' (60)"
Value too long for column "PASSWORD CHARACTER VARYING(20)": "'$2a$10$wO/abVNIh838IC9VTQLrB.JfG7qsWsAxTebHZXXTVK8ln7jkMpxiK' (60)"; SQL statement:
insert into users (is_admin,login,password,role,id) values (?,?,?,?,?) [22001-224]
2024-05-12 21:43:25.051363+04:00 jdbc[3]: exception
org.h2.jdbc.JdbcSQLDataException: Значение слишком длинное для поля "PASSWORD CHARACTER VARYING(20)": "'$2a$10$gqXogx6wGIIbkYL9tAA83uSWNioogg6sxNo./nPbW5EAt/K2R2AFm' (60)"
Value too long for column "PASSWORD CHARACTER VARYING(20)": "'$2a$10$gqXogx6wGIIbkYL9tAA83uSWNioogg6sxNo./nPbW5EAt/K2R2AFm' (60)"; SQL statement:
insert into users (is_admin,login,password,role,id) values (?,?,?,?,?) [22001-224]
2024-05-12 21:45:41.743220+04:00 jdbc[3]: exception
org.h2.jdbc.JdbcSQLDataException: Значение слишком длинное для поля "PASSWORD CHARACTER VARYING(20)": "'$2a$10$KxYCFqPHmoXVKChGwJA5AOiZqYiIwLs9sVLimM8jR2mGIcSyuJmvO' (60)"
Value too long for column "PASSWORD CHARACTER VARYING(20)": "'$2a$10$KxYCFqPHmoXVKChGwJA5AOiZqYiIwLs9sVLimM8jR2mGIcSyuJmvO' (60)"; SQL statement:
insert into users (is_admin,login,password,role,id) values (?,?,?,?,?) [22001-224]