Spring security 如何从spring security的登录页面访问额外字段?
在spring security的登录页面中,我有公司名、用户名和密码。 当我单击login按钮时,它会重定向到index.jsp。我无法访问index.jsp中的公司名称。 我正在使用获取用户名和密码Spring security 如何从spring security的登录页面访问额外字段?,spring-security,Spring Security,在spring security的登录页面中,我有公司名、用户名和密码。 当我单击login按钮时,它会重定向到index.jsp。我无法访问index.jsp中的公司名称。 我正在使用获取用户名和密码 SecurityContextHolder.getContext().getAuthentication().getName(); 及 但我想重提公司名称。怎么做 假设您已经登录,您需要从数据库中获取公司名称。首先,您需要实现UserDetails的对象,该对象将保存在UserDetails
SecurityContextHolder.getContext().getAuthentication().getName();
及
但我想重提公司名称。怎么做 假设您已经登录,您需要从数据库中获取公司名称。首先,您需要实现
UserDetails
的对象,该对象将保存在UserDetailsService
中,并添加您需要的任何变量(公司等)
而不是在typecast上使用自定义Userdetails实现
CustomUserDetails customDetails (CustomUserDetails)SecurityContextHolder.getContext().getAuthentication().getCredentials();
getCredentials将返回保存到凭据中的内容的
对象。无论它是什么类型,您都可以将它返回到您保存的类。如果您在成功身份验证后进行转发,则所有请求参数都将在index.jsp中可用,而不是重定向。
public class CustomUserDetails implements UserDetails{
private String password;
private String username;
private String companyName;
}
CustomUserDetails customDetails (CustomUserDetails)SecurityContextHolder.getContext().getAuthentication().getCredentials();