Spring-Security密码编码器返回null。
Spring-Security密码编码器返回null。
我在我的Struts2应用程序上实现了Spring安全性,并且它完美运作,但是它在第3行上遇到了java.lang.NullPointerException错误。
尽管看起来passwordEncoder配置起作用了,因为我不能再使用纯文本密码登录了。
MyClass.java
import org.springframework.security.authentication.encoding.ShaPasswordEncoder;; .... private ShaPasswordEncoder passwordEncoder; public ShaPasswordEncoder getPasswordEncoder() { return passwordEncoder; } @Autowired public void setPasswordEncoder(ShaPasswordEncoder passwordEncoder) { this.passwordEncoder = passwordEncoder; } public void encode(String username) { 1 System.err.println("encode password"); 2 String encodedPassword = ""; 3 encodedPassword = passwordEncoder.encodePassword("Jack",username); 4 System.err.println("encoded password " + encodedPassword); }
pom.xml
org.springframework spring-webmvc 3.1.1.RELEASE org.springframework.security spring-security-web 3.1.1.RELEASE org.springframework.security spring-security-core 3.1.1.RELEASE org.springframework.security spring-security-taglibs 3.1.1.RELEASE org.springframework.security spring-security-config 3.1.1.RELEASE
admin 更改状态以发布 2023年5月22日
你是否实际上将编码器注入到Encode.java中的某个地方?如果没有,那么这就是你的问题。
如果需要一个快速而简单的解决方案,可能会起作用。只需将其设置为
private ShaPasswordEncoder passwordEncoder=new ShaPasswordEncoder(256);
然后找出您注入时出错的原因。
可以阅读此内容,了解应该如何进行注入。