[RESOLVIDO] Atualizar Roles do Spring Security com Spring Boot

1 resposta
programaçãojavaspring
R

Galera,

Gostaria de verificar se alguém já efetuou este tipo de configuração, que seria atualizar as roles do spring security depois de ter iniciado o Spring Boot.

Para explicar melhor o processo, criei uma aplicação REST que precisa de segurança em suas URLs, via usuário e ROLES de acesso para cada uma, já tinha uma aplicação com estes direitos por usuário, e consigo carregar estas permissões direto do bando de dados com o código abaixo na classe que estende de WebSecurityConfigurerAdapter:

@Override
protected void configure(AuthenticationManagerBuilder auth) {
	try {
		montarPermissoesByUsuario(auth);
	} catch (Exception e) {
		e.printStackTrace();
	}
}
    
public void montarPermissoesByUsuario(AuthenticationManagerBuilder auth) throws Exception {
	Set<CsUsuario> usuarios = serviceUsuario.findUsuariosApp();

	for (CsUsuario csUsuario : usuarios) {
		auth.inMemoryAuthentication().withUser(csUsuario.getUsername()).password(csUsuario.getPassword())
				.roles(this.montarRoles(csUsuario));
	}
}
public String[] montarRoles(CsUsuario usuario) {
	String[] roles = null;

	for (CsGrupo grupo : usuario.getGrupos()) {
		roles = grupo.getServicosApp().stream().map(CsServicoApp::getRegra).toArray(String[]::new);
	}
	return roles;
}

O problema é que depois de eu subir a aplicação com o Spring Boot, caso seja alterado alguma permissão no banco de dados ela não é atualizada, sendo necessário reiniciar o Spring Boot para recriar as permissões do banco de dados.

Obs: Para esta atualização do banco de dados, já utilizo uma outra aplicação web.

Agradeço desde já.

Abraços.

1 Resposta

R

Erro meu, a implementação esta correta, porem estava testando via browser e sempre depois que subia o serviço do spring boot era necessário incluir o usuário e senha uma única vez no navegador, com isso depois que alterava alguma role via banco de dados não era alterado no browser devido a já ter incluso o usuário e senha com aquelas permissões, zerando estas permissões ou enviando via comandos, toda vez que ele tenta logar com o usuário e senha as permissões são verificadas no banco de dados.

Valeu e desculpem…

Criado 17 de abril de 2017
Ultima resposta 18 de abr. de 2017
Respostas 1
Participantes 1