Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

spring security. display user name on every page

I want to store user information after logging in and to display my login and username on every page (using jsp). How can I get access in my jsp views to the session bean that would store information of the user that is logged in?

like image 320
mike27 Avatar asked Dec 10 '22 14:12

mike27


1 Answers

use the authentication tag

This tag allows access to the current Authentication object stored in the security context. It renders a property of the object directly in the JSP. So, for example, if the principal property of the Authentication is an instance of Spring Security's UserDetails object, then using <sec:authentication property="principal.username" /> will render the name of the current user.

Of course, it isn't necessary to use JSP tags for this kind of thing and some people prefer to keep as little logic as possible in the view. You can access the Authentication object in your MVC controller (by calling SecurityContextHolder.getContext().getAuthentication()) and add the data directly to your model for rendering by the view.

like image 91
Davy Meers Avatar answered Jan 13 '23 01:01

Davy Meers