如何从Spring Security获取密码?

时间:2014-11-27 17:30:40

标签: java spring apache spring-security cxf

我正在使用带有WebClient的Apache CXF,我想将我的凭据发送到服务器

    WebClient client = WebClient.create("http://localhost:8084", "username", "password", null)

问题是我无法获取密码值。

以下方法无效

    SecurityContextHolder.getContext().getAuthentication().getCredentials()

1 个答案:

答案 0 :(得分:1)

假设您已登录,并且需要获取从数据库检索的公司名称。首先,您将需要实现UserDetails的对象,该UserDetails将保存在UserDetailsS​​ervice中并添加您需要的任何变量(公司等)。

public class CustomUserDetails implements UserDetails{      
    private String password;
    private String username;
    private String companyName;
}

与使用自定义Userdetails实现进行类型转换相比。

CustomUserDetails customDetails (CustomUserDetails)SecurityContextHolder.getContext().getAuthentication().getCredentials();

getCredentials将返回您保存到凭据的对象。无论何种类型,您都可以将它归还给您保存的课程。