pu pu pu
This commit is contained in:
parent
bc6ca99907
commit
639704713d
@ -13,6 +13,7 @@ import org.springframework.security.config.annotation.web.configurers.AbstractAu
|
|||||||
import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer;
|
import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer;
|
||||||
import org.springframework.security.core.userdetails.UserDetailsService;
|
import org.springframework.security.core.userdetails.UserDetailsService;
|
||||||
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
|
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
|
||||||
|
import org.springframework.security.crypto.factory.PasswordEncoderFactories;
|
||||||
import org.springframework.security.crypto.password.PasswordEncoder;
|
import org.springframework.security.crypto.password.PasswordEncoder;
|
||||||
import org.springframework.security.web.SecurityFilterChain;
|
import org.springframework.security.web.SecurityFilterChain;
|
||||||
import org.springframework.security.web.util.matcher.AntPathRequestMatcher;
|
import org.springframework.security.web.util.matcher.AntPathRequestMatcher;
|
||||||
@ -27,8 +28,7 @@ public class SecurityConfig {
|
|||||||
@Bean
|
@Bean
|
||||||
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
|
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
|
||||||
return http.csrf(AbstractHttpConfigurer::disable)
|
return http.csrf(AbstractHttpConfigurer::disable)
|
||||||
.authorizeHttpRequests(auth -> auth.requestMatchers(new AntPathRequestMatcher("/api/login")).permitAll()
|
.authorizeHttpRequests(auth -> auth.requestMatchers(new AntPathRequestMatcher("/api/auth")).permitAll().anyRequest().authenticated())
|
||||||
.requestMatchers(new AntPathRequestMatcher("/api/**")).authenticated())
|
|
||||||
.formLogin(AbstractAuthenticationFilterConfigurer::permitAll)
|
.formLogin(AbstractAuthenticationFilterConfigurer::permitAll)
|
||||||
.getOrBuild();
|
.getOrBuild();
|
||||||
}
|
}
|
||||||
|
@ -1,21 +0,0 @@
|
|||||||
package com.example.nto.controller;
|
|
||||||
|
|
||||||
import com.example.nto.model.dto.AuthCredentials;
|
|
||||||
import com.example.nto.service.AuthService;
|
|
||||||
import lombok.RequiredArgsConstructor;
|
|
||||||
import org.springframework.web.bind.annotation.PostMapping;
|
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
|
||||||
import org.springframework.web.bind.annotation.RequestParam;
|
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
|
||||||
|
|
||||||
@RestController
|
|
||||||
@RequiredArgsConstructor
|
|
||||||
@RequestMapping("/api")
|
|
||||||
public class AuthController {
|
|
||||||
private final AuthService authService;
|
|
||||||
|
|
||||||
@PostMapping("/auth")
|
|
||||||
public void auth(@RequestParam final AuthCredentials authCredentials) {
|
|
||||||
authService.auth(authCredentials);
|
|
||||||
}
|
|
||||||
}
|
|
@ -14,13 +14,17 @@ public class EmployeeController {
|
|||||||
|
|
||||||
private final EmployeeService employeeService;
|
private final EmployeeService employeeService;
|
||||||
|
|
||||||
// @PreAuthorize("hasAuthority('User', 'Admin')")
|
@GetMapping("/auth")
|
||||||
|
public void EmployeeExists(@RequestParam final String login) {
|
||||||
|
employeeService.employeeExists(login);
|
||||||
|
}
|
||||||
|
// @PreAuthorize("hasAuthority('ROLE_ADMIN')")
|
||||||
@GetMapping("/info")
|
@GetMapping("/info")
|
||||||
public Employee info(@RequestParam final String login) {
|
public Employee info(@RequestParam final String login) {
|
||||||
return employeeService.getEmployee(login);
|
return employeeService.getEmployee(login);
|
||||||
}
|
}
|
||||||
|
|
||||||
// @PreAuthorize("hasAuthority('User', 'Admin')")
|
// @PreAuthorize("hasAuthority('ROLE_USER', 'ROLE_ADMIN')")
|
||||||
@PatchMapping("/open")
|
@PatchMapping("/open")
|
||||||
public void open(@RequestParam final String login, @RequestBody final Code code) {
|
public void open(@RequestParam final String login, @RequestBody final Code code) {
|
||||||
employeeService.updateVisit(login, code.getValue());
|
employeeService.updateVisit(login, code.getValue());
|
||||||
|
@ -1,7 +0,0 @@
|
|||||||
package com.example.nto.service;
|
|
||||||
|
|
||||||
import com.example.nto.model.dto.AuthCredentials;
|
|
||||||
|
|
||||||
public interface AuthService {
|
|
||||||
void auth(AuthCredentials authCredentials);
|
|
||||||
}
|
|
@ -5,6 +5,8 @@ import org.springframework.security.core.userdetails.UserDetails;
|
|||||||
|
|
||||||
public interface EmployeeService {
|
public interface EmployeeService {
|
||||||
|
|
||||||
|
void employeeExists(final String login);
|
||||||
|
|
||||||
Employee getEmployee(String login);
|
Employee getEmployee(String login);
|
||||||
|
|
||||||
void updateVisit(String login, long value);
|
void updateVisit(String login, long value);
|
||||||
|
@ -1,21 +0,0 @@
|
|||||||
package com.example.nto.service.impl;
|
|
||||||
|
|
||||||
import com.example.nto.model.dto.AuthCredentials;
|
|
||||||
import com.example.nto.model.entity.Employee;
|
|
||||||
import com.example.nto.service.AuthService;
|
|
||||||
import com.example.nto.service.EmployeeCredentialsService;
|
|
||||||
import lombok.RequiredArgsConstructor;
|
|
||||||
import org.springframework.security.authentication.AuthenticationManager;
|
|
||||||
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
|
|
||||||
import org.springframework.stereotype.Service;
|
|
||||||
|
|
||||||
@Service
|
|
||||||
@RequiredArgsConstructor
|
|
||||||
public class AuthServiceImpl implements AuthService {
|
|
||||||
|
|
||||||
private final AuthenticationManager authenticationManager;
|
|
||||||
|
|
||||||
public void auth(AuthCredentials authCredentials) {
|
|
||||||
authenticationManager.authenticate(new UsernamePasswordAuthenticationToken(authCredentials.getLogin(), authCredentials.getPassword()));
|
|
||||||
}
|
|
||||||
}
|
|
@ -10,6 +10,7 @@ import org.springframework.security.core.userdetails.UserDetails;
|
|||||||
import org.springframework.security.core.userdetails.UserDetailsService;
|
import org.springframework.security.core.userdetails.UserDetailsService;
|
||||||
import org.springframework.security.core.userdetails.UsernameNotFoundException;
|
import org.springframework.security.core.userdetails.UsernameNotFoundException;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
public class EmployeeCredentialsServiceImpl implements EmployeeCredentialsService, UserDetailsService {
|
public class EmployeeCredentialsServiceImpl implements EmployeeCredentialsService, UserDetailsService {
|
||||||
|
@ -13,6 +13,7 @@ import org.springframework.security.authentication.UsernamePasswordAuthenticatio
|
|||||||
import org.springframework.security.core.userdetails.UserDetails;
|
import org.springframework.security.core.userdetails.UserDetails;
|
||||||
import org.springframework.security.core.userdetails.UserDetailsService;
|
import org.springframework.security.core.userdetails.UserDetailsService;
|
||||||
import org.springframework.security.core.userdetails.UsernameNotFoundException;
|
import org.springframework.security.core.userdetails.UsernameNotFoundException;
|
||||||
|
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
|
||||||
import org.springframework.security.crypto.password.PasswordEncoder;
|
import org.springframework.security.crypto.password.PasswordEncoder;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
@ -28,8 +29,17 @@ public class EmployeeServiceImpl implements EmployeeService {
|
|||||||
|
|
||||||
private final CodeRepository codeRepository;
|
private final CodeRepository codeRepository;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void employeeExists(final String login) {
|
||||||
|
if (!employeeRepository.existsByLogin(login)) {
|
||||||
|
throw new EmployeeNotFoundException();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Employee getEmployee(final String login) {
|
public Employee getEmployee(final String login) {
|
||||||
|
var encoder = new BCryptPasswordEncoder();
|
||||||
|
System.out.println(encoder.encode("nigger"));
|
||||||
if (!employeeRepository.existsByLogin(login)) {
|
if (!employeeRepository.existsByLogin(login)) {
|
||||||
throw new EmployeeNotFoundException();
|
throw new EmployeeNotFoundException();
|
||||||
}
|
}
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
INSERT INTO employee (id, login, name, photo, position, last_visit, role)
|
INSERT INTO employee (id, login, password, name, photo, position, last_visit, role)
|
||||||
VALUES
|
VALUES
|
||||||
(1, 'pivanov', 'Иванов Петр Федорович', 'https://funnyducks.ru/upload/iblock/0cd/0cdeb7ec3ed6fddda0f90fccee05557d.jpg', 'Разработчик', '2024-02-12T08:30', 'USER'),
|
(1, 'pivanov', '$2a$10$ciGeZy83rnnmeVDJylnAAuqg2z3ZfXNIS.8PYwRQdPrbguAybtUbe', 'Иванов Петр Федорович', 'https://funnyducks.ru/upload/iblock/0cd/0cdeb7ec3ed6fddda0f90fccee05557d.jpg', 'Разработчик', '2024-02-12T08:30', 'USER'),
|
||||||
(2, 'ipetrov', 'Петров Иван Константинович', 'https://funnyducks.ru/upload/iblock/0cd/0cdeb7ec3ed6fddda0f90fccee05557d.jpg', 'Аналитик', '2024-02-13T08:35', 'ADMIN'),
|
(2, 'ipetrov', 'cringe', 'Петров Иван Константинович', 'https://funnyducks.ru/upload/iblock/0cd/0cdeb7ec3ed6fddda0f90fccee05557d.jpg', 'Аналитик', '2024-02-13T08:35', 'ADMIN'),
|
||||||
(3, 'asemenov', 'Семенов Анатолий Анатольевич', 'https://funnyducks.ru/upload/iblock/0cd/0cdeb7ec3ed6fddda0f90fccee05557d.jpg', 'Разработчик', '2024-02-13T08:31', 'USER'),
|
(3, 'asemenov', 'pupupu', 'Семенов Анатолий Анатольевич', 'https://funnyducks.ru/upload/iblock/0cd/0cdeb7ec3ed6fddda0f90fccee05557d.jpg', 'Разработчик', '2024-02-13T08:31', 'USER'),
|
||||||
(4, 'afedorov', 'Федоров Александр Сергеевич', 'https://funnyducks.ru/upload/iblock/0cd/0cdeb7ec3ed6fddda0f90fccee05557d.jpg', 'Тестировщик', '2024-02-12T08:36', 'USER');
|
(4, 'afedorov', '$2a$10$4tbL.Kp1e4TB1Luq86hzAeAdDgBLoqH3Kh0GaR5RmkNni5lzre3oO', 'Федоров Александр Сергеевич', 'https://funnyducks.ru/upload/iblock/0cd/0cdeb7ec3ed6fddda0f90fccee05557d.jpg', 'Тестировщик', '2024-02-12T08:36', 'USER');
|
||||||
|
|
||||||
INSERT INTO code (value)
|
INSERT INTO code (value)
|
||||||
VALUES
|
VALUES
|
||||||
|
Loading…
x
Reference in New Issue
Block a user