diff --git a/api-security.properties b/api-security.properties
new file mode 100644
index 000000000..2e2e4c5e3
--- /dev/null
+++ b/api-security.properties
@@ -0,0 +1,2 @@
+jwt.token.secret=jwtcrmsecret
+jwt.token.expired=3600000
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 0654a9cc2..6c6ecab6e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -46,6 +46,7 @@
4.1.0
1.7
5.3.2
+ 0.8.0
@@ -356,6 +357,13 @@
test
+
+
+ io.jsonwebtoken
+ jjwt
+ ${jsonwebtoken.version}
+
+
diff --git a/src/main/java/com/ewp/crm/controllers/rest/api/AuthApiController.java b/src/main/java/com/ewp/crm/controllers/rest/api/AuthApiController.java
new file mode 100644
index 000000000..ed04fbb56
--- /dev/null
+++ b/src/main/java/com/ewp/crm/controllers/rest/api/AuthApiController.java
@@ -0,0 +1,56 @@
+package com.ewp.crm.controllers.rest.api;
+
+/**
+ * Подробное описание доступа к api см. в классе ApiSecurityConfig
+ */
+
+import com.ewp.crm.models.User;
+import com.ewp.crm.models.dto.AuthenticationRequestDto;
+import com.ewp.crm.security.jwt.JwtTokenProvider;
+import com.ewp.crm.service.interfaces.UserService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.ResponseEntity;
+import org.springframework.security.authentication.AuthenticationManager;
+import org.springframework.security.authentication.BadCredentialsException;
+import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
+import org.springframework.security.core.AuthenticationException;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.HashMap;
+import java.util.Map;
+
+@RestController
+@RequestMapping(value = "/rest/api")
+public class AuthApiController {
+ private final UserService userService;
+ private final JwtTokenProvider jwtTokenProvider;
+ private final AuthenticationManager authenticationManager;
+
+ @Autowired
+ public AuthApiController(UserService userService, JwtTokenProvider jwtTokenProvider, AuthenticationManager authenticationManager) {
+ this.userService = userService;
+ this.jwtTokenProvider = jwtTokenProvider;
+ this.authenticationManager = authenticationManager;
+ }
+
+ @PostMapping("/login")
+ public ResponseEntity login(@RequestBody AuthenticationRequestDto authReqDto) {
+
+ String email = authReqDto.getEmail();
+
+ try {
+ authenticationManager.authenticate(new UsernamePasswordAuthenticationToken(email, authReqDto.getPassword()));
+ User user = userService.getUserByEmail(email).get();
+
+ String token = jwtTokenProvider.createToken(email, user.getRole());
+ Map