Сконфигурируйте свой проект для использования Hibernate и Springboot, и ваше решение станет:
@postmapping("/login")
public String login(@RequestBody LoginEventRequestBody request) {
LoginEvent event = new LoginEvent();
event.setUsername(request.getUserName);
event.setTimeStamp(new Timestamp(new Date().getTime()));
loginEventService.save(event);
return "successfully logged login event";
}
По сути, вы захотите отделить ваш логин входа c от вашего логина входа c. После того, как пользователь успешно войдет в систему, зарегистрируйте событие входа. вы по-прежнему можете использовать переменные пути. Я лично нашел этот очиститель
Как это настроить
LoginEventRequestBody
LoginEvent
LoginEventController
LoginEventService
LoginEventRepository
application.properties
LoginEventRequestBody. java
package org.app.loginEvent;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import org.immutables.value.Value;
@Value.Immutable
@JsonDeserialize(builder = LoginEventRequestBody.Builder.class)
@Value.Style(
visibility = Value.Style.ImplementationVisibility.PACKAGE,
builderVisibility = Value.Style.BuilderVisibility.PUBLIC
)
public interface LoginEventRequestBody {
String getUserName();
class Builder extends ImmutableLoginEventRequestBody.Builder {
}
static LoginEventRequestBody.Builder builder() {
return new LoginEventRequestBody.Builder();
}
}
LoginEvent. java
package org.app.loginEvent;
import com.fasterxml.jackson.annotation.JsonProperty;
import java.sql.Timestamp;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name = "login_event")
public class LoginEvent {
@Id
@GeneratedValue
@JsonProperty("id")
private Long id;
@JsonProperty("userName")
private String userName;
@JsonProperty("timestamp")
private Timestamp timestamp;
public LoginEvent() {
}
public LoginEvent(String userName, Timestamp timestamp) {
this.userName = userName;
this.timestamp = timestamp;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public Timestamp getTimestamp() {
return timestamp;
}
public void setTimestamp(Timestamp timestamp) {
this.timestamp = timestamp;
}
}
LoginEventController
package org.app.loginEvent;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("events")
public class LoginEventController {
private final LoginEventService loginEventService;
public LoginEventController(LoginEventService loginEventService) {
this.loginEventService = loginEventService;
}
@postmapping("/login")
public String login(@RequestBody LoginRequestBody request) {
LoginEvent event = new LoginEvent();
event.setUsername(request.getUserName);
event.setTimeStamp(new Timestamp(new Date().getTime()));
loginEventService.save(event);
return "successfully logged login event";
}
}
LoginEventService
package org.app.loginEvent;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@Service
@Transactional
public class LoginEventService {
@Autowired
private LoginEventRepository loginEventRepository;
public void save(LoginEventloginEvent) {
loginEventRepository.save(loginEvent);
}
}
LoginEventRepository
package org.app.loginEvent;
import org.springframework.data.jpa.repository.JpaRepository;
public interface LoginEventRepository extends JpaRepository<LoginEvent, Long> {
}
application.properties
#--------------------------------------------------
#mysql
#--------------------------------------------------
spring.datasource.username =root
spring.datasource.password =root
spring.datasource.url =jdbc:mysql://localhost:3306/mydb
spring.datasource.driverClassName =com.mysql.cj.jdbc.Driver
spring.jpa.hibernate.ddl-auto =update
Когда ваш пользователь входит в систему, сделайте запрос к системе отслеживания событий
HTTP МЕТОД
POST
Конечная точка URL
http://localhost:8080/events/login
Тело запроса
{
userName:"userNameOfThePersonTryingToLogIn"
}
#now check your database and you will find the event has logged
#repeat this process for your logout event