diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index 5bbfbd3..0bbe3c7 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -4,14 +4,10 @@
-
-
+
-
-
-
@@ -40,7 +36,7 @@
1739956546840
-
+
+
+ 1739967506973
+
+
+
+ 1739967506973
+
+
@@ -133,7 +137,8 @@
-
+
+
@@ -156,8 +161,8 @@
file://$PROJECT_DIR$/src/main/java/com/example/nto/websecurity/WebSecurityConfig.java
- 30
-
+ 39
+
diff --git a/src/main/java/com/example/nto/entity/Employee.java b/src/main/java/com/example/nto/entity/Employee.java
index 3fa4d29..a3ea427 100644
--- a/src/main/java/com/example/nto/entity/Employee.java
+++ b/src/main/java/com/example/nto/entity/Employee.java
@@ -27,6 +27,7 @@ public class Employee {
private String login;
private String name;
private String password;
+ private String role;
private String photo;
private String position;
private LocalDateTime lastVisit;
@@ -90,4 +91,12 @@ public class Employee {
public void setPassword(String password) {
this.password = password;
}
+
+ public String getRole() {
+ return role;
+ }
+
+ public void setRole(String role) {
+ this.role = role;
+ }
}
diff --git a/src/main/java/com/example/nto/websecurity/WebSecurityConfig.java b/src/main/java/com/example/nto/websecurity/WebSecurityConfig.java
index 5d8a497..b177935 100644
--- a/src/main/java/com/example/nto/websecurity/WebSecurityConfig.java
+++ b/src/main/java/com/example/nto/websecurity/WebSecurityConfig.java
@@ -10,6 +10,8 @@ import org.springframework.security.config.annotation.authentication.builders.Au
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
+import org.springframework.security.core.userdetails.User;
+import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.provisioning.InMemoryUserDetailsManager;
@@ -28,7 +30,14 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
List employees = employeeRepository.findAll();
InMemoryUserDetailsManager inMemoryUserDetailsManager = new InMemoryUserDetailsManager();
for (int i = 0; i < employees.size(); i++) {
- inMemoryUserDetailsManager.createUser(new CustomUserDetails(employees.get(i)));
+ Employee employee = employees.get(i);
+ UserDetails user = User
+ .withUserDetails(new CustomUserDetails(employee))
+ .password(employee.getPassword())
+ .username(employee.getLogin())
+ .roles(employee.getRole())
+ .build();
+ inMemoryUserDetailsManager.createUser(user);
}
return inMemoryUserDetailsManager;
@@ -38,6 +47,7 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
public BCryptPasswordEncoder passwordEncoder() {
return new BCryptPasswordEncoder();
}
+
@Bean
public DaoAuthenticationProvider authenticationProvider() {
DaoAuthenticationProvider authProvider = new DaoAuthenticationProvider();
diff --git a/src/main/resources/data.sql b/src/main/resources/data.sql
index 058124e..8cd1fee 100644
--- a/src/main/resources/data.sql
+++ b/src/main/resources/data.sql
@@ -1,9 +1,9 @@
-INSERT INTO employee (id, login, password, name, photo, position, last_visit)
+INSERT INTO employee (id, login, password, role, name, photo, position, last_visit)
VALUES
-(1, 'pivanov', '$2a$10$6ZWoYJApXdPQYMeUI0BTs.Lf8Tos9HSLESy5Xg4xmJpvCJwtHaKfC', 'Иванов Петр Федорович', 'https://funnyducks.ru/upload/iblock/0cd/0cdeb7ec3ed6fddda0f90fccee05557d.jpg', 'Разработчик', '2024-02-12T08:30'),
-(2, 'ipetrov', '$2a$10$PRWHGoiil0XIipjWzu0MK.vMAxkdyoZQQliLtGh1TUhik7MyN2mje', 'Петров Иван Константинович', 'https://funnyducks.ru/upload/iblock/0cd/0cdeb7ec3ed6fddda0f90fccee05557d.jpg', 'Аналитик', '2024-02-13T08:35'),
-(3, 'asemenov', '$2a$10$PRWHGoiil0XIipjWzu0MK.vMAxkdyoZQQliLtGh1TUhik7MyN2mje', 'Семенов Анатолий Анатольевич', 'https://funnyducks.ru/upload/iblock/0cd/0cdeb7ec3ed6fddda0f90fccee05557d.jpg', 'Разработчик', '2024-02-13T08:31'),
-(4, 'afedorov', '$2a$10$PRWHGoiil0XIipjWzu0MK.vMAxkdyoZQQliLtGh1TUhik7MyN2mje', 'Федоров Александр Сергеевич', 'https://funnyducks.ru/upload/iblock/0cd/0cdeb7ec3ed6fddda0f90fccee05557d.jpg', 'Тестировщик', '2024-02-12T08:36');
+(1, 'pivanov', '$2a$10$6ZWoYJApXdPQYMeUI0BTs.Lf8Tos9HSLESy5Xg4xmJpvCJwtHaKfC', 'ADMIN', 'Иванов Петр Федорович', 'https://funnyducks.ru/upload/iblock/0cd/0cdeb7ec3ed6fddda0f90fccee05557d.jpg', 'Разработчик', '2024-02-12T08:30'),
+(2, 'ipetrov', '$2a$10$PRWHGoiil0XIipjWzu0MK.vMAxkdyoZQQliLtGh1TUhik7MyN2mje', 'USER', 'Петров Иван Константинович', 'https://funnyducks.ru/upload/iblock/0cd/0cdeb7ec3ed6fddda0f90fccee05557d.jpg', 'Аналитик', '2024-02-13T08:35'),
+(3, 'asemenov', '$2a$10$PRWHGoiil0XIipjWzu0MK.vMAxkdyoZQQliLtGh1TUhik7MyN2mje', 'USER', 'Семенов Анатолий Анатольевич', 'https://funnyducks.ru/upload/iblock/0cd/0cdeb7ec3ed6fddda0f90fccee05557d.jpg', 'Разработчик', '2024-02-13T08:31'),
+(4, 'afedorov', '$2a$10$PRWHGoiil0XIipjWzu0MK.vMAxkdyoZQQliLtGh1TUhik7MyN2mje', 'USER', 'Федоров Александр Сергеевич', 'https://funnyducks.ru/upload/iblock/0cd/0cdeb7ec3ed6fddda0f90fccee05557d.jpg', 'Тестировщик', '2024-02-12T08:36');
INSERT INTO code (value)
VALUES