Tudo bem pessoal???
quando se trabalha com spring security o usuário inicia uma sessão com o seu username e senha…
se eu quiser recuperar um dado deste usuário logado chama-se o método getUserPrincipal() do spring…
com ele eu posso recuperar: Username, Enabled, AccountNonExpired, credentialsNonExpired, AccountNonLocked, Granted Authorities, e Authenticated.
[size=13]acontece que eu tenho de adicionar mais atributos a esta sessão… como nome completo e Email.[/size] pois não seria certo eu pesquisar sempre no banco de dados para ver o nome completo ou o Email do usuário logado em todas as paginas…
a autenticação do banco foi feita da seguinte maneira (no arquivo xml do spring):
<authentication-manager>
<authentication-provider>
<password-encoder hash="md5" />
<jdbc-user-service data-source-ref="dataSource"
//seleciona o login e a senha do usuário
users-by-username-query="SELECT logins.login, logins.senha, 'true' as enable FROM logins WHERE logins.login=?"
//seleciona o nivel de autoridade deste respectivo usuário
authorities-by-username-query="SELECT logins.login, nivel.autoridade FROM public.logins, public.nivel, public.funcionario WHERE funcionario.login_id = (SELECT logins.id FROM logins WHERE logins.login = ?) AND nivel.id = funcionario.nivel_id AND logins.id = funcionario.login_id" />
</authentication-provider>
</authentication-manager>
<!-- Configurando o banco para o Spring security -->
<beans:bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<beans:property name="url"
value="jdbc:postgresql://localhost:5432/banco" />
<beans:property name="driverClassName" value="org.postgresql.Driver" />
<beans:property name="username" value="login" />
<beans:property name="password" value="senha" />
</beans:bean>
[size=13]como eu adiciono mais atributos a sessão do spring security???[/size]