fix remmeber me (#2184)

* fix remmeber me

* remove uselss comment

* Update translation files (#2185)

Signed-off-by: GitHub Action <action@github.com>
Co-authored-by: GitHub Action <action@github.com>

---------

Signed-off-by: GitHub Action <action@github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: GitHub Action <action@github.com>
This commit is contained in:
Anthony Stirling 2024-11-05 14:31:31 +00:00 committed by GitHub
parent 40ffb6559d
commit 0c0f61aa0d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
8 changed files with 24 additions and 15 deletions

View File

@ -156,10 +156,14 @@ public class SecurityConfiguration {
http.rememberMe(
rememberMeConfigurer ->
rememberMeConfigurer // Use the configurator directly
.key("uniqueAndSecret")
.tokenRepository(persistentTokenRepository())
.tokenValiditySeconds(1209600) // 2 weeks
);
.tokenValiditySeconds(14 * 24 * 60 * 60) // 14 days
.userDetailsService(
userDetailsService) // Your existing UserDetailsService
.useSecureCookie(true) // Enable secure cookie
.rememberMeParameter("remember-me") // Form parameter name
.rememberMeCookieName("remember-me") // Cookie name
.alwaysRemember(false));
http.authorizeHttpRequests(
authz ->
authz.requestMatchers(

View File

@ -5,6 +5,7 @@ import java.util.Date;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.web.authentication.rememberme.PersistentRememberMeToken;
import org.springframework.security.web.authentication.rememberme.PersistentTokenRepository;
import org.springframework.transaction.annotation.Transactional;
import stirling.software.SPDF.model.PersistentLogin;
@ -13,6 +14,7 @@ public class JPATokenRepositoryImpl implements PersistentTokenRepository {
@Autowired private PersistentLoginRepository persistentLoginRepository;
@Override
@Transactional
public void createNewToken(PersistentRememberMeToken token) {
PersistentLogin newToken = new PersistentLogin();
newToken.setSeries(token.getSeries());
@ -23,6 +25,7 @@ public class JPATokenRepositoryImpl implements PersistentTokenRepository {
}
@Override
@Transactional
public void updateToken(String series, String tokenValue, Date lastUsed) {
PersistentLogin existingToken = persistentLoginRepository.findById(series).orElse(null);
if (existingToken != null) {
@ -43,11 +46,11 @@ public class JPATokenRepositoryImpl implements PersistentTokenRepository {
}
@Override
@Transactional
public void removeUserTokens(String username) {
for (PersistentLogin token : persistentLoginRepository.findAll()) {
if (token.getUsername().equals(username)) {
persistentLoginRepository.delete(token);
}
try {
persistentLoginRepository.deleteByUsername(username);
} catch (Exception e) {
}
}
}

View File

@ -6,4 +6,6 @@ import org.springframework.stereotype.Repository;
import stirling.software.SPDF.model.PersistentLogin;
@Repository
public interface PersistentLoginRepository extends JpaRepository<PersistentLogin, String> {}
public interface PersistentLoginRepository extends JpaRepository<PersistentLogin, String> {
void deleteByUsername(String username);
}

View File

@ -527,7 +527,7 @@ replace-color.selectText.8=Zlutý text na černém pozadí
replace-color.selectText.9=Zelený text na černém pozadí
replace-color.selectText.10=Vyberte barvu textu
replace-color.selectText.11=Vyberte barvu pozadí
replace-color.submit= Nahradit
replace-color.submit=Nahradit

View File

@ -119,7 +119,7 @@ pipelineOptions.validateButton=Validér
enterpriseEdition.button=Opgrader til Pro
enterpriseEdition.warning=Denne funktion er kun tilgængelig for Pro-brugere.
enterpriseEdition.yamlAdvert=Stirling PDF Pro understøtter YAML-konfigurationsfiler og andre SSO-funktioner.
enterpriseEdition.ssoAdvert= søger du flere funktioner til brugerstyring? Prøv Stirling PDF Pro
enterpriseEdition.ssoAdvert=søger du flere funktioner til brugerstyring? Prøv Stirling PDF Pro
#################

View File

@ -97,7 +97,7 @@ pipeline.configureButton=Configurar
pipeline.defaultOption=Personalizar
pipeline.submitButton=Submeter
pipeline.help=Pipeline Help
pipeline.scanHelp= Ajuda ao Escaneamento de Pastas
pipeline.scanHelp=Ajuda ao Escaneamento de Pastas
pipeline.deletePrompt=Tem a certeza que quer eliminar o pipeline?
######################
@ -191,7 +191,7 @@ account.changePassword=Alterar a Senha
account.confirmNewPassword=Confirmar Nova Senha
account.signOut=Sair do Sistema
account.yourApiKey=Sua Chave API
account.syncTitle= sincronizar definições do navegador com a conta
account.syncTitle=sincronizar definições do navegador com a conta
account.settingsCompare=Comparação das Definições:
account.property=Propriedade
account.webBrowserSettings=Configurações do Navegador Web

View File

@ -359,7 +359,7 @@ PDFToHTML.tags=web content,browser friendly
home.PDFToXML.title=PDF в XML
home.PDFToXML.desc=Преобразование PDF в формат XML
PDFToXML.tags= extraksi data,структурированный контент,interop,преобразование,конвертация
PDFToXML.tags=extraksi data,структурированный контент,interop,преобразование,конвертация
home.ScannerImageSplit.title=Обнаружение/разделение отсканированных фотографий
home.ScannerImageSplit.desc=Разделяет несколько фотографий из фото/PDF

View File

@ -90,8 +90,8 @@
</div>
<div class="form-check m-2 mb-3">
<input type="checkbox" id="remember" value="remember-me">
<label for="remember" th:text="#{login.rememberme}"></label>
<input type="checkbox" name="remember-me" id="remember-me">
<label for="remember-me" th:text="#{login.rememberme}"></label>
</div>
<button class="w-100 btn btn-lg btn-primary" type="submit" th:text="#{login.signin}">Sign in</button>
</form>