【发布时间】:2020-02-16 05:10:03
【问题描述】:
我学习 Spring 安全性并使用 Spring Security 5 和 OAuth2 Login 编写简单的 Web 应用程序。我想从Principal(电子邮件、用户名等)获取信息,但我找不到任何方法。写一些JSON-parser 不是一个好主意,因为我很确定有一些方法可以获取用户帐户详细信息。
配置
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.anyRequest().authenticated()
.and().oauth2Login();
}
}
控制器
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import java.security.Principal;
@Controller
public class HomeController {
@GetMapping({"", "/"})
@ResponseBody
public Principal getHome(Principal principal) {
return principal;
}
}
Application.yml
spring:
security:
oauth2:
client:
registration:
google:
client-id: xyz1
client-secret: secret1
facebook:
client-id: xyz2
client-secret: secret2
github:
client-id: xyz3
client-secret: secret3
【问题讨论】:
标签: spring spring-boot spring-security oauth-2.0