Spring Security Fetch Logged in Username

We already used the functionality of fetched username from the Spring Security. In this tutorial we will only discuss about the ways of how to fetching the logged in username. we show you three ways to get current logged in username in Spring Security.

1. SecurityContextHolder - Authentication.getName()
import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
 
@Controller
public class LoginController {
 
  @RequestMapping(value="/login", method = RequestMethod.GET)
  public String printUser(ModelMap model) {
 
      Authentication auth = SecurityContextHolder.getContext().getAuthentication();
      String name = auth.getName(); //get logged in username
      model.addAttribute("message", "Welcome To Login Form Based Spring Security Example!!!");
      model.addAttribute("author", name);
      return "welcome";
 
  }
  //...


Popular Tutorials

2. SecurityContextHolder - User.getUsername()
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.security.core.userdetails.User;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
 
@Controller
public class LoginController {
 
  @RequestMapping(value="/login", method = RequestMethod.GET)
  public String printUser(ModelMap model) {
 
      User user = (User)SecurityContextHolder.getContext().getAuthentication().getPrincipal();
      String name = user.getUsername(); //get logged in username
 
     model.addAttribute("author", name);
     model.addAttribute("message", "Welcome To Login Form Based Spring Security Example!!!");
      return "welcome";
 
  }
  //...

3. UsernamePasswordAuthenticationToken-
This is more elegant solution, in runtime, Spring will inject "UsernamePasswordAuthenticationToken" into the "Principal" interface.

import java.security.Principal;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
 
@Controller
public class LoginController {
 
  @RequestMapping(value="/login", method = RequestMethod.GET)
  public String printWelcome(ModelMap model, Principal principal ) {
 
      String name = principal.getName(); //get logged in username
      model.addAttribute("author", name);
      model.addAttribute("message", "Welcome To Login Form Based Spring Security Example!!!");
      return "welcome";
 
  }
  //...


 Spring Security Fetch Logged in Username


Download Source Code-
SpringSecurityFetchedUsernameExample.zip


References-
http://www.dineshonjava.com/2013/02/spring-security-form-based-login-example.html
Spring Security


 

Spring Security Related Posts
  1. Spring Security Interview Questions and Answers
  2. Spring Security Java Based Configuration with Example
  3. Spring Security Hello World Example
  4. Spring Security form-based login example
  5. Spring Security Login Form Based Example Using Database
  6. Spring Security Authentication Example Using HTTP Basic
  7. Spring Security Authorized Access Control Example
  8. Spring Security Customized Access Denied Page
  9. Spring Security Custom Error Message
  10. Spring Security Logout Example
  11. Spring Security Password Hashing

                             <<previous<<             || index  ||         >>next>>

Labels: