[BAEL-3339] - Creates @CurrentSecurityContext example (#8469)

* [BAEL-3339] - Creates @CurrentSecurityContext example

* [BAEL-3339] - Adds principal example

* [BAEL-3339] - Code refactoring and improvements

* [BAEL-3339] - Code cleanup

* [BAEL-3339] - Authentication to return token details

* [BAEL-3339] - Code cleanup
This commit is contained in:
João Filipe Sabino Esperancinha
2020-01-26 23:21:45 +01:00
committed by ashleyfrieze
parent 16196452ae
commit 33849011c8
4 changed files with 84 additions and 1 deletions
@@ -1,7 +1,11 @@
package com.baeldung.springbootsecurity.oauth2server;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.annotation.CurrentSecurityContext;
import org.springframework.security.oauth2.config.annotation.web.configuration.EnableAuthorizationServer;
import org.springframework.security.oauth2.config.annotation.web.configuration.EnableResourceServer;
import org.springframework.web.bind.annotation.GetMapping;
@@ -14,6 +18,8 @@ import java.security.Principal;
@SpringBootApplication(scanBasePackages = "com.baeldung.springbootsecurity.oauth2server")
public class SpringBootAuthorizationServerApplication {
private static final Logger logger = LoggerFactory.getLogger(SpringBootAuthorizationServerApplication.class);
public static void main(String[] args) {
SpringApplication.run(SpringBootAuthorizationServerApplication.class, args);
}
@@ -26,5 +32,16 @@ public class SpringBootAuthorizationServerApplication {
return user;
}
@GetMapping("/authentication")
public Object getAuthentication(@CurrentSecurityContext(expression = "authentication") Authentication authentication) {
logger.info("authentication -> {}", authentication);
return authentication.getDetails();
}
@GetMapping("/principal")
public String getPrincipal(@CurrentSecurityContext(expression = "authentication.principal") Principal principal) {
logger.info("principal -> {}", principal);
return principal.getName();
}
}
}