相关疑难解决方法(0)

UserDetails getPassword在spring security 3.1中返回null.如何获取当前登录用户的密码?

我已经使用spring security实现了更改密码功能,但((UserDetails)principal).getPassword())为登录用户返回null.

如果我没记错的话,过去常常在3.0中使用.这是在3.1中更改,以便无法检索登录用户的当前密码?

在下面的代码中,我正在检查从网页输入的用户密码中的当前密码.然后我检查登录用户的密码是否与输入的密码匹配.如果是,那么我想设置oldPasswordMatchNewPassword = true.

我该如何实现此功能?

@RequestMapping(value = "/account/changePassword.do", method = RequestMethod.POST)
    public String submitChangePasswordPage(
            @RequestParam("oldpassword") String oldPassword,
            @RequestParam("password") String newPassword) {
        Object principal = SecurityContextHolder.getContext()
                .getAuthentication().getPrincipal();
        String username = principal.toString();
        if (principal instanceof UserDetails) {
            username = ((UserDetails) principal).getUsername();
            System.out.println("username: " + username);
            System.out.println("password: "
                    + ((UserDetails) principal).getPassword());
            if (((UserDetails) principal).getPassword() != null) {
                if (((UserDetails) principal).getPassword().equals(oldPassword)) {
                    oldPasswordMatchNewPassword = true;
                }
            }
        }
    if (oldPasswordMatchNewPassword == true) {
        logger.info("Old password matches new password. Password will be updated."); …
Run Code Online (Sandbox Code Playgroud)

spring spring-security

13
推荐指数
2
解决办法
1万
查看次数

如何从spring-security获取明文密码?

我使用Grails + spring-security + LDAP来验证用户身份.验证现在可以正常工作但我需要使用纯文本密码来验证第二个服务.

我尝试了SpringSecurityService属性,但没有包含密码.

我是否必须实现自己的UserDetailsMapper,或者LdapUserDetailsMapper是否也提供从Web表单检索的纯文本密码的映射?

grails spring-security spring-ldap

1
推荐指数
1
解决办法
5245
查看次数

标签 统计

spring-security ×2

grails ×1

spring ×1

spring-ldap ×1