我为我的spring应用程序创建了自己的身份验证提供程序,我在其上指定了org.springframework.security.crypto.password.PasswordEncoder
。我的用户使用加密密码存储在数据库中(在数据库算法之后)。为了能够进行身份验证,我需要从org.springframework.security.crypto.password.PasswordEncoder
类访问发送用于身份验证的用户名。任何人都可以指导我如何做到这一点?或者还有其他方法吗?
注:我正在使用SpringSecurity 3.2。
我甚至不在乎这是一个老问题,我只花了9个小时试图解决这个问题。不妨把它留在这里以防万一其他人再次偶然发现这件事。
String username = ((ServletRequestAttributes)RequestContextHolder.currentRequestAttributes()).getRequest().getParameter("username");
使用上面的代码,我能够从当前请求中提取用户名。
注意:您必须使用以下课程org.springframework.web.context.request.RequestContextHolder
有一个类似的做错了我。
假设User Entered UserName,UserPassword是User,Pwd。要进行身份验证,您可以执行以下操作。
String encodedPassword=passwordEncoder.encode(pwd);
对密码进行编码