tokens are now cleared on startup
This commit is contained in:
parent
40ff3ca9bf
commit
7e67c60a90
@ -19,11 +19,15 @@ public class DBInitializerConfig {
|
|||||||
|
|
||||||
private final String resetSessionsQuery;
|
private final String resetSessionsQuery;
|
||||||
|
|
||||||
|
private final String clearTokensQuery;
|
||||||
|
|
||||||
public DBInitializerConfig(@Value("${chatto.datasource.database-name}") String dbName,
|
public DBInitializerConfig(@Value("${chatto.datasource.database-name}") String dbName,
|
||||||
@Value("${num-tables}") String numTablesQuery, @Value("${reset-sessions}") String resetSessionsQuery) {
|
@Value("${num-tables}") String numTablesQuery, @Value("${reset-sessions}") String resetSessionsQuery,
|
||||||
|
@Value("${clear-tokens}") String clearTokensQuery) {
|
||||||
this.dbName = dbName;
|
this.dbName = dbName;
|
||||||
this.numTablesQuery = numTablesQuery;
|
this.numTablesQuery = numTablesQuery;
|
||||||
this.resetSessionsQuery = resetSessionsQuery;
|
this.resetSessionsQuery = resetSessionsQuery;
|
||||||
|
this.clearTokensQuery = clearTokensQuery;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -1,7 +1,6 @@
|
|||||||
package org.ros.chatto.service;
|
package org.ros.chatto.service;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.nio.charset.StandardCharsets;
|
|
||||||
import java.sql.Connection;
|
import java.sql.Connection;
|
||||||
import java.sql.PreparedStatement;
|
import java.sql.PreparedStatement;
|
||||||
import java.sql.ResultSet;
|
import java.sql.ResultSet;
|
||||||
@ -15,9 +14,6 @@ import org.hibernate.Session;
|
|||||||
import org.ros.chatto.config.DBInitializerConfig;
|
import org.ros.chatto.config.DBInitializerConfig;
|
||||||
import org.springframework.boot.context.event.ApplicationReadyEvent;
|
import org.springframework.boot.context.event.ApplicationReadyEvent;
|
||||||
import org.springframework.context.event.EventListener;
|
import org.springframework.context.event.EventListener;
|
||||||
import org.springframework.core.io.ClassPathResource;
|
|
||||||
import org.springframework.core.io.support.EncodedResource;
|
|
||||||
import org.springframework.jdbc.datasource.init.ScriptUtils;
|
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
@ -33,16 +29,6 @@ public class DBInitializerService {
|
|||||||
@PersistenceContext
|
@PersistenceContext
|
||||||
private EntityManager entityManager;
|
private EntityManager entityManager;
|
||||||
|
|
||||||
|
|
||||||
public int getNumTables(final Connection connection) throws SQLException {
|
|
||||||
final PreparedStatement preparedStatement = connection.prepareStatement(dbInitializerConfig.getNumTablesQuery());
|
|
||||||
preparedStatement.setString(1, dbInitializerConfig.getDbName());
|
|
||||||
final ResultSet resultSet = preparedStatement.executeQuery();
|
|
||||||
resultSet.next();
|
|
||||||
final int numTables = resultSet.getInt("num_tables");
|
|
||||||
return numTables;
|
|
||||||
}
|
|
||||||
|
|
||||||
@EventListener(ApplicationReadyEvent.class)
|
@EventListener(ApplicationReadyEvent.class)
|
||||||
@Transactional
|
@Transactional
|
||||||
public void doSomethingAfterStartup() throws SQLException, IOException {
|
public void doSomethingAfterStartup() throws SQLException, IOException {
|
||||||
@ -50,16 +36,10 @@ public class DBInitializerService {
|
|||||||
|
|
||||||
final Session session = entityManager.unwrap(Session.class);
|
final Session session = entityManager.unwrap(Session.class);
|
||||||
|
|
||||||
// session.doWork(connection -> {
|
session.doWork(connection -> {
|
||||||
// if (getNumTables(connection) == 0) {
|
log.info("Clearing tokens");
|
||||||
// log.info("Database is empty. Populating tables and roles");
|
clearAllTokens(connection);
|
||||||
// try {
|
});
|
||||||
// populateDB(connection);
|
|
||||||
// } catch (final IOException e) {
|
|
||||||
// log.error("IO error", e);
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// });
|
|
||||||
|
|
||||||
session.doWork(connection -> {
|
session.doWork(connection -> {
|
||||||
log.info("Resetting all user sessions");
|
log.info("Resetting all user sessions");
|
||||||
@ -67,16 +47,15 @@ public class DBInitializerService {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private void populateDB(final Connection connection) throws SQLException, IOException {
|
private void resetAllUserSessions(final Connection connection) throws SQLException {
|
||||||
ScriptUtils.executeSqlScript(connection,
|
final PreparedStatement preparedStatement = connection
|
||||||
new EncodedResource(new ClassPathResource("scheme.sql"), StandardCharsets.UTF_8));
|
.prepareStatement(dbInitializerConfig.getResetSessionsQuery());
|
||||||
ScriptUtils.executeSqlScript(connection,
|
preparedStatement.executeUpdate();
|
||||||
new EncodedResource(new ClassPathResource("datae.sql"), StandardCharsets.UTF_8));
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void resetAllUserSessions(final Connection connection) throws SQLException {
|
private void clearAllTokens(final Connection connection) throws SQLException {
|
||||||
final PreparedStatement preparedStatement = connection.prepareStatement(dbInitializerConfig.getResetSessionsQuery());
|
final PreparedStatement preparedStatement = connection
|
||||||
|
.prepareStatement(dbInitializerConfig.getClearTokensQuery());
|
||||||
preparedStatement.executeUpdate();
|
preparedStatement.executeUpdate();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
num-tables = SELECT COUNT(*) as num_tables FROM information_schema.tables WHERE table_schema = ? and TABLE_TYPE='BASE TABLE'
|
num-tables = SELECT COUNT(*) as num_tables FROM information_schema.tables WHERE table_schema = ? and TABLE_TYPE='BASE TABLE'
|
||||||
reset-sessions = update user_sessions set online=0, num_sessions=0
|
reset-sessions = update user_sessions set online=0, num_sessions=0
|
||||||
|
clear-tokens = truncate table tokens
|
||||||
#tables-created =
|
#tables-created =
|
Loading…
Reference in New Issue
Block a user