我创建了一个spring boot saml应用程序,并且我使用okta作为标识提供程序。
它工作正常,但是当我打印主要用户时,它给了我
org.opensaml.saml2.core.impl.NameId@70ead80eb
代替用户名。这是我的控制器:
@Controller
public class IndexController {
@RequestMapping("/")
public String index(Model model) {
Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
String currentPrincipalName = authentication.getName();
model.addAttribute("name", currentPrincipalName);
return "index";
}
}
这是我的Thymeleaf模板:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org">
<head>
<title>Spring Security SAML Example</title>
</head>
<body>
<p>You are successfully logged in <span style="font-weight:bold" th:text="${name}"></span></p>
</body>
</html>
使用SAML时如何从Spring Security获取用户名?