Pour accéder à l'utilisateur de messagerie OAuth2.0?

Daniel Mårtensson:

Je veux accéder au connecté Adresse e-mail de l'utilisateur de OAuth2.0. Juste pour vous assurer utilisateur correct ont droit à la connexion.

Puis-je utiliser ce code:

@RequestMapping("/user")
public Principal user(Principal principal) {
    return principal;
}

Qui sont appelés à partir de JavaScript:

<div>
     Logged in as: <span id="user"></span>
</div>

$.get("/user", function(data) { // Call Java code with GET request
   $("#user").html(data.userAuthentication.details.name); // Set id=user to the name of the user
});

Mais je veux y accéder à partir du code Java, pas de code JavaScript. Comment puis je faire ça?

rieckpil:

Si vous utilisez les paramètres par défaut Spring Security, vous pouvez lancer l' Principalun UserDetailsobjet et d' avoir accès à tout ce dont vous avez besoin pour votre cas d'utilisation:

@GetMapping("/user")
public Principal user(Principal principal) {

  UserDetails userDetails = (UserDetails) principal;
  System.out.println(userDetails.getUsername());
  System.out.println(userDetails.getPassword());
  System.out.println(userDetails.getAuthorities());

  // do whatever you want ... 

  return principal;
}

Mise à jour : Comme vous l' avez mentionné que vous utilisez OAuth2, vous pouvez faire ce qui suit pour injecter un capital OAuth2 authentifié:

@GetMapping("/user")
public Principal user(@AuthenticationPrincipal OAuth2User principal) {

  // do whatever you want ... 

  return principal;
}

Je suppose que tu aimes

Origine http://43.154.161.224:23101/article/api/json?id=318889&siteId=1
conseillé
Classement