mirror of
https://github.com/Frooodle/Stirling-PDF.git
synced 2024-12-31 00:08:08 +01:00
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:
parent
40ffb6559d
commit
0c0f61aa0d
@ -156,10 +156,14 @@ public class SecurityConfiguration {
|
|||||||
http.rememberMe(
|
http.rememberMe(
|
||||||
rememberMeConfigurer ->
|
rememberMeConfigurer ->
|
||||||
rememberMeConfigurer // Use the configurator directly
|
rememberMeConfigurer // Use the configurator directly
|
||||||
.key("uniqueAndSecret")
|
|
||||||
.tokenRepository(persistentTokenRepository())
|
.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(
|
http.authorizeHttpRequests(
|
||||||
authz ->
|
authz ->
|
||||||
authz.requestMatchers(
|
authz.requestMatchers(
|
||||||
|
@ -5,6 +5,7 @@ import java.util.Date;
|
|||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.security.web.authentication.rememberme.PersistentRememberMeToken;
|
import org.springframework.security.web.authentication.rememberme.PersistentRememberMeToken;
|
||||||
import org.springframework.security.web.authentication.rememberme.PersistentTokenRepository;
|
import org.springframework.security.web.authentication.rememberme.PersistentTokenRepository;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import stirling.software.SPDF.model.PersistentLogin;
|
import stirling.software.SPDF.model.PersistentLogin;
|
||||||
|
|
||||||
@ -13,6 +14,7 @@ public class JPATokenRepositoryImpl implements PersistentTokenRepository {
|
|||||||
@Autowired private PersistentLoginRepository persistentLoginRepository;
|
@Autowired private PersistentLoginRepository persistentLoginRepository;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@Transactional
|
||||||
public void createNewToken(PersistentRememberMeToken token) {
|
public void createNewToken(PersistentRememberMeToken token) {
|
||||||
PersistentLogin newToken = new PersistentLogin();
|
PersistentLogin newToken = new PersistentLogin();
|
||||||
newToken.setSeries(token.getSeries());
|
newToken.setSeries(token.getSeries());
|
||||||
@ -23,6 +25,7 @@ public class JPATokenRepositoryImpl implements PersistentTokenRepository {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@Transactional
|
||||||
public void updateToken(String series, String tokenValue, Date lastUsed) {
|
public void updateToken(String series, String tokenValue, Date lastUsed) {
|
||||||
PersistentLogin existingToken = persistentLoginRepository.findById(series).orElse(null);
|
PersistentLogin existingToken = persistentLoginRepository.findById(series).orElse(null);
|
||||||
if (existingToken != null) {
|
if (existingToken != null) {
|
||||||
@ -43,11 +46,11 @@ public class JPATokenRepositoryImpl implements PersistentTokenRepository {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@Transactional
|
||||||
public void removeUserTokens(String username) {
|
public void removeUserTokens(String username) {
|
||||||
for (PersistentLogin token : persistentLoginRepository.findAll()) {
|
try {
|
||||||
if (token.getUsername().equals(username)) {
|
persistentLoginRepository.deleteByUsername(username);
|
||||||
persistentLoginRepository.delete(token);
|
} catch (Exception e) {
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -6,4 +6,6 @@ import org.springframework.stereotype.Repository;
|
|||||||
import stirling.software.SPDF.model.PersistentLogin;
|
import stirling.software.SPDF.model.PersistentLogin;
|
||||||
|
|
||||||
@Repository
|
@Repository
|
||||||
public interface PersistentLoginRepository extends JpaRepository<PersistentLogin, String> {}
|
public interface PersistentLoginRepository extends JpaRepository<PersistentLogin, String> {
|
||||||
|
void deleteByUsername(String username);
|
||||||
|
}
|
||||||
|
@ -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.9=Zelený text na černém pozadí
|
||||||
replace-color.selectText.10=Vyberte barvu textu
|
replace-color.selectText.10=Vyberte barvu textu
|
||||||
replace-color.selectText.11=Vyberte barvu pozadí
|
replace-color.selectText.11=Vyberte barvu pozadí
|
||||||
replace-color.submit= Nahradit
|
replace-color.submit=Nahradit
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -119,7 +119,7 @@ pipelineOptions.validateButton=Validér
|
|||||||
enterpriseEdition.button=Opgrader til Pro
|
enterpriseEdition.button=Opgrader til Pro
|
||||||
enterpriseEdition.warning=Denne funktion er kun tilgængelig for Pro-brugere.
|
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.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
|
||||||
|
|
||||||
|
|
||||||
#################
|
#################
|
||||||
|
@ -97,7 +97,7 @@ pipeline.configureButton=Configurar
|
|||||||
pipeline.defaultOption=Personalizar
|
pipeline.defaultOption=Personalizar
|
||||||
pipeline.submitButton=Submeter
|
pipeline.submitButton=Submeter
|
||||||
pipeline.help=Pipeline Help
|
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?
|
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.confirmNewPassword=Confirmar Nova Senha
|
||||||
account.signOut=Sair do Sistema
|
account.signOut=Sair do Sistema
|
||||||
account.yourApiKey=Sua Chave API
|
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.settingsCompare=Comparação das Definições:
|
||||||
account.property=Propriedade
|
account.property=Propriedade
|
||||||
account.webBrowserSettings=Configurações do Navegador Web
|
account.webBrowserSettings=Configurações do Navegador Web
|
||||||
|
@ -359,7 +359,7 @@ PDFToHTML.tags=web content,browser friendly
|
|||||||
|
|
||||||
home.PDFToXML.title=PDF в XML
|
home.PDFToXML.title=PDF в XML
|
||||||
home.PDFToXML.desc=Преобразование PDF в формат XML
|
home.PDFToXML.desc=Преобразование PDF в формат XML
|
||||||
PDFToXML.tags= extraksi data,структурированный контент,interop,преобразование,конвертация
|
PDFToXML.tags=extraksi data,структурированный контент,interop,преобразование,конвертация
|
||||||
|
|
||||||
home.ScannerImageSplit.title=Обнаружение/разделение отсканированных фотографий
|
home.ScannerImageSplit.title=Обнаружение/разделение отсканированных фотографий
|
||||||
home.ScannerImageSplit.desc=Разделяет несколько фотографий из фото/PDF
|
home.ScannerImageSplit.desc=Разделяет несколько фотографий из фото/PDF
|
||||||
|
@ -90,8 +90,8 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-check m-2 mb-3">
|
<div class="form-check m-2 mb-3">
|
||||||
<input type="checkbox" id="remember" value="remember-me">
|
<input type="checkbox" name="remember-me" id="remember-me">
|
||||||
<label for="remember" th:text="#{login.rememberme}"></label>
|
<label for="remember-me" th:text="#{login.rememberme}"></label>
|
||||||
</div>
|
</div>
|
||||||
<button class="w-100 btn btn-lg btn-primary" type="submit" th:text="#{login.signin}">Sign in</button>
|
<button class="w-100 btn btn-lg btn-primary" type="submit" th:text="#{login.signin}">Sign in</button>
|
||||||
</form>
|
</form>
|
||||||
|
Loading…
Reference in New Issue
Block a user